UNPKG

expresscheckout-nodejs

Version:

Juspay's official expresscheckout-nodejs sdk

129 lines 5.03 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultJuspayLogger = void 0; /* eslint-disable @typescript-eslint/no-explicit-any */ const winston_1 = __importDefault(require("winston")); const Juspay_js_1 = __importDefault(require("./Juspay.js")); const Utils = __importStar(require("./utils.js")); class JuspayLogger { constructor(logger) { this.disableLogger = false; this.logger = logger; } info(message) { var _a; if (!this.disableLogger) { (_a = this.logger) === null || _a === void 0 ? void 0 : _a.info(message); } return this.logger; } error(message) { var _a; if (!this.disableLogger) { (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(message); } return this.logger; } } class DefaultJuspayLogger { static getLibraryLoggerInterface() { return winston_1.default; } /** * @param resource string to populate resource entity * @returns IJuspayLogger */ static getLoggerInstance(resource) { if (Juspay_js_1.default.customLogger != undefined) { if (typeof Juspay_js_1.default.customLogger == 'function') { return Juspay_js_1.default.customLogger(resource); } return Juspay_js_1.default.customLogger; } const transports = new winston_1.default.transports.File({ filename: 'logs/juspay-sdk.log', format: winston_1.default.format.combine(winston_1.default.format.colorize()), maxsize: 52428800, // 50 MB }); const redactSecrets = winston_1.default.format((info) => { return DefaultJuspayLogger.redactFields(info); }); const logger = winston_1.default.createLogger({ level: 'info', defaultMeta: { service: Juspay_js_1.default.pkg.name, resource: resource || Juspay_js_1.default.name, }, format: winston_1.default.format.combine(redactSecrets(), winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss', }), winston_1.default.format.errors({ stack: true }), winston_1.default.format.splat(), winston_1.default.format.json()), exitOnError: false, transports, }); if (Utils.isDevEnvironment()) { logger.add(new winston_1.default.transports.Console({ format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple()), })); } return new JuspayLogger(logger); } static getSilentLogger() { const logger = new JuspayLogger(); logger.disableLogger = true; return logger; } static redactFields(data, secrets = DefaultJuspayLogger.secretFields, redactedMessage = '[REDACTED]') { if (data == undefined) return; if (!Array.isArray(secrets)) throw new TypeError('secrets must be an array'); const dfs = (data) => { if (data == undefined) return undefined; if (typeof data == 'object') { Object.entries(data).forEach(([key, value]) => { if (secrets.includes(key)) { data[key] = redactedMessage; } dfs(value); }); } else if (Array.isArray(data)) { data.forEach((val) => { dfs(val); }); } }; dfs(data); return data; } } exports.DefaultJuspayLogger = DefaultJuspayLogger; DefaultJuspayLogger.secretFields = ['card_number', 'card_security_code']; //# sourceMappingURL=JuspayLogger.js.map