import {AnyJson, DataProviderArgs, Provider} from "~/types/interfaces"; import BaseProvider from "~/services/dataProvider/provider/baseProvider"; import {QUERY_TYPE} from "~/types/enums"; import {Context} from "@nuxt/types/app"; import * as _ from "lodash"; import {repositoryHelper} from "~/services/store/repository"; class ModelProvider extends BaseProvider implements Provider{ constructor(ctx: Context, args: DataProviderArgs) { super(ctx, args); } async invoke(data: AnyJson): Promise{ if(typeof this.arguments.model === 'undefined') throw new Error('model must be defined'); data['originalState'] = _.cloneDeep(data) await repositoryHelper.persist(this.arguments.model, data) await this.postHook() } static support(args:DataProviderArgs): boolean{ return args.type === QUERY_TYPE.MODEL } } export default ModelProvider