@ticatec/common-express-server
Version:
A comprehensive TypeScript library providing common classes, controllers, and middleware for building scalable Express.js applications with multi-tenant support.
57 lines • 1.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Application configuration singleton class
*/
class AppConf {
/**
* Private constructor for singleton pattern
* @param conf Configuration object
*/
constructor(conf) {
this.conf = conf;
}
/**
* Gets the singleton instance
* @returns AppConf instance or null if not initialized
*/
static getInstance() {
return AppConf.instance;
}
/**
* Initializes the configuration singleton
* @param config Configuration object
* @returns AppConf instance
*/
static init(config) {
console.debug('Initializing configuration center', config);
if (AppConf.instance == null) {
AppConf.instance = new AppConf(config);
}
return AppConf.instance;
}
/**
* Gets configuration value by key (supports dot notation)
* @param key Configuration key (can use dot notation like 'server.port')
* @returns Configuration value or undefined if not found
*/
get(key) {
if (!key)
return undefined;
const keys = key.split('.');
let result = this.conf;
for (const k of keys) {
if (result && typeof result === 'object' && k in result) {
result = result[k];
}
else {
return undefined;
}
}
return result;
}
}
/** Singleton instance */
AppConf.instance = null;
exports.default = AppConf;
//# sourceMappingURL=AppConf.js.map
;