feat: allow conditional dependencies (#4)

* feat: allow conditional dependencies

* docs: remove conditional deps warnings

* fix: allow nested captures

* docs: add dev flag

* fix: `try()` uses pcall if passed `finally()`

* docs: interval is optional

* docs: update readme

* docs: add client/server tags
This commit is contained in:
richard 2024-06-11 17:13:43 -07:00 • committed by GitHub
parent fbc86d22c6
commit a90d131fed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 290 additions and 98 deletions

View file

@ -16,20 +16,18 @@ local function subscribe<T>(molecule: Molecule<T>, callback: (state: T, prev: T)
local function listener()
local prevState = state
state = molecule()
captured, state = store.reconnect(molecule, captured, listener)
if state ~= prevState then
callback(state, prevState)
end
end
for atom in captured do
store.listeners[atom][listener] = true
end
store.connect(captured, listener)
return function()
for atom in captured do
store.listeners[atom][listener] = nil
end
store.disconnect(captured, listener)
end
end