aboutsummaryrefslogtreecommitdiffstats
path: root/teal-src
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-07-24 21:25:41 +0200
committerKim Alvefur <zash@zash.se>2022-07-24 21:25:41 +0200
commit523d844c789556f259244c2139009eff924e91ae (patch)
treeaf514666e57535009e630cecdde8fb6a414d2561 /teal-src
parent53907b44cee9c5acfb6979d6f60b9f285a064bc7 (diff)
downloadprosody-523d844c789556f259244c2139009eff924e91ae.tar.gz
prosody-523d844c789556f259244c2139009eff924e91ae.zip
util.promise: Add Teal interface specification file
Diffstat (limited to 'teal-src')
-rw-r--r--teal-src/net/http.d.tl4
-rw-r--r--teal-src/util/promise.d.tl22
2 files changed, 23 insertions, 3 deletions
diff --git a/teal-src/net/http.d.tl b/teal-src/net/http.d.tl
index 38da56b6..9135ec12 100644
--- a/teal-src/net/http.d.tl
+++ b/teal-src/net/http.d.tl
@@ -1,6 +1,4 @@
-local record Promise
- -- util.promise
-end
+local Promise = require "util.promise".Promise;
local record sslctx -- from LuaSec
end
diff --git a/teal-src/util/promise.d.tl b/teal-src/util/promise.d.tl
new file mode 100644
index 00000000..d895a828
--- /dev/null
+++ b/teal-src/util/promise.d.tl
@@ -0,0 +1,22 @@
+
+local record lib
+ type resolve_func = function (any)
+ type promise_body = function (resolve_func, resolve_func)
+
+ record Promise<A, B>
+ type on_resolved = function (A) : any
+ type on_rejected = function (B) : any
+ next : function (Promise, on_resolved, on_rejected) : Promise<any, any>
+ end
+
+ new : function (promise_body) : Promise
+ resolve : function (any) : Promise
+ reject : function (any) : Promise
+ all : function ({ Promise }) : Promise
+ all_settled : function ({ Promise }) : Promise
+ race : function ({ Promise }) : Promise
+ try : function
+ is_promise : function(any) : boolean
+end
+
+return lib