UNPKG

mcard-js

Version:

A JavaScript implementation of MCard - A data model for persistently storing content with cryptographic hashing and timestamping

70 lines (55 loc) 1.66 kB
import dotenv from 'dotenv'; import path from 'path'; import { DEFAULT_HASH_LENGTH, DEFAULT_LOG_LEVEL } from './config_constants.js'; class EnvParameters { static #instance = null; constructor() { // Load environment variables dotenv.config(); // Set values from environment or use defaults from config_constants this.MCARD_DB_PATH = process.env.MCARD_DB_PATH; this.MCARD_HASH_ALGORITHM = process.env.MCARD_HASH_ALGORITHM; this.MCARD_HASH_CUSTOM_MODULE = process.env.MCARD_HASH_CUSTOM_MODULE; this.MCARD_HASH_CUSTOM_FUNCTION = process.env.MCARD_HASH_CUSTOM_FUNCTION; this.MCARD_HASH_LENGTH = parseInt(process.env.MCARD_HASH_LENGTH || DEFAULT_HASH_LENGTH, 10); this.MCARD_LOG_LEVEL = process.env.MCARD_LOG_LEVEL || DEFAULT_LOG_LEVEL; } static getInstance() { if (!EnvParameters.#instance) { EnvParameters.#instance = new EnvParameters(); } return EnvParameters.#instance; } static reset() { EnvParameters.#instance = null; } getLogLevel() { return this.MCARD_LOG_LEVEL; } get_log_level() { return this.getLogLevel(); } // Getter methods matching Python implementation get_db_path() { return this.MCARD_DB_PATH; } get_hash_algorithm() { return this.MCARD_HASH_ALGORITHM; } get_hash_custom_module() { return this.MCARD_HASH_CUSTOM_MODULE; } get_hash_custom_function() { return this.MCARD_HASH_CUSTOM_FUNCTION; } get_hash_custom_length() { return this.MCARD_HASH_LENGTH; } get_default_db_path() { return path.resolve(process.cwd(), this.MCARD_DB_PATH); } } export { EnvParameters as default, EnvParameters };