UNPKG

ruler-factory

Version:

A flexible, chainable validation rule factory for typeScript/javaScript.

53 lines (51 loc) 3.79 kB
type RulerFactoryMessage = string | (() => string); type RulerFactoryValidator = (value: any) => undefined | Error; type RulerFactoryGenerator<R, P> = (validator: RulerFactoryValidator, params?: P) => R; type RulerContext<R, P, E> = Omit<{ rules: R[]; addRule: (validator: RulerFactoryValidator, params?: P) => RulerContext<R, P, E>; generator: RulerFactoryGenerator<R, P>; getMessage: (message: RulerFactoryMessage) => string; type: string; string: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; number: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; array: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; boolean: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; object: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; symbol: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; bigint: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; null: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; undefined: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; true: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; false: (message?: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; length: (v: number, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; min: (v: number | bigint, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; max: (v: number | bigint, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; regex: (v: RegExp, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; required: (message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; startsWith: (v: string, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; endsWith: (v: string, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; includes: (v: string, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; uppercase: (message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; lowercase: (message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; email: (message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; gt: (v: number | bigint, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; gte: (v: number | bigint, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; lt: (v: number | bigint, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; lte: (v: number | bigint, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; positive: (message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; negative: (message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; is: (v: (value: any) => boolean, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; not: (v: (value: any) => boolean, message: RulerFactoryMessage, params?: P) => RulerContext<R, P, E>; done: () => R[]; transformer: (value: any) => any; transform: (v: (value: any) => any) => void; trim: () => RulerContext<R, P, E>; shouldTrim: boolean; toLowerCase: () => RulerContext<R, P, E>; shouldToLowerCase: boolean; toUpperCase: () => RulerContext<R, P, E>; shouldToUpperCase: boolean; }, keyof E> & E; declare function rulerFactory<R, P = R, E extends Record<string, any> = {}>(generator: RulerFactoryGenerator<R, P>, extend?: (ctx: RulerContext<R, P, E>) => E): () => RulerContext<R, P, E>; export { type RulerContext, type RulerFactoryGenerator, type RulerFactoryMessage, type RulerFactoryValidator, rulerFactory };