mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-24 10:37:16 +00:00
31 lines
1,002 B
TypeScript
31 lines
1,002 B
TypeScript
import { knex } from "../db";
|
|
|
|
export default class KeyValue {
|
|
static async get(key: string): Promise<any> {
|
|
const result = await knex("key_value").where({key}).first("value");
|
|
if(result == null) {
|
|
return null;
|
|
}
|
|
return JSON.parse(result.value);
|
|
}
|
|
|
|
static async set(key: string, value: any): Promise<void> {
|
|
const {count} = (await knex("key_value").where({key}).count({count: '*'}).first() as {count: number});
|
|
if(count) {
|
|
return await KeyValue.update(key, value);
|
|
} else {
|
|
return await KeyValue.insert(key, value);
|
|
}
|
|
}
|
|
|
|
static async update(key: string, value: any): Promise<void> {
|
|
const json = JSON.stringify(value);
|
|
await knex("key_value").where({key}).update({value: json});
|
|
}
|
|
|
|
static async insert(key: string, value: any): Promise<any> {
|
|
const json = JSON.stringify(value);
|
|
await knex("key_value").insert({key, value: json});
|
|
}
|
|
|
|
}
|