{"id":"call23re/goodsignal","name":"goodsignal","scope":"call23re","platform":"roblox","description":"A fast Signal class implementation that has full feature parity with Roblox' RBXScriptSignal","version":"0.2.2","latest":"0.2.2","versions":["0.1.0","0.1.1","0.2.2"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"1d1debd7100f03242c794c1a224c447fb99599ec485e785c453fd78a1fe855fc","likes":0,"downloads":0,"install":"forest install call23re/goodsignal","url":"https://forest.dev/p/roblox/call23re/goodsignal","files":"https://api.forest.dev/ai/package/roblox/call23re/goodsignal/files","readme":"# GoodSignal\r\nA Roblox Lua Signal implementation that has full API and behavioral parity with Roblox' `RBXScriptSignal` type.\r\n\r\nThis fork adds some small error handling features and aliases.\r\n\r\n## Install with Wally\r\n```toml\r\n[dependencies]\r\nNetwork = \"call23re/goodsignal@0.1.1\"\r\n```\r\n\r\n# Full API\r\n\r\n```lua\r\n-- Create\r\nlocal sig = Signal.new()\r\n\r\n-- Connect and Fire\r\nlocal connection = sig:Connect(function(arg1, arg2) ... end)\r\nsig:Fire(param1, param2)\r\n\r\n-- Connect and Catch\r\nlocal connection = sig:Connect(function() ... end):catch(warn)\r\nsig:Throw(\"An error occured\")\r\n\r\n-- Wait on Fire\r\nlocal param1, param2 = sig:Wait()\r\n\r\n-- Disconnect\r\nconnection:Disconnect()\r\nsig:DisconnectAll()\r\n```\r\n# No Memory Leaks!\r\n`GoodSignal` is implemented in pure Lua (using the task library, rather than internally using a BindableEvent), so it does not suffer from memory leaks. Even if you don't `Disconnect` all of the connections on a GoodSignal, everything will still be GCed normally.\r\n","readmeTruncated":false}