Files
insomnia/packages/insomnia-data/node-src/services/plugin-data.ts
2026-03-31 14:27:44 +08:00

41 lines
1.0 KiB
TypeScript

import { database as db, models, type PluginData } from 'insomnia-data';
const { type } = models.pluginData;
export function create(patch: Partial<PluginData> = {}) {
return db.docCreate<PluginData>(type, patch);
}
export async function update(doc: PluginData, patch: Partial<PluginData>) {
return db.docUpdate(doc, patch);
}
export async function upsertByKey(plugin: string, key: string, value: string) {
const doc = await getByKey(plugin, key);
return doc
? update(doc, {
value,
})
: create({
plugin,
key,
value,
});
}
export async function removeByKey(plugin: string, key: string) {
return db.removeWhere<PluginData>(type, { plugin, key });
}
export async function all(plugin: string) {
return db.find<PluginData>(type, { plugin });
}
export async function removeAll(plugin: string) {
return db.removeWhere<PluginData>(type, { plugin });
}
export async function getByKey(plugin: string, key: string) {
return db.findOne<PluginData>(type, { plugin, key });
}