aboutsummaryrefslogtreecommitdiffstats
path: root/teal-src
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-10-20 16:50:12 +0200
committerKim Alvefur <zash@zash.se>2022-10-20 16:50:12 +0200
commite2cff346410c57686478d68fabd96cf4247df927 (patch)
treefb9c06de4cf1cdf18ba13292df824fd8cd7af5ee /teal-src
parente64c5e30c2ab1f59c5051f2bd66f053d34a6eb25 (diff)
downloadprosody-e2cff346410c57686478d68fabd96cf4247df927.tar.gz
prosody-e2cff346410c57686478d68fabd96cf4247df927.zip
util.mathcompat: Module to ease reuse of math.type()
Mostly to ensure it is available during tests, as util.startup is not invoked there
Diffstat (limited to 'teal-src')
-rw-r--r--teal-src/util/datamapper.tl2
-rw-r--r--teal-src/util/jsonschema.tl2
-rw-r--r--teal-src/util/mathcompat.tl15
3 files changed, 19 insertions, 0 deletions
diff --git a/teal-src/util/datamapper.tl b/teal-src/util/datamapper.tl
index 23f5ecaa..4ff3a02c 100644
--- a/teal-src/util/datamapper.tl
+++ b/teal-src/util/datamapper.tl
@@ -19,6 +19,8 @@
-- TODO s/number/integer/ once we have appropriate math.type() compat
--
+if not math.type then require "util.mathcompat" end
+
local st = require "util.stanza";
local json = require"util.json"
local pointer = require"util.jsonpointer";
diff --git a/teal-src/util/jsonschema.tl b/teal-src/util/jsonschema.tl
index 160c164c..14b04370 100644
--- a/teal-src/util/jsonschema.tl
+++ b/teal-src/util/jsonschema.tl
@@ -8,6 +8,8 @@
-- https://json-schema.org/draft/2020-12/json-schema-validation.html
--
+if not math.type then require "util.mathcompat" end
+
local json = require"util.json"
local null = json.null;
diff --git a/teal-src/util/mathcompat.tl b/teal-src/util/mathcompat.tl
new file mode 100644
index 00000000..1e3f9bab
--- /dev/null
+++ b/teal-src/util/mathcompat.tl
@@ -0,0 +1,15 @@
+if not math.type then
+ local enum number_subtype
+ "float" "integer"
+ end
+ local function math_type(t:any) : number_subtype
+ if t is number then
+ if t % 1 == 0 and t ~= t+1 and t ~= t-1 then
+ return "integer"
+ else
+ return "float"
+ end
+ end
+ end
+ _G.math.type = math_type
+end