/
ton-org
/
blueprint
Обзор
Документация
Войти
/
ton-org
/
blueprint
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
develop
src/network/storage/FSStorage.ts
42 строки
1 KB
Danil Ovchinnikov
chore: migration to typescript privacy modifier style (#309)
23 сен 2025, 12:24
Не верифицирован
23 сен 2025, 12:24
f88979b
Код
Авторство
О чём код?
import path from 'path'; import fs from 'fs/promises'; import { Storage } from './Storage'; type StorageObject = { [k: string]: string; }; export class FSStorage implements Storage { constructor(private readonly path: string) {} private async readObject(): Promise<StorageObject> { try { return JSON.parse((await fs.readFile(this.path)).toString('utf-8')); } catch (_) { return {}; } } private async writeObject(obj: StorageObject): Promise<void> { await fs.mkdir(path.dirname(this.path), { recursive: true }); await fs.writeFile(this.path, JSON.stringify(obj)); } async setItem(key: string, value: string): Promise<void> { const obj = await this.readObject(); obj[key] = value; await this.writeObject(obj); } async getItem(key: string): Promise<string | null> { const obj = await this.readObject(); return obj[key] ?? null; } async removeItem(key: string): Promise<void> { const obj = await this.readObject(); delete obj[key]; await this.writeObject(obj); } }