teal-src/util/jsonschema.tl
changeset 11449 c73744fa3bdf
parent 11448 b3a903032611
child 11450 58c534bac798
equal deleted inserted replaced
11448:b3a903032611 11449:c73744fa3bdf
   235 				end
   235 				end
   236 			end
   236 			end
   237 		end
   237 		end
   238 
   238 
   239 		if schema.properties then
   239 		if schema.properties then
   240 			for k, s in pairs(schema.properties) do
   240 			local additional : schema_t | boolean = schema.additionalProperties or true
   241 				if data[k] ~= nil then
       
   242 					if not validate(s, data[k]) then
       
   243 						return false
       
   244 					end
       
   245 				end
       
   246 			end
       
   247 		end
       
   248 
       
   249 		if schema.additionalProperties then
       
   250 			for k, v in pairs(data) do
   241 			for k, v in pairs(data) do
   251 				if k is string then
   242 				local s = schema.properties[k as string] or additional as schema_t
   252 					if not (schema.properties and schema.properties[k]) then
   243 				if not validate(s, v) then
   253 						if not validate(schema.additionalProperties, v) then
   244 					return false
   254 							return false
   245 				end
   255 						end
   246 			end
   256 					end
   247 		elseif schema.additionalProperties then
   257 				end
   248 			for k, v in pairs(data) do
   258 			end
   249 				if not validate(schema.additionalProperties, v) then
   259 		elseif schema.properties then
   250 					return false
   260 			for k in pairs(data) do
       
   261 				if k is string then
       
   262 					if schema.properties[k] == nil then
       
   263 						return false
       
   264 					end
       
   265 				end
   251 				end
   266 			end
   252 			end
   267 		end
   253 		end
   268 
   254 
   269 		if schema.uniqueItems then
   255 		if schema.uniqueItems then