UNPKG

gather-ts

Version:

A powerful code analysis and packaging tool designed for creating AI-friendly code representations for javascript and typescript projects.

45 lines (44 loc) 1.63 kB
import { IService } from "@/types/services"; import { ILogger } from "@/utils/logging/interfaces/ILogger"; export interface IValidationResult { isValid: boolean; errors: string[]; warnings: string[]; } export interface IValidationOptions { optional?: boolean; allowEmpty?: boolean; type?: string; minLength?: number; maxLength?: number; min?: number; max?: number; integer?: boolean; pattern?: RegExp; arrayType?: string; requiredFields?: string[]; customValidator?: (value: any) => boolean; } export interface IValidatorDeps { logger: ILogger; } export interface IValidatorOptions { debug?: boolean; } export interface ITypeValidator { isString(value: unknown): value is string; isNumber(value: unknown): value is number; isBoolean(value: unknown): value is boolean; isObject(value: unknown): value is object; isArray(value: unknown): value is unknown[]; isDate(value: unknown): value is Date; } export interface IValidator extends IService, ITypeValidator { validate<T>(value: unknown, fieldName: string, options?: IValidationOptions): IValidationResult; validateNotEmpty<T>(value: T | null | undefined, fieldName: string): T; validateType(value: unknown, expectedType: string, fieldName: string): void; validateRange(value: number, min: number, max: number, fieldName: string): void; validateEnum<T extends string>(value: string, enumValues: readonly T[], fieldName: string): T; validatePattern(value: string, pattern: RegExp, fieldName: string): void; validatePath(path: string, context: string): void; }