expresscheckout-nodejs
Version:
Juspay's official expresscheckout-nodejs sdk
107 lines • 3.95 kB
JavaScript
/* 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