mvom
Version:
Multivalue Object Mapper
36 lines (35 loc) • 1.63 kB
TypeScript
import { StringDataTransformer } from '../dataTransformers';
import type { ForeignKeyDbDefinition } from '../ForeignKeyDbTransformer';
import type { SchemaCompoundForeignKeyDefinition, SchemaForeignKeyDefinition } from '../Schema';
import type { ScalarTypeConstructorOptions } from './BaseScalarType';
import BaseScalarType from './BaseScalarType';
import type { SchemaTypeDefinitionBase } from './BaseSchemaType';
export interface SchemaTypeDefinitionString extends SchemaTypeDefinitionBase {
type: 'string';
enum?: readonly string[];
match?: RegExp;
foreignKey?: SchemaForeignKeyDefinition | SchemaCompoundForeignKeyDefinition;
}
/** String Schema Type */
declare class StringType extends BaseScalarType {
/** Data transformer */
protected readonly dataTransformer: StringDataTransformer;
/** Array of allowed enumerations */
private readonly enum;
private readonly match;
private readonly foreignKeyDbTransformer;
constructor(definition: SchemaTypeDefinitionString, options?: ScalarTypeConstructorOptions);
/** Create an array of foreign key definitions that will be validated before save */
transformForeignKeyDefinitionsToDb(value: unknown): ForeignKeyDbDefinition[];
/** String required validator */
protected validateRequired: (value: any) => boolean;
/** Enum validator */
private validateEnum;
/** Create validation object for enum validation */
private createEnumValidator;
/** Match validator */
private validateMatch;
/** Create validation object for match validation */
private createMatchValidator;
}
export default StringType;