UNPKG

@sprucelabs/schema

Version:

Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓

14 lines (13 loc) • 505 B
import { fieldClassMap } from '../fields/index.js'; export default class FieldFactory { /** Factory for creating a new field from a definition */ static Field(name, definition) { const fieldClass = 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; } }