@shopify/app-bridge
Version:
**Shopify is doubling our engineering staff in 2021! [Join our team and work on libraries like this one.](https://smrtr.io/5GGrc)**
43 lines (42 loc) • 1.6 kB
TypeScript
export interface Indexable {
[key: string]: any;
}
export interface ValidationError {
error: string;
message?: string;
path?: string;
value: any;
}
export interface Validator {
(value: any): ValidationError[] | undefined;
}
export interface ErrorMessageCallback {
(error: string, value: any): string | undefined;
}
export interface Options {
message?: string | ErrorMessageCallback;
}
export interface Schema {
[key: string]: Validator;
}
export declare function matchesBoolean(options?: Options): Validator;
export declare function matchesString(options?: Options): Validator;
export declare function matchesPositiveInteger(options?: Options): Validator;
export declare function matchesPositiveNumber(options?: Options): Validator;
/**
* Returns a validator that matches values in the given enum
* @param type - enum to use for match values
* @public
*/
export declare function matchesEnum(types: Indexable, options?: Options): Validator;
export declare function matchesArray(validator?: Validator, options?: Options): Validator;
export declare function matchesObject(schema: Schema, options?: Options): Validator;
export declare function oneOf(...validators: Validator[]): Validator;
export declare function makeOptional(validator: Validator): (value: any) => ValidationError[] | undefined;
export declare function composeSchemas(...validators: Validator[]): Validator;
export declare function validate(obj: any, validator: Validator): {
path: string | undefined;
error: string;
message?: string | undefined;
value: any;
}[] | undefined;