import {Model, Repository} from "@vuex-orm/core"; import {$objectProperties} from "~/services/utils/objectProperties"; import {AnyJson} from "~/types/interfaces"; import {Store} from "vuex"; class useRepository{ private store !: Store public setStore(store: Store){ this.store = store } public getRepository(model: typeof Model): Repository{ return this.store.$repo(model) } public updateStoreFromField(repository: Repository, entry:AnyJson, value:any, field:string): void{ entry[field] = value this.updateStore(repository, $objectProperties.cloneAndNest(entry)) } public updateStore(repository: Repository, entry:AnyJson): void{ repository.save(entry) } public cleanRepository(repository: Repository){ return () => { repository.flush() } } } export const useRepositoryHelper = new useRepository()