@backland/schema
Version:
TypeScript schema declaration and validation library with static type inference
33 lines • 1.05 kB
JavaScript
import { RuntimeError } from '@backland/utils';
import { types } from './fields/fieldTypes';
export function fieldInstanceFromDef(definition) {
if (!types[definition.type]) {
throw new RuntimeError("invalid field definition. types[\"".concat(definition === null || definition === void 0 ? void 0 : definition.type, "\"] is undefined"), {
definition
});
}
var fieldConstructor = types[definition.type];
var 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