refactor: improve imports

This commit is contained in:
littensy 2025-05-05 01:30:35 -07:00
parent 209f9b583b
commit 8df67d6fff
20 changed files with 67 additions and 86 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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

View file

@ -1,6 +1,6 @@
local computed = require("./computed")
local signals = require("./signals")
local computed = signals.computed
local pauseTracking = signals.pauseTracking
local resumeTracking = signals.resumeTracking

View file

@ -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()