veffect
Version:
powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha
51 lines (50 loc) • 2.52 kB
TypeScript
import { Schema, RefinableSchema, TransformableSchema, DefaultableSchema, NullableSchema, PredicateSchema, CustomErrorsSchema } from '../types';
/**
* String schema interface
*/
export interface StringSchema extends Schema<string>, RefinableSchema<string, StringSchema>, TransformableSchema<string, StringSchema>, DefaultableSchema<string, StringSchema>, NullableSchema<string, StringSchema>, PredicateSchema<string, StringSchema>, CustomErrorsSchema<string, StringSchema> {
readonly _tag: 'StringSchema';
readonly minLength: (min: number, message?: string) => StringSchema;
readonly maxLength: (max: number, message?: string) => StringSchema;
readonly length: (length: number, message?: string) => StringSchema;
readonly regex: (pattern: RegExp, message?: string) => StringSchema;
readonly email: (message?: string) => StringSchema;
readonly url: (message?: string) => StringSchema;
readonly uuid: (message?: string) => StringSchema;
readonly cuid: (message?: string) => StringSchema;
readonly cuid2: (message?: string) => StringSchema;
readonly ulid: (message?: string) => StringSchema;
readonly startsWith: (substring: string, message?: string) => StringSchema;
readonly endsWith: (substring: string, message?: string) => StringSchema;
readonly includes: (substring: string, message?: string) => StringSchema;
readonly trim: (message?: string) => StringSchema;
readonly toLowerCase: () => StringSchema;
readonly toUpperCase: () => StringSchema;
readonly datetime: (options?: {
offset?: boolean;
precision?: number;
local?: boolean;
}, message?: string) => StringSchema;
readonly ip: (options?: "v4" | "v6" | {
version?: "v4" | "v6";
}, message?: string) => StringSchema;
readonly nonempty: (message?: string) => StringSchema;
readonly emoji: (message?: string) => StringSchema;
readonly nanoid: (message?: string) => StringSchema;
readonly cidr: (options?: {
version?: "v4" | "v6";
} | string, message?: string) => StringSchema;
readonly base64: (options?: {
padding?: boolean;
urlSafe?: boolean;
} | string, message?: string) => StringSchema;
readonly date: (message?: string) => StringSchema;
readonly time: (options?: {
precision?: number;
}, message?: string) => StringSchema;
readonly duration: (message?: string) => StringSchema;
}
/**
* Create a string schema
*/
export declare function string(): StringSchema;