@iota-big3/sdk-gateway
Version:
Universal API Gateway with protocol translation, intelligent routing, rate limiting, health checking, and caching
87 lines • 3.24 kB
TypeScript
/**
* Runtime Validation Utilities
* Following Phase 2g: Provides runtime type checking that matches compile-time types
* Focused on Education industry validation patterns
*/
import type { ValidationContext } from './index';
import type { EducationUser, Option, Result, TypeAssertion, TypeGuard } from './enhanced-types';
/**
* Validation result with detailed error information
*/
export interface ValidationResult<T = unknown> {
valid: boolean;
value?: T;
errors: ValidationError[];
warnings?: string[];
metadata?: {
validatedAt: string;
validatorVersion: string;
checksPerformed: number;
};
}
/**
* Detailed validation error
*/
export interface ValidationError {
path: string;
message: string;
expected: string;
actual: string;
code: string;
}
/**
* Create a validation result
*/
export declare function createValidationResult<T>(valid: boolean, value?: T, errors?: ValidationError[], warnings?: string[]): ValidationResult<T>;
/**
* Create a validation error
*/
export declare function createValidationError(path: string, message: string, expected: string, actual: string, code?: string): ValidationError;
/**
* Validate and type guard for EducationUser
*/
export declare function validateEducationUser(value: unknown): ValidationResult<EducationUser>;
/**
* Type guard for EducationUser
*/
export declare const isEducationUser: TypeGuard<EducationUser>;
/**
* Validate education context for compliance
*/
export declare function validateEducationContext(context: unknown): ValidationResult<ValidationContext>;
/**
* Validate a Result type
*/
export declare function validateResult<T, E>(value: unknown, validateSuccess: (v: unknown) => ValidationResult<T>, validateError: (v: unknown) => ValidationResult<E>): ValidationResult<Result<T, E>>;
/**
* Validate an Option type
*/
export declare function validateOption<T>(value: unknown, validateSome: (v: unknown) => ValidationResult<T>): ValidationResult<Option<T>>;
/**
* Assert that a value is an EducationUser
*/
export declare const assertEducationUser: TypeAssertion<EducationUser>;
/**
* Assert that a context is valid for education operations
*/
export declare const assertEducationContext: TypeAssertion<ValidationContext>;
/**
* Create a safe validator that returns Result<T, ValidationError[]>
*/
export declare function createSafeValidator<T>(validator: (value: unknown) => ValidationResult<T>): (value: unknown) => Result<T, ValidationError[]>;
/**
* Chain multiple validators
*/
export declare function chainValidators<T>(...validators: Array<(value: T) => ValidationResult<T>>): (value: unknown) => ValidationResult<T>;
/**
* Create a validator for arrays of a specific type
*/
export declare function createArrayValidator<T>(itemValidator: (value: unknown) => ValidationResult<T>): (value: unknown) => ValidationResult<T[]>;
export declare const educationValidators: {
user: typeof validateEducationUser;
context: typeof validateEducationContext;
isEducationUser: TypeGuard<EducationUser>;
assertEducationUser: TypeAssertion<EducationUser>;
assertEducationContext: TypeAssertion<ValidationContext>;
};
//# sourceMappingURL=validation-utilities.d.ts.map