util.jsonschema: Silence Teal warnings about counting items in tables
authorKim Alvefur <zash@zash.se>
Sat, 17 Jun 2023 17:12:54 +0200
changeset 13166 6140aa67c618
parent 13165 9ba11ef91ce4
child 13167 f43d04653bcf
util.jsonschema: Silence Teal warnings about counting items in tables Teal thinks that these are key-value maps which are always of length zero, but that is not the case.
teal-src/prosody/util/jsonschema.tl
util/jsonschema.lua
--- a/teal-src/prosody/util/jsonschema.tl	Wed Jan 12 10:23:13 2022 +0100
+++ b/teal-src/prosody/util/jsonschema.tl	Sat Jun 17 17:12:54 2023 +0200
@@ -320,11 +320,11 @@
 		-- validations in this block, which could be useful for validating Lua
 		-- tables
 
-		if schema.maxItems and #data > schema.maxItems then
+		if schema.maxItems and #(data as {any}) > schema.maxItems then
 			return false
 		end
 
-		if schema.minItems and #data < schema.minItems then
+		if schema.minItems and #(data as {any}) < schema.minItems then
 			return false
 		end
 
@@ -428,7 +428,7 @@
 		end
 
 		if schema.items ~= nil then
-			for i = p+1, #data do
+			for i = p+1, #(data as {any}) do
 				if not validate(schema.items, data[i], root) then
 					return false
 				end
@@ -437,7 +437,7 @@
 
 		if schema.contains ~= nil then
 			local found = 0
-			for i = 1, #data do
+			for i = 1, #(data as {any}) do
 				if validate(schema.contains, data[i], root) then
 					found = found + 1
 				end
--- a/util/jsonschema.lua	Wed Jan 12 10:23:13 2022 +0100
+++ b/util/jsonschema.lua	Sat Jun 17 17:12:54 2023 +0200
@@ -199,11 +199,11 @@
 
 	if type(data) == "table" then
 
-		if schema.maxItems and #data > schema.maxItems then
+		if schema.maxItems and #(data) > schema.maxItems then
 			return false
 		end
 
-		if schema.minItems and #data < schema.minItems then
+		if schema.minItems and #(data) < schema.minItems then
 			return false
 		end
 
@@ -303,7 +303,7 @@
 		end
 
 		if schema.items ~= nil then
-			for i = p + 1, #data do
+			for i = p + 1, #(data) do
 				if not validate(schema.items, data[i], root) then
 					return false
 				end
@@ -312,7 +312,7 @@
 
 		if schema.contains ~= nil then
 			local found = 0
-			for i = 1, #data do
+			for i = 1, #(data) do
 				if validate(schema.contains, data[i], root) then
 					found = found + 1
 				end