import { knex } from "../db"; export default class KeyValue { static async get(key: string): Promise { 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 { 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 { const json = JSON.stringify(value); await knex("key_value").where({key}).update({value: json}); } static async insert(key: string, value: any): Promise { const json = JSON.stringify(value); await knex("key_value").insert({key, value: json}); } }