flowjv
Version:
Flow based approach to JSON validation!
32 lines (31 loc) • 971 B
TypeScript
import { IJSONExpression } from "../..";
import { IKeyPath } from "../../helper/immutable";
import { ISimplePayload } from "./simple";
export interface IValidation<IData = {}, IContext = {}> {
logic: IJSONExpression<IData, IContext>;
err: string;
}
export interface IValidationResult {
isValid: boolean;
errors: {
key: IKeyPath;
msgs: string[];
}[];
payload: IPayload;
}
export interface IPayload<IData = any, IContext = any> {
data: IData;
context?: IContext;
}
export interface IFlowConfig {
aggressive?: boolean;
typeCheck?: boolean;
normalize?: boolean;
}
export declare const ErrorMsgs: {
required: string;
type: string;
};
export declare function executeValidation(validation: IValidation, payload: ISimplePayload): string | null;
export declare function executeValidations(validations: IValidation[], payload: ISimplePayload): string[];
export declare function uniqueId(prefix?: string): string;