import { AnyOfModel, ArrayModel, ObjectModel, StreamModel, ValueModel } from './definitionModel'; import BackErrorBag from "../../api/BackErrorBag"; import { ProcessTask } from "./processTaskEngine"; import { ModelMetaData } from '../models/metaModel'; export interface ProcessInfo { errorBag: BackErrorBag; processTaskList: ProcessTask[]; createProcessTaskList: boolean; } export declare type InputProcessFunction = (srcObj: object, srcKey: string | number, currentPath: string, { errorBag, processTaskList, createProcessTaskList }: ProcessInfo) => Promise; export interface Processable { _process: InputProcessFunction; } export default class ModelProcessCreator { /** * Creates a closure to process a value model. * @param valueModel * @param meta */ static createValueModelProcessor(valueModel: ValueModel, meta: ModelMetaData): InputProcessFunction; /** * Creates a closure to process a array model. * @param arrayModel * @param meta */ static createArrayModelProcessor(arrayModel: ArrayModel, meta: ModelMetaData): InputProcessFunction; /** * Creates a closure to process a anyOf model. * @param anyOfModel * @param meta */ static createAnyOfModelProcessor(anyOfModel: AnyOfModel, meta: ModelMetaData): InputProcessFunction; /** * Creates a closure to process a object model. * @param objectModel * @param meta */ static createObjectModelProcessor(objectModel: ObjectModel, meta: ModelMetaData): InputProcessFunction; /** * Creates a closure to process a stream model. * @param streamModel * @param meta */ static createStreamModelProcessor(streamModel: StreamModel, meta: ModelMetaData): InputProcessFunction; }