UNPKG

expresscheckout-nodejs

Version:

Juspay's official expresscheckout-nodejs sdk

107 lines 3.95 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import winston from 'winston'; import Juspay from './Juspay.js'; import * as Utils from './utils.js'; var JuspayLogger = /** @class */ (function () { function JuspayLogger(logger) { this.disableLogger = false; this.logger = logger; } JuspayLogger.prototype.info = function (message) { var _a; if (!this.disableLogger) { (_a = this.logger) === null || _a === void 0 ? void 0 : _a.info(message); } return this.logger; }; JuspayLogger.prototype.error = function (message) { var _a; if (!this.disableLogger) { (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(message); } return this.logger; }; return JuspayLogger; }()); var DefaultJuspayLogger = /** @class */ (function () { function DefaultJuspayLogger() { } DefaultJuspayLogger.getLibraryLoggerInterface = function () { return winston; }; /** * @param resource string to populate resource entity * @returns IJuspayLogger */ DefaultJuspayLogger.getLoggerInstance = function (resource) { if (Juspay.customLogger != undefined) { if (typeof Juspay.customLogger == 'function') { return Juspay.customLogger(resource); } return Juspay.customLogger; } var transports = new winston.transports.File({ filename: 'logs/juspay-sdk.log', format: winston.format.combine(winston.format.colorize()), maxsize: 52428800 }); var redactSecrets = winston.format(function (info) { return DefaultJuspayLogger.redactFields(info); }); var logger = winston.createLogger({ level: 'info', defaultMeta: { service: Juspay.pkg.name, resource: resource || Juspay.name }, format: winston.format.combine(redactSecrets(), winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.errors({ stack: true }), winston.format.splat(), winston.format.json()), exitOnError: false, transports: transports }); if (Utils.isDevEnvironment()) { logger.add(new winston.transports.Console({ format: winston.format.combine(winston.format.colorize(), winston.format.simple()) })); } return new JuspayLogger(logger); }; DefaultJuspayLogger.getSilentLogger = function () { var logger = new JuspayLogger(); logger.disableLogger = true; return logger; }; DefaultJuspayLogger.redactFields = function (data, secrets, redactedMessage) { if (secrets === void 0) { secrets = DefaultJuspayLogger.secretFields; } if (redactedMessage === void 0) { redactedMessage = '[REDACTED]'; } if (data == undefined) return; if (!Array.isArray(secrets)) throw new TypeError('secrets must be an array'); var dfs = function (data) { if (data == undefined) return undefined; if (typeof data == 'object') { Object.entries(data).forEach(function (_a) { var key = _a[0], value = _a[1]; if (secrets.includes(key)) { data[key] = redactedMessage; } dfs(value); }); } else if (Array.isArray(data)) { data.forEach(function (val) { dfs(val); }); } }; dfs(data); return data; }; DefaultJuspayLogger.secretFields = ['card_number', 'card_security_code']; return DefaultJuspayLogger; }()); export { DefaultJuspayLogger }; //# sourceMappingURL=JuspayLogger.js.map