import type { WorkspaceMeta } from 'insomnia-data'; import { database as db, models } from 'insomnia-data'; const { type } = models.workspaceMeta; export function create(patch: Partial = {}) { if (!patch.parentId) { throw new Error(`New WorkspaceMeta missing parentId ${JSON.stringify(patch)}`); } return db.docCreate(type, patch); } export function update(workspaceMeta: WorkspaceMeta, patch: Partial = {}) { return db.docUpdate(workspaceMeta, patch); } export async function updateByParentId(parentId: string, patch: Partial = {}) { const meta = await getByParentId(parentId); return meta && db.docUpdate(meta, patch); } export async function getByParentId(parentId: string) { return db.findOne(type, { parentId }); } export async function getByGitRepositoryId(gitRepositoryId: string) { return db.findOne(type, { gitRepositoryId }); } export async function getOrCreateByParentId(parentId: string) { const doc = await getByParentId(parentId); return doc || create({ parentId }); } export function all() { return db.find(type); }