UNPKG

@sprucelabs/schema

Version:

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

17 lines (16 loc) • 1.77 kB
import { FieldMap } from './.spruce/schemas/fields/fields.types'; import AbstractEntity from './AbstractEntity'; import { FieldDefinitionValueType, Field, FieldDefinition } from './fields/field.static.types'; import { DynamicSchemaAllValues, DynamicSchemaPartialValues, DynamicSchemaEntityByName, DynamicSchemaGetValuesOptions, DynamicSchemaNamedFieldsOptions, Schema, DynamicSchemaNamedField, SchemaNormalizeOptions, DynamicSchemaValidateOptions, DynamicSchemaNormalizeOptions } from './schemas.static.types'; export default class DynamicSchemaEntityImplementation<S extends Schema, OurField extends Field<any> = S['dynamicFieldSignature'] extends FieldDefinition ? FieldMap[S['dynamicFieldSignature']['type']] : any> extends AbstractEntity implements DynamicSchemaEntityByName<S, OurField> { private values; private dynamicField; constructor(schema: S, values?: DynamicSchemaPartialValues<S>); set<F extends string>(fieldName: F, value: FieldDefinitionValueType<OurField, false>, options?: DynamicSchemaNormalizeOptions<false>): this; validate(options?: DynamicSchemaValidateOptions<string>): void; isValid(options?: DynamicSchemaValidateOptions<string>): boolean; get<F extends string, CreateEntityInstances extends boolean = true>(fieldName: F, options?: SchemaNormalizeOptions<S, CreateEntityInstances>): FieldDefinitionValueType<OurField, CreateEntityInstances>; getValues<F extends string, CreateEntityInstances extends boolean = true>(options?: DynamicSchemaGetValuesOptions<S, F, CreateEntityInstances>): DynamicSchemaAllValues<S, CreateEntityInstances>; setValues(values: DynamicSchemaPartialValues<S>): this; getNamedFields<F extends string>(options?: DynamicSchemaNamedFieldsOptions<F>): DynamicSchemaNamedField[]; }