@imqueue/async-logger
Version:
Configurable async logger over winston for @imqueue services
54 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.pkg = pkg;
exports.transportsConfig = transportsConfig;
exports.defaultMetadata = defaultMetadata;
const path_1 = require("path");
const fs_1 = require("fs");
const RX_NAME = /%name/g;
const RX_VERSION = /%version/g;
/**
* Retrieve package name and version from package.json of running service
*
* @returns {name: string, value: string} - return package name and version
*/
function pkg() {
const pkgPath = (0, path_1.resolve)(process.cwd(), 'package.json');
const { name, version } = (0, fs_1.existsSync)(pkgPath)
? require(pkgPath)
: { name: 'logger', version: '' };
return { name, version };
}
/**
* Used for retrieve transport config from environment variables
*
* @returns {TransportOptions[]}
*/
function transportsConfig() {
const { name, version } = pkg();
try {
return JSON.parse((process.env.LOGGER_TRANSPORTS || '[]')
.replace(RX_NAME, name)
.replace(RX_VERSION, version));
}
catch (err) {
throw new TypeError(`Logger: can not parse transports config: ${err.stack ? err.stack : err.message}`);
}
}
/**
* Returns default metadata, configured by environment variables
*
* @returns {JsonObject}
*/
function defaultMetadata() {
const { name, version } = pkg();
try {
return JSON.parse((process.env.LOGGER_METADATA || '{}')
.replace(RX_NAME, name)
.replace(RX_VERSION, version));
}
catch (err) {
throw new TypeError(`Logger: can not parse metadata: ${err.stack ? err.stack : err.message}`);
}
}
//# sourceMappingURL=env.js.map