diff options
author | Aylur <[email protected]> | 2024-06-07 02:54:37 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-06-07 02:54:37 +0200 |
commit | 234dbffa3dbd0d7418585acd7e051685a1e57a06 (patch) | |
tree | f14bb183547fa2ad6d262c28089f984f991958dd /lua/astal/application.lua | |
parent | 900a7420bd9aa92fc8b528636908de09f88bc2eb (diff) |
add client capabilities
breaking change for App.start
Diffstat (limited to 'lua/astal/application.lua')
-rw-r--r-- | lua/astal/application.lua | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/lua/astal/application.lua b/lua/astal/application.lua index 8402a59..f738c09 100644 --- a/lua/astal/application.lua +++ b/lua/astal/application.lua @@ -26,14 +26,22 @@ local app = AstalLua() ---@field css? string ---@field hold? boolean ---@field request_handler? fun(msg: string, response: fun(res: any)) +---@field main? fun(...): unknown +---@field client? fun(message: fun(msg: string): string, ...): unknown ---@param config StartConfig | nil ----@param callback function | nil -function Astal.Application:start(config, callback) +function Astal.Application:start(config) if config == nil then config = {} end + if config.client == nil then + config.client = function() + print('Astal instance "' .. app.instance_name .. '" is already running') + os.exit(1) + end + end + if config.hold == nil then config.hold = true end @@ -57,17 +65,18 @@ function Astal.Application:start(config, callback) end app.on_activate = function() + if type(config.main) == "function" then + config.main(table.unpack(arg)) + end if config.hold then self:hold() end - if type(callback) == "function" then - callback() - end end if not app:acquire_socket() then - print('Astal instance "' .. app.instance_name .. '" is already running') - os.exit(1) + config.client(function(msg) + return app:message(msg) + end, table.unpack(arg)) end self:run(nil) |