mirror of
https://github.com/littensy/charm.git
synced 2026-10-20 17:51:37 +00:00
refactor: check type of cleanup
This commit is contained in:
parent
b00e6760c0
commit
e460846dea
1 changed files with 11 additions and 7 deletions
|
|
@ -226,11 +226,13 @@ local function run(effect: EffectNode)
|
|||
|
||||
purgeDeps(effect)
|
||||
|
||||
if not success then
|
||||
error(result, 0)
|
||||
elseif result then
|
||||
if success then
|
||||
if type(result) == "function" then
|
||||
table.insert(effect.cleanups, wrapUserSpace(result))
|
||||
end
|
||||
else
|
||||
error(result, 0)
|
||||
end
|
||||
|
||||
-- If the effect was disposed during execution but before a cleanup was
|
||||
-- was registered, run the cleanups that would have been missed
|
||||
|
|
@ -627,7 +629,7 @@ local function effect(fn: () -> ...Cleanup?): Cleanup
|
|||
activeSub = prevSub
|
||||
|
||||
if success then
|
||||
if result then
|
||||
if type(result) == "function" then
|
||||
table.insert(node.cleanups, wrapUserSpace(result))
|
||||
end
|
||||
endBatch()
|
||||
|
|
@ -665,11 +667,13 @@ local function effectScope(fn: () -> ...Cleanup?, detached: boolean?): Cleanup
|
|||
local success, result = pcall(wrapUserSpace(fn))
|
||||
activeSub = prevSub
|
||||
|
||||
if not success then
|
||||
error(result, 2)
|
||||
elseif result then
|
||||
if success then
|
||||
if type(result) == "function" then
|
||||
table.insert(node.cleanups, wrapUserSpace(result))
|
||||
end
|
||||
else
|
||||
error(result, 2)
|
||||
end
|
||||
|
||||
return function()
|
||||
stopEffect(node)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue