From 8b1071c4593b51cc656fed25dff8f0b256ab562c Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Fri, 3 Jan 2025 21:17:44 +0100 Subject: [PATCH] refactor(data_dir): export dirs as frozen readonly object previously exported object allowed the values to be changed accidentally at runtime and buildtime --- src/services/data_dir.ts | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/services/data_dir.ts b/src/services/data_dir.ts index 090c334b7..6b7806628 100644 --- a/src/services/data_dir.ts +++ b/src/services/data_dir.ts @@ -66,19 +66,28 @@ function getTriliumDataDir() { return homePath; } +function getDataDirs(TRILIUM_DATA_DIR: string) { + const dataDirs = { + "TRILIUM_DATA_DIR": + TRILIUM_DATA_DIR, + "DOCUMENT_PATH": + process.env.TRILIUM_DOCUMENT_PATH || pathJoin(TRILIUM_DATA_DIR, "document.db"), + "BACKUP_DIR": + process.env.TRILIUM_BACKUP_DIR || pathJoin(TRILIUM_DATA_DIR, "backup"), + "LOG_DIR": + process.env.TRILIUM_LOG_DIR || pathJoin(TRILIUM_DATA_DIR, "log"), + "ANONYMIZED_DB_DIR": + process.env.TRILIUM_ANONYMIZED_DB_DIR || pathJoin(TRILIUM_DATA_DIR, "anonymized-db"), + "CONFIG_INI_PATH": + process.env.TRILIUM_CONFIG_INI_PATH || pathJoin(TRILIUM_DATA_DIR, "config.ini") + } as const + + Object.freeze(dataDirs); + return dataDirs; + +} + const TRILIUM_DATA_DIR = getTriliumDataDir(); +const dataDirs = getDataDirs(TRILIUM_DATA_DIR); -const DOCUMENT_PATH = process.env.TRILIUM_DOCUMENT_PATH || pathJoin(TRILIUM_DATA_DIR, "document.db"); -const BACKUP_DIR = process.env.TRILIUM_BACKUP_DIR || pathJoin(TRILIUM_DATA_DIR, "backup"); -const LOG_DIR = process.env.TRILIUM_LOG_DIR || pathJoin(TRILIUM_DATA_DIR, "log"); -const ANONYMIZED_DB_DIR = process.env.TRILIUM_ANONYMIZED_DB_DIR || pathJoin(TRILIUM_DATA_DIR, "anonymized-db"); -const CONFIG_INI_PATH = process.env.TRILIUM_CONFIG_INI_PATH || pathJoin(TRILIUM_DATA_DIR, "config.ini"); - -export default { - TRILIUM_DATA_DIR, - DOCUMENT_PATH, - BACKUP_DIR, - LOG_DIR, - ANONYMIZED_DB_DIR, - CONFIG_INI_PATH -}; +export default dataDirs; \ No newline at end of file