konditions
Version:
A simple and customizable JSON-based condition engine in TypeScript (e.g. GreaterThan, StringLike, Every, Some)
35 lines (34 loc) • 960 B
TypeScript
export interface Resolution {
passed: boolean;
resolutions?: Resolution[];
}
export interface SuccessfulResolution extends Resolution {
passed: true;
}
export interface UnsuccessfulResolution extends Resolution {
passed: false;
}
export interface FailedResolution<E = any> extends UnsuccessfulResolution {
passed: false;
error: E;
}
export declare type AnyResolution<E = any> = SuccessfulResolution | UnsuccessfulResolution | FailedResolution<E>;
export declare type FailedValidationResolution = FailedResolution<ValidationError>;
export declare type UnexpectedError = {
type: `UnexpectedError`;
message: string;
metadata?: {
[key: string]: any;
};
};
export declare type ValidationError = {
type: `ValidationError`;
reasons: Array<ValidationErrorReason>;
metadata?: {
[key: string]: any;
};
};
export declare type ValidationErrorReason = {
namespace: string;
message: string;
};