/
dropdead
/
frontend_trainee
Обзор
Документация
Войти
/
dropdead
/
frontend_trainee
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/lowdb/lib/adapters/node/DataFile.js
45 строк
1 KB
Ivan
init: add server files and depdendcies from task
06 сен 2024, 20:55
06 сен 2024, 20:55
880ac28
Код
Авторство
О чём код?
import { TextFile, TextFileSync } from './TextFile.js'; export class DataFile { #adapter; #parse; #stringify; constructor(filename, { parse, stringify, }) { this.#adapter = new TextFile(filename); this.#parse = parse; this.#stringify = stringify; } async read() { const data = await this.#adapter.read(); if (data === null) { return null; } else { return this.#parse(data); } } write(obj) { return this.#adapter.write(this.#stringify(obj)); } } export class DataFileSync { #adapter; #parse; #stringify; constructor(filename, { parse, stringify, }) { this.#adapter = new TextFileSync(filename); this.#parse = parse; this.#stringify = stringify; } read() { const data = this.#adapter.read(); if (data === null) { return null; } else { return this.#parse(data); } } write(obj) { this.#adapter.write(this.#stringify(obj)); } }