UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

39 lines (38 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fieldInstanceFromDef = fieldInstanceFromDef; var _utils = require("@backland/utils"); var _fieldTypes = require("./fields/fieldTypes"); function fieldInstanceFromDef(definition) { if (!_fieldTypes.types[definition.type]) { throw new _utils.RuntimeError(`invalid field definition. types["${definition === null || definition === void 0 ? void 0 : definition.type}"] is undefined`, { definition }); } const fieldConstructor = _fieldTypes.types[definition.type]; let field = fieldConstructor.create(definition.def); if (definition.list) { // @ts-ignore field = field.toList(definition.list); } if (definition.optional) { // @ts-ignore field = field.toOptional(); } if (definition.name) { field.name = definition.name; } if (definition.hidden) { field.hidden = definition.hidden; } if (definition.defaultValue !== undefined) { field = field.setDefaultValue(definition.defaultValue); } if (definition.description) { field = field.describe(definition.description); } return field; } //# sourceMappingURL=fieldInstanceFromDef.js.map