Software /
code /
prosody
File
teal-src/util/dataforms.d.tl @ 12580:a9dbf657c894 0.12
util.datamapper: Improve handling of schemas with non-obvious "type"
The JSON Schema specification says that schemas are objects or booleans,
and that the 'type' property is optional and can be an array.
This module previously allowed bare type names as schemas and did not
really handle booleans.
It now handles missing 'type' properties and boolean 'true' as a schema.
Objects and arrays are guessed based on the presence of 'properties' or
'items' field.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 08 Jul 2022 17:32:48 +0200 |
parent | 11432:113f3912c7cb |
child | 12614:d498e7e7853a |
line wrap: on
line source
local stanza_t = require "util.stanza".stanza_t local enum form_type "form" "submit" "cancel" "result" end local enum field_type "boolean" "fixed" "hidden" "jid-multi" "jid-single" "list-multi" "list-single" "text-multi" "text-private" "text-single" end local record form_field type : field_type var : string -- protocol name name : string -- internal name label : string desc : string datatype : string range_min : number range_max : number value : any -- depends on field_type options : table end local record dataform title : string instructions : string { form_field } -- XXX https://github.com/teal-language/tl/pull/415 form : function ( dataform, table, form_type ) : stanza_t end local record lib new : function ( dataform ) : dataform end return lib