UNPKG

@sprucelabs/schema

Version:

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

21 lines (20 loc) • 2.5 kB
import AbstractEntity from './AbstractEntity'; import { Schema, StaticSchemaPartialValues, SchemaFieldNames, SchemaNormalizeOptions, SchemaFieldValueType, SchemaValidateOptions, SchemaDefaultValues, SchemaGetValuesOptions, SchemaAllValues, SchemaNamedFieldsOptions, SchemaNamedField, SchemaGetDefaultValuesOptions, SchemaFieldNamesWithDefaultValue, StaticSchemaEntity, SchemaPublicValues, SchemaPublicFieldNames } from './schemas.static.types'; export default class StaticSchemaEntityImpl<S extends Schema> extends AbstractEntity implements StaticSchemaEntity<S> { static enableDuplicateCheckWhenTracking: boolean; protected schema: S; private values; private fields; constructor(schema: S, values?: StaticSchemaPartialValues<S>); private buildFields; private normalizeValue; get<F extends SchemaFieldNames<S>, CreateEntityInstances extends boolean = true>(fieldName: F, options?: SchemaNormalizeOptions<S, CreateEntityInstances>): SchemaFieldValueType<S, F, CreateEntityInstances, true>; set<F extends SchemaFieldNames<S>>(fieldName: F, value: SchemaFieldValueType<S, F>, options?: SchemaNormalizeOptions<S, false>): this; isValid(options?: SchemaValidateOptions<S>): boolean; private pluckExtraFields; validate(options?: SchemaValidateOptions<S>): void; getDefaultValues<F extends SchemaFieldNamesWithDefaultValue<S> = SchemaFieldNamesWithDefaultValue<S>, CreateEntityInstances extends boolean = true>(options?: SchemaGetDefaultValuesOptions<S, F, CreateEntityInstances>): Pick<SchemaDefaultValues<S, CreateEntityInstances>, F>; getValues<F extends SchemaFieldNames<S> = SchemaFieldNames<S>, PF extends SchemaPublicFieldNames<S> = SchemaPublicFieldNames<S>, CreateEntityInstances extends boolean = true, IncludePrivateFields extends boolean = true, ShouldIncludeNullAndUndefinedFields extends boolean = true, ExcludeFields extends SchemaFieldNames<S> | undefined = undefined, PublicExcludeFields extends SchemaPublicFieldNames<S> | undefined = undefined>(options?: SchemaGetValuesOptions<S, F, PF, CreateEntityInstances, IncludePrivateFields, ShouldIncludeNullAndUndefinedFields, ExcludeFields, PublicExcludeFields>): IncludePrivateFields extends false ? Pick<SchemaPublicValues<S, CreateEntityInstances>, PF> : Pick<SchemaAllValues<S, CreateEntityInstances>, F>; setValues(values: StaticSchemaPartialValues<S>): this; getNamedFields<F extends SchemaFieldNames<S>>(options?: SchemaNamedFieldsOptions<S, F>): SchemaNamedField<S>[]; }