32 lines
833 B
TypeScript
32 lines
833 B
TypeScript
import JSONdb from 'simple-json-db';
|
|
import { StorageInterface } from "./StorageInterface";
|
|
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
|
|
const dbPath = path.resolve(__dirname, '../../data/db.json');
|
|
const dbDir = path.dirname(dbPath);
|
|
|
|
// Zajistěte, že adresář existuje
|
|
if (!fs.existsSync(dbDir)) {
|
|
fs.mkdirSync(dbDir, { recursive: true });
|
|
}
|
|
|
|
const db = new JSONdb(dbPath);
|
|
/**
|
|
* Implementace úložiště používající JSON soubor.
|
|
*/
|
|
export default class JsonStorage implements StorageInterface {
|
|
|
|
hasData(key: string): Promise<boolean> {
|
|
return Promise.resolve(db.has(key));
|
|
}
|
|
|
|
getData<Type>(key: string): Promise<Type> {
|
|
return db.get(key);
|
|
}
|
|
|
|
setData<Type>(key: string, data: Type): Promise<void> {
|
|
db.set(key, data);
|
|
return Promise.resolve();
|
|
}
|
|
} |