@sprucelabs/schema
Version:
Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓
17 lines (16 loc) • 595 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fields_1 = require("../fields");
class FieldFactory {
/** Factory for creating a new field from a definition */
static Field(name, definition) {
const fieldClass = fields_1.fieldClassMap[definition.type];
if (!fieldClass) {
throw new Error(`Failed to find schema field by type "${definition.type}" for field named ${name}.`);
}
// @ts-ignore
const field = new fieldClass(name, definition);
return field;
}
}
exports.default = FieldFactory;