Push V1 app

This commit is contained in:
jlacoste
2026-06-26 11:54:29 +02:00
parent 8b7caa1a5a
commit 9d1990523f
3881 changed files with 1291493 additions and 1 deletions
+55
View File
@@ -0,0 +1,55 @@
/**
* Error thrown by validation. Besides an informative message, it includes the path to the
* property which triggered the failure.
*/
export declare class VError extends Error {
path: string;
constructor(path: string, message: string);
}
/**
* IContext is used during validation to collect error messages. There is a "noop" fast
* implementation that does not pay attention to messages, and a full implementation that does.
*/
export interface IContext {
fail(relPath: string | number | null, message: string | null, score: number): false;
unionResolver(): IUnionResolver;
resolveUnion(ur: IUnionResolver): void;
}
/**
* This helper class is used to collect error messages reported while validating unions.
*/
export interface IUnionResolver {
createContext(): IContext;
}
/**
* IErrorDetail describes errors as returned by the validate() and validateStrict() methods.
*/
export interface IErrorDetail {
path: string;
message: string;
nested?: IErrorDetail[];
}
/**
* Fast implementation of IContext used for first-pass validation. If that fails, we can validate
* using DetailContext to collect error messages. That's faster for the common case when messages
* normally pass validation.
*/
export declare class NoopContext implements IContext, IUnionResolver {
fail(relPath: string | number | null, message: string | null, score: number): false;
unionResolver(): IUnionResolver;
createContext(): IContext;
resolveUnion(ur: IUnionResolver): void;
}
/**
* Complete implementation of IContext that collects meaningfull errors.
*/
export declare class DetailContext implements IContext {
private _propNames;
private _messages;
private _score;
fail(relPath: string | number | null, message: string | null, score: number): false;
unionResolver(): IUnionResolver;
resolveUnion(unionResolver: IUnionResolver): void;
getError(path: string): VError;
getErrorDetail(path: string): IErrorDetail | null;
}