From 99fb752d3033c206a8278106a2a474f90efaeda9 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 20 Jan 2025 02:10:02 +1100 Subject: [PATCH] fix(callback): support __call metatables as cb function Resolves #668. --- imports/callback/client.lua | 4 ++++ imports/callback/server.lua | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/imports/callback/client.lua b/imports/callback/client.lua index 0e61f85..3f0d52b 100644 --- a/imports/callback/client.lua +++ b/imports/callback/client.lua @@ -74,6 +74,10 @@ lib.callback = setmetatable({}, { else local cbType = type(cb) + if cbType == 'table' and getmetatable(cb)?.__call then + cbType = 'function' + end + assert(cbType == 'function', ("expected argument 3 to have type 'function' (received %s)"):format(cbType)) end diff --git a/imports/callback/server.lua b/imports/callback/server.lua index 5309a4a..127c3bf 100644 --- a/imports/callback/server.lua +++ b/imports/callback/server.lua @@ -57,6 +57,10 @@ lib.callback = setmetatable({}, { else local cbType = type(cb) + if cbType == 'table' and getmetatable(cb)?.__call then + cbType = 'function' + end + assert(cbType == 'function', ("expected argument 3 to have type 'function' (received %s)"):format(cbType)) end