UNPKG

json-express

Version:

Parse JSON expression and transform into another forms.

44 lines (43 loc) 1.59 kB
import TemplateExpression from './template-expression'; import FlatSchemaMatcher, { FlatSchema, FlatSchemaColumn } from './flat-schema-matcher'; interface JsonExpressContext { [key: string]: any; } interface JsonExpressHandler { name?: string; exclusive?: boolean; schema: FlatSchema; placeholder?(value: object): any; build(value: any, context?: JsonExpressContext): any | Promise<any>; } interface JsonExpressHandlerItem { handlerName: string; matcher: FlatSchemaMatcher; handler: JsonExpressHandler; typeCheckers: JsonExpressTypeCheckerMap; } interface JsonExpressReturnCallback { (value: any, completed?: boolean, error?: Error): void; } interface JsonExpressTypeChecker { (value: any): void; } interface JsonExpressTypeCheckerMap { [key: string]: JsonExpressTypeChecker; } interface JsonExpressTypeCheckerGenerator { (type: any, schemaColumn?: FlatSchemaColumn): JsonExpressTypeChecker; } declare class JsonExpress { static Template: typeof TemplateExpression; private handlerItems; private _typeCheckerGenerator; constructor(handlers?: JsonExpressHandler[]); get typeCheckerGenerator(): JsonExpressTypeCheckerGenerator; set typeCheckerGenerator(gen: JsonExpressTypeCheckerGenerator); private generateTypeCheckers; addHandler(handler: JsonExpressHandler): void; build(expression: any, context?: JsonExpressContext, cb?: JsonExpressReturnCallback): Promise<unknown>; } export default JsonExpress; export { JsonExpressContext, JsonExpressHandler, JsonExpressHandlerItem, JsonExpressTypeChecker };