mirror of
https://github.com/littensy/charm.git
synced 2026-10-24 06:51:37 +00:00
refactor: improve imports
This commit is contained in:
parent
209f9b583b
commit
8df67d6fff
20 changed files with 67 additions and 86 deletions
|
|
@ -1,13 +0,0 @@
|
|||
local signals = require("./signals")
|
||||
|
||||
local computedImpl = signals.computed
|
||||
|
||||
local function computed<T>(selector: (previous: T?) -> T): () -> T
|
||||
local getter = computedImpl(selector)
|
||||
|
||||
return function()
|
||||
return getter()
|
||||
end
|
||||
end
|
||||
|
||||
return computed
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
local effectScope = require("./effectScope")
|
||||
local signals = require("./signals")
|
||||
|
||||
local effectImpl = signals.effect
|
||||
|
|
@ -14,10 +13,8 @@ local function effect(callback: (dispose: () -> ()) -> ...() -> ()?): () -> ()
|
|||
end
|
||||
end
|
||||
|
||||
dispose = effectScope(function()
|
||||
effectImpl(function()
|
||||
return callback(disposeSafe)
|
||||
end)
|
||||
dispose = effectImpl(function()
|
||||
return callback(disposeSafe)
|
||||
end)
|
||||
|
||||
if disposed then
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
local signals = require("./signals")
|
||||
|
||||
local effectScopeImpl = signals.effectScope
|
||||
|
||||
local function effectScope(callback: () -> ...() -> ()?): () -> ()
|
||||
local dispose = effectScopeImpl(callback)
|
||||
|
||||
return function()
|
||||
dispose()
|
||||
end
|
||||
end
|
||||
|
||||
return effectScope
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
local atom = require("./atom")
|
||||
local batched = require("./batched")
|
||||
local computed = require("./computed")
|
||||
local effect = require("./effect")
|
||||
local effectScope = require("./effectScope")
|
||||
local listen = require("./listen")
|
||||
local mapped = require("./mapped")
|
||||
local observe = require("./observe")
|
||||
|
|
@ -15,6 +13,9 @@ export type Atom<T = any> = types.Atom<T>
|
|||
export type AtomOptions<T = any> = types.AtomOptions<T>
|
||||
export type Selector<T = any> = types.Selector<T>
|
||||
|
||||
local computed = signals.computed
|
||||
local effectScope = signals.effectScope
|
||||
|
||||
return {
|
||||
atom = atom,
|
||||
batched = batched,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
local effectScope = require("./effectScope")
|
||||
local signals = require("./signals")
|
||||
local spawn = require("./spawn")
|
||||
|
||||
|
|
@ -19,23 +18,21 @@ local function listen<T>(selector: () -> T, listener: (state: T, previous: T?, d
|
|||
end
|
||||
end
|
||||
|
||||
dispose = effectScope(function()
|
||||
effect(function()
|
||||
local value = selector()
|
||||
dispose = effect(function()
|
||||
local value = selector()
|
||||
|
||||
if mounted then
|
||||
mounted = false
|
||||
elseif value == current then
|
||||
return
|
||||
end
|
||||
if mounted then
|
||||
mounted = false
|
||||
elseif value == current then
|
||||
return
|
||||
end
|
||||
|
||||
local previous = current
|
||||
current = value
|
||||
local previous = current
|
||||
current = value
|
||||
|
||||
pauseTracking()
|
||||
spawn(listener, value, previous, disposeSafe)
|
||||
resumeTracking()
|
||||
end)
|
||||
pauseTracking()
|
||||
spawn(listener, value, previous, disposeSafe)
|
||||
resumeTracking()
|
||||
end)
|
||||
|
||||
if disposed then
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local computed = require("./computed")
|
||||
local signals = require("./signals")
|
||||
|
||||
local computed = signals.computed
|
||||
local pauseTracking = signals.pauseTracking
|
||||
local resumeTracking = signals.resumeTracking
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
local effectScope = require("./effectScope")
|
||||
local signals = require("./signals")
|
||||
local spawn = require("./spawn")
|
||||
|
||||
|
|
@ -11,22 +10,20 @@ local function subscribe<T>(selector: () -> T, listener: (T, T) -> ()): () -> ()
|
|||
local mounted = true
|
||||
local dispose: () -> ()
|
||||
|
||||
dispose = effectScope(function()
|
||||
effect(function()
|
||||
local value = selector()
|
||||
dispose = effect(function()
|
||||
local value = selector()
|
||||
|
||||
if mounted then
|
||||
current = value
|
||||
mounted = false
|
||||
elseif value ~= current then
|
||||
local previous = current
|
||||
current = value
|
||||
if mounted then
|
||||
current = value
|
||||
mounted = false
|
||||
elseif value ~= current then
|
||||
local previous = current
|
||||
current = value
|
||||
|
||||
pauseTracking()
|
||||
spawn(listener, value, previous)
|
||||
resumeTracking()
|
||||
end
|
||||
end)
|
||||
pauseTracking()
|
||||
spawn(listener, value, previous)
|
||||
resumeTracking()
|
||||
end
|
||||
end)
|
||||
|
||||
return function()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue