import {Query} from "@vuex-orm/core"; import {$objectProperties} from "~/services/utils/objectProperties"; import {AnyJson} from "~/types/types"; import {Collection, Item} from "@vuex-orm/core/dist/src/data/Data"; class useQuery{ public getEntry(query: Query, id:number): Item{ return query.find(id); } public getEntries(query: Query):Collection{ return query.get() } public getFlattenEntry(query: Query, id:number): AnyJson{ return $objectProperties.cloneAndFlatten(this.getEntry(query, id) as AnyJson); } public getFlattenEntries(query: Query): Array{ const entries = this.getEntries(query) return entries.map((entry:AnyJson) => { return $objectProperties.cloneAndFlatten(entry) }) } public getJsonEntry(query: Query, id:number): AnyJson{ const entry = this.getEntry(query, id); if(entry) return entry.$toJson(); return {} } } export const useQueryHelper = new useQuery()