UNPKG

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
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;