UNPKG

@sprucelabs/schema

Version:

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

21 lines (20 loc) • 1.47 kB
import { FieldError } from '../errors/options.types'; import { Schema, SchemaIdWithVersion } from '../schemas.static.types'; import { FieldTemplateDetailOptions, FieldTemplateDetails } from '../types/template.types'; import AbstractField from './AbstractField'; import { ValidateOptions, ToValueTypeOptions, FieldDefinitionValueType } from './field.static.types'; import { SchemaFieldFieldDefinition } from './SchemaField.types'; export default class SchemaField<F extends SchemaFieldFieldDefinition = SchemaFieldFieldDefinition> extends AbstractField<F> { static readonly description = "A way to map relationships."; static mapFieldDefinitionToSchemasOrIdsWithVersion(field: SchemaFieldFieldDefinition): (SchemaIdWithVersion | Schema)[]; static mapFieldDefinitionToSchemaIdsWithVersion(field: SchemaFieldFieldDefinition): SchemaIdWithVersion[]; static generateTypeDetails(): { valueTypeMapper: string; }; static generateTemplateDetails(options: FieldTemplateDetailOptions<SchemaFieldFieldDefinition>): FieldTemplateDetails; private static findSchemaInTemplateItems; private static mapFieldDefinitionToSchemas; validate(value: any, options?: ValidateOptions<SchemaFieldFieldDefinition>): FieldError[]; private Schema; toValueType<CreateEntityInstances extends boolean>(value: any, options?: ToValueTypeOptions<SchemaFieldFieldDefinition, CreateEntityInstances>): FieldDefinitionValueType<F, CreateEntityInstances>; }