facilmap/server/src/database/meta.ts

38 wiersze
944 B
TypeScript

import { DataTypes, InferAttributes, InferCreationAttributes, Model } from "sequelize";
import Database from "./database";
import { createModel } from "./helpers";
interface MetaModel extends Model<InferAttributes<MetaModel>, InferCreationAttributes<MetaModel>> {
key: string;
value: string;
}
export default class DatabaseMeta {
MetaModel = createModel<MetaModel>();
_db: Database;
constructor(database: Database) {
this._db = database;
this.MetaModel.init({
key: { type: DataTypes.STRING, allowNull: false, primaryKey: true },
value: { type: DataTypes.TEXT, allowNull: false }
}, {
sequelize: this._db._conn,
modelName: "Meta"
});
}
async getMeta(key: string): Promise<string | undefined> {
const entry = await this.MetaModel.findOne({ where: { key } });
return entry?.value ?? undefined;
}
async setMeta(key: string, value: string): Promise<void> {
await this.MetaModel.upsert({key, value});
}
}