Files
DianZhanDemo/shared/dist/utils/validation.d.ts

59 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-12-11 02:09:07 +08:00
/**
*
* Common validation utility functions
*/
import * as v from 'valibot';
/**
*
* Validation error interface
*/
export interface ValidationError {
field: string;
message: string;
code: string;
}
/**
*
* Validation result interface
*/
export interface ValidationResult<T> {
success: boolean;
data?: T;
errors?: ValidationError[];
}
/**
* Valibot
* Convert Valibot validation errors to custom format
*/
export declare function formatValidationErrors(issues: v.BaseIssue<unknown>[]): ValidationError[];
/**
*
* Safely parse data with validation
*/
export declare function safeParseData<T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, data: unknown): ValidationResult<T>;
/**
*
* Parse and validate data, throw error on failure
*/
export declare function parseData<T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, data: unknown): T;
/**
* API
* Create validation middleware function (for API)
*/
export declare function createValidationMiddleware<T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>): (data: unknown) => T;
/**
*
* Validate query parameters
*/
export declare function validateQuery<T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, query: Record<string, any>): T;
/**
*
* Validate request body data
*/
export declare function validateBody<T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, body: unknown): T;
/**
*
* Validate path parameters
*/
export declare function validateParams<T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, params: Record<string, any>): T;
//# sourceMappingURL=validation.d.ts.map