{"id":20305554,"url":"https://github.com/dervexdev/advancedsignal","last_synced_at":"2026-05-09T11:40:46.838Z","repository":{"id":228221450,"uuid":"657662628","full_name":"DervexDev/AdvancedSignal","owner":"DervexDev","description":"Advanced Signal lets you choose whether you prefer performance or ease of use","archived":false,"fork":false,"pushed_at":"2023-07-19T21:12:59.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-14T11:25:37.294Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://wally.run/package/dervexhero/advancedsignal","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DervexDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-06-23T14:51:32.000Z","updated_at":"2024-10-12T18:49:08.000Z","dependencies_parsed_at":"2024-03-17T18:02:59.266Z","dependency_job_id":null,"html_url":"https://github.com/DervexDev/AdvancedSignal","commit_stats":null,"previous_names":["dervexdev/advancedsignal"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DervexDev%2FAdvancedSignal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DervexDev%2FAdvancedSignal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DervexDev%2FAdvancedSignal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DervexDev%2FAdvancedSignal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DervexDev","download_url":"https://codeload.github.com/DervexDev/AdvancedSignal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241801989,"owners_count":20022563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T17:08:56.143Z","updated_at":"2026-05-09T11:40:41.771Z","avatar_url":"https://github.com/DervexDev.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advanced Signal\nAdvanced Signal lets you choose whether you prefer performance or ease of use\n\n### About\nSignal is not yieldable by default, so yielding inside one of its bindings will result in yielding rest of them. By default, the binding order is not preserved thus connection that were made first will be fired last. Behavior of these two things can be changed by providing additional arguments to Signal.new() or by changing globally DEFAULT_SETTINGS.\n\n### API Usage\n```lua\nlocal Signal = require(path.to.advancedsignal.module)\n\n-- Creates new signal class with optional settings\nlocal signal = Signal.new(yieldable?, keepOrder?)\n\n-- Binds callback to the signal, returns connection\nlocal handle = signal:Bind(function(params)\n\tprint(params)\nend)\n\n-- Binds callback to the signal, will unbind automatically, returns connection\nsignal:Once(function(params)\n\tprint(params)\nend)\n\n-- Fires signal with given arguments\nsignal:Fire(args)\n\n-- Unbinds a connection from the signal\nhandle:Unbind() or signal:Unbind(handle)\n\n-- Unbinds all connections from the signal\nsignal:UnbindAll()\n\n-- Yields current thread until signal is fired\nsignal:Wait()\n```\n\n### Credits\nPart of this code was written by @stravant","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdervexdev%2Fadvancedsignal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdervexdev%2Fadvancedsignal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdervexdev%2Fadvancedsignal/lists"}