@backland/schema
Version:
TypeScript schema declaration and validation library with static type inference
39 lines (38 loc) • 1.19 kB
JavaScript
;
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