Software /
code /
prosody
Changeset
11440:d5288c99bb5a
util.jsonschema: Correct "items" keyword
Upon re-reading the JSON Schema spec, I found that 'items' wasn't a
union of an array of schemas or a single schema, not sure where I got
that from.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 09 Mar 2021 02:26:05 +0100 |
parents | 11439:9abcdfdcdb01 |
children | 11441:75a280e6e046 |
files | teal-src/util/jsonschema.tl util/jsonschema.lua |
diffstat | 2 files changed, 9 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/teal-src/util/jsonschema.tl Sun Mar 07 12:48:49 2021 +0100 +++ b/teal-src/util/jsonschema.tl Tue Mar 09 02:26:05 2021 +0100 @@ -37,7 +37,7 @@ format : string -- arrays - items : { schema_t } | schema_t + items : schema_t contains : { schema_t } maxItems : number minItems : number @@ -274,20 +274,12 @@ return true end - local item_schemas = schema.items as {schema_t} - if item_schemas and item_schemas[1] == nil then - local item_schema = item_schemas as schema_t - for i, v in pairs(data) do - if i is number then - if not validate(item_schema, v) then - return false - end + if schema.items then + for i = 1, #data do + if not validate(schema.items, data[i]) then + return false end end - elseif item_schemas and item_schemas[1] ~= nil then - for i, s in ipairs(item_schemas) do - validate(s, data[i]) - end end return true
--- a/util/jsonschema.lua Sun Mar 07 12:48:49 2021 +0100 +++ b/util/jsonschema.lua Tue Mar 09 02:26:05 2021 +0100 @@ -194,20 +194,12 @@ return true end - local item_schemas = schema.items - if item_schemas and item_schemas[1] == nil then - local item_schema = item_schemas - for i, v in pairs(data) do - if type(i) == "number" then - if not validate(item_schema, v) then - return false - end + if schema.items then + for i = 1, #data do + if not validate(schema.items, data[i]) then + return false end end - elseif item_schemas and item_schemas[1] ~= nil then - for i, s in ipairs(item_schemas) do - validate(s, data[i]) - end end return true