From de8b4a1b62337b9888ea796443e9750ef84e81f5 Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Mon, 28 Sep 2020 23:06:51 -0600 Subject: [PATCH] Add database module --- src/utils/db.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/utils/db.ts b/src/utils/db.ts index e69de29..2eb3b0c 100644 --- a/src/utils/db.ts +++ b/src/utils/db.ts @@ -0,0 +1,29 @@ +import { readFileSync, unlinkSync, writeFileSync } from "fs"; + +const DATA_PATH = `data`; +const DATA_EXTENSION = `.json` + +export const create = (game_code: string): void => { + writeFileSync(`${DATA_PATH}/${game_code}${DATA_EXTENSION}`, JSON.stringify({})); +}; + +export const read = (game_code: string): database => { + return JSON.parse(readFileSync(`${DATA_PATH}/${game_code}${DATA_EXTENSION}`, `utf-8`)); +}; + +export const exists = (game_code: string): boolean => { + try { + require.resolve(`${DATA_PATH}/${game_code}${DATA_EXTENSION}`); + return true; + } catch { + return false; + }; +}; + +export const write = (game_code: string, data: any, indent?: string|number): void => { + writeFileSync(`${DATA_PATH}/${game_code}${DATA_EXTENSION}`, JSON.stringify(data, undefined, indent)); +}; + +export const del = (game_code: string): void => { + unlinkSync(`${DATA_PATH}/${game_code}${DATA_EXTENSION}`); +}; \ No newline at end of file