import type { RequestGroupMeta } from 'insomnia-data'; import { database as db, models } from 'insomnia-data'; const { type } = models.requestGroupMeta; export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error('New RequestGroupMeta missing `parentId`: ' + JSON.stringify(patch)); } return db.docCreate(type, patch); } export function update(requestGroupMeta: RequestGroupMeta, patch: Partial) { return db.docUpdate(requestGroupMeta, patch); } export function getByParentId(parentId: string) { return db.findOne(type, { parentId }); } export async function getOrCreateForParentId(parentId: string, patch: Partial = {}) { const spec = await db.findOne(type, { parentId, }); if (!spec) { return db.docCreate(type, { ...patch, parentId }); } return spec; } export async function updateOrCreateForParentId(parentId: string, patch: Partial = {}) { const spec = await getOrCreateForParentId(parentId); return db.docUpdate(spec, patch); } export async function updateByParentId(parentId: string, patch: Partial = {}) { const meta = await getByParentId(parentId); return meta && db.docUpdate(meta, patch); } export function all() { return db.find(type); }