@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
TypeScript
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>;
}