From e29326533e52a8fc146ea0e58124a60d5ee306b0 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Wed, 24 Mar 2021 20:28:25 +0100 Subject: teal: Describe the module API interface Helps when writing modules in Teal --- teal-src/module.d.tl | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 teal-src/module.d.tl (limited to 'teal-src') diff --git a/teal-src/module.d.tl b/teal-src/module.d.tl new file mode 100644 index 00000000..67b2437c --- /dev/null +++ b/teal-src/module.d.tl @@ -0,0 +1,145 @@ +local st = require"util.stanza" + +global record moduleapi + get_name : function (moduleapi) : string + get_host : function (moduleapi) : string + enum host_type + "global" + "local" + "component" + end + get_host_type : function (moduleapi) : host_type + set_global : function (moduleapi) + add_feature : function (moduleapi, string) + add_identity : function (moduleapi, string, string, string) -- TODO enum? + add_extension : function (moduleapi, st.stanza_t) + fire_event : function (moduleapi, string, any) : any + type handler = function (any) : any + record util_events + -- TODO import def + end + hook_object_event : function (moduleapi, util_events, string, handler, number) + unhook_object_event : function (moduleapi, util_events, string, handler) + hook : function (moduleapi, string, handler, number) + hook_global : function (moduleapi, string, handler, number) + hook_tag : function (moduleapi, string, string, handler, number) + unhook : function (moduleapi, string, handler) + wrap_object_event : function (moduleapi, util_events, string, handler) + wrap_event : function (moduleapi, string, handler) + wrap_global : function (moduleapi, string, handler) + require : function (moduleapi, string) : table + depends : function (moduleapi, string) : table + shared : function (moduleapi, string) : table + type config_getter = function (moduleapi, string, A) : A + get_option : config_getter + get_option_scalar : config_getter + get_option_string : config_getter + get_option_number : config_getter + get_option_boolean : config_getter + record util_array + -- TODO import def + { any } + end + get_option_array : config_getter + record util_set + -- TODO import def + _items : { any : boolean } + end + get_option_set : function (moduleapi, string, { any }) : util_set + get_option_inherited_set : function (moduleapi, string, { any }) : util_set + get_option_path : function (moduleapi, string, string, string) : string + context : function (moduleapi, string) : moduleapi + add_item : function (moduleapi, string, any) + remove_item : function (moduleapi, string, any) + get_host_items : function (moduleapi, string) : { any } + handle_items : function (moduleapi, string, handler, handler, boolean) + provides : function (moduleapi, string, table) + record util_session + -- TODO import def + send : function ( st.stanza_t | string ) + end + send : function (moduleapi, st.stanza_t, util_session) + send_iq : function (moduleapi, st.stanza_t, util_session, number) + broadcast : function (moduleapi, { string }, st.stanza_t, function) + type timer_callback = function (number, ... : any) : number + add_timer : function (moduleapi, number, timer_callback, ... : any) + get_directory : function (moduleapi) : string + enum file_mode + "r" "w" "a" "r+" "w+" "a+" + end + load_resource : function (moduleapi, string, file_mode) : FILE + enum store_type + "keyval" + "map" + "archive" + end + open_store : function (moduleapi, string, store_type) + enum stat_type + "amount" + "counter" + "rate" + "distribution" + "sizes" + "times" + end + record stats_conf + initial : number + units : string + type : string + end + measure : function (moduleapi, string, stat_type, stats_conf) + measure_object_event : function (moduleapi, util_events, string, string) + measure_event : function (moduleapi, string, string) + measure_global_event : function (moduleapi, string, string) + enum status_type + "error" + "warn" + "info" + "core" + end + set_status : function (moduleapi, status_type, string, boolean) + enum log_level + "debug" + "info" + "warn" + "error" + end + log_status : function (moduleapi, log_level, string, ... : any) + get_status : function (moduleapi) : status_type, string, number + + -- added by modulemanager + name : string + host : string + _log : function (log_level, string, ... : any) + log : function (moduleapi, log_level, string, ... : any) + reloading : boolean + saved_state : any + record module_environment + module : moduleapi + end + environment : module_environment + path : string + resource_path : string + + -- methods the module can add + load : function () + add_host : function (moduleapi) + save : function () : any + restore : function (any) + unload : function () +end + +global module : moduleapi + +global record common_event + stanza : st.stanza_t + record origin + send : function (st.stanza_t) + end +end + +global record prosody + version : string +end + +return module -- cgit v1.2.3