{"id":"sbi-n/startup","name":"startup","scope":"sbi-n","platform":"roblox","description":"https://github.com/sbi-n/startup","version":"0.3.6","latest":"0.3.6","versions":["0.2.1","0.2.2","0.2.3","0.2.4","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{"lukadev-0/typed-promise":{"version":"^4.0.2","alias":"typed-promise"}},"integrity":"59af772d933d1a5cc0dfca1e8a396abc6f04671e3bccc2fd86dc141f2c3cecd4","likes":0,"downloads":0,"install":"forest install sbi-n/startup","url":"https://forest.dev/p/roblox/sbi-n/startup","files":"https://api.forest.dev/ai/package/roblox/sbi-n/startup/files","readme":"# Startup\nA simple knit-like Startup\n\n# Installion\nWally\n\n# Example\nOn client,\n```luau\nlocal Startup = require(\"path/to/startup\")\n\nlocal app = Startup.new()\n\napp:add(require(\"@controllers/hello-controller\"))\napp:add(require(\"@controllers/world-controller\"))\n\napp:run()\n```\n\nWhen on server.\n```luau\nlocal Startup = require(\"path/to/startup\")\n\nlocal app = Startup.new()\n\napp:add(require(\"@services/hello-service\"))\n\napp:run()\n```\n\n# Extend\n```luau\nlocal app = Startup.new()\n\napp:add({\n    onPlayerAdded = function(player: Player)\n    end\n}) -- the example of required module\n\nlocal function playerAdded(player: Player)\n    app:execute(\"onPlayerAdded\", player)\nend\n\nfor _, player in Players:GetPlayers() do\n    task.spawn(playerAdded, player)\nend\nPlayers.PlayerAdded:Connect(playerAdded)\n\n```\n\n# Exception\n```luau\nlocal app = Startup.new()\n\napp:except(function(err: unknown) -- the promise error handler, single.\n    print(err)\nend)\n```","readmeTruncated":false}