You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.3 KiB
47 lines
1.3 KiB
{{## def.assignDefault: |
|
{{? it.compositeRule }} |
|
{{ |
|
if (it.opts.strictDefaults) { |
|
var $defaultMsg = 'default is ignored for: ' + $passData; |
|
if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); |
|
else throw new Error($defaultMsg); |
|
} |
|
}} |
|
{{??}} |
|
if ({{=$passData}} === undefined |
|
{{? it.opts.useDefaults == 'empty' }} |
|
|| {{=$passData}} === null |
|
|| {{=$passData}} === '' |
|
{{?}} |
|
) |
|
{{=$passData}} = {{? it.opts.useDefaults == 'shared' }} |
|
{{= it.useDefault($sch.default) }} |
|
{{??}} |
|
{{= JSON.stringify($sch.default) }} |
|
{{?}}; |
|
{{?}} |
|
#}} |
|
|
|
|
|
{{## def.defaultProperties: |
|
{{ |
|
var $schema = it.schema.properties |
|
, $schemaKeys = Object.keys($schema); }} |
|
{{~ $schemaKeys:$propertyKey }} |
|
{{ var $sch = $schema[$propertyKey]; }} |
|
{{? $sch.default !== undefined }} |
|
{{ var $passData = $data + it.util.getProperty($propertyKey); }} |
|
{{# def.assignDefault }} |
|
{{?}} |
|
{{~}} |
|
#}} |
|
|
|
|
|
{{## def.defaultItems: |
|
{{~ it.schema.items:$sch:$i }} |
|
{{? $sch.default !== undefined }} |
|
{{ var $passData = $data + '[' + $i + ']'; }} |
|
{{# def.assignDefault }} |
|
{{?}} |
|
{{~}} |
|
#}}
|
|
|