cleanup tracker for roblox classes. give it things, call destroy, everything cleans up.
local Pyre = require(ReplicatedStorage.Pyre)
local pyre = Pyre.new()
pyre:give(connection) -- gets disconnected
pyre:give(model) -- gets destroyed
pyre:give(thread) -- gets cancelled
pyre:give(function() ... end) -- gets called
pyre:give(someClass) -- :Destroy or :Disconnect, whichever it has
pyre:destroy()same idea as Maid/Trove, for personal use so my own modules don't pull in someone else's dep.
drop Pyre.luau into ReplicatedStorage.
Pyre.new() → pyre
pyre:give(task) → task
pyre:giveAll(tasks)
pyre:clean() -- clean everything, can still be used after
pyre:destroy() -- clean everything, can't be used aftertasks clean in reverse order, so dependent stuff goes before the thing it depends on.
MIT