# HG changeset patch # User Kim Alvefur # Date 1616614105 -3600 # Node ID cfd37453e6b66d31d6b9c86015141f0260c58e20 # Parent 2d82e4245aa34163ccea202d5b1edbd3e13ca36b teal: Describe the module API interface Helps when writing modules in Teal diff -r 2d82e4245aa3 -r cfd37453e6b6 teal-src/module.d.tl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/teal-src/module.d.tl Wed Mar 24 20:28:25 2021 +0100 @@ -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