| 123456789101112131415161718192021222324252627282930313233 |
- 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<any>
- public setStore(store: Store<any>){
- this.store = store
- }
- public getRepository(model: typeof Model): Repository<Model>{
- return this.store.$repo(model)
- }
- public updateStoreFromField(repository: Repository<Model>, entry:AnyJson, value:any, field:string): void{
- entry[field] = value
- this.updateStore(repository, $objectProperties.cloneAndNest(entry))
- }
- public updateStore(repository: Repository<Model>, entry:AnyJson): void{
- repository.save(entry)
- }
- public cleanRepository(repository: Repository){
- return () => {
- repository.flush()
- }
- }
- }
- export const useRepositoryHelper = new useRepository()
|