UNPKG

backport

Version:

A CLI tool that automates the process of backporting commits

55 lines 1.81 kB
import winston, { format } from 'winston'; import { getLogfilePath } from './env.js'; export let logger = winston.createLogger({ transports: [ fileTransport({ logLevel: 'info' }), fileTransport({ logLevel: 'debug' }), ], }); let _githubToken; let _interactive; export function initLogger({ interactive, githubToken, logFilePath, }) { _githubToken = githubToken; _interactive = interactive; logger = winston.createLogger({ format: format.combine(format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), // Format the metadata object format.metadata({ fillExcept: ['message', 'level', 'timestamp', 'label'], })), transports: logFilePath ? [fileTransport({ logLevel: 'debug', logFilePath })] : [ fileTransport({ logLevel: 'info' }), fileTransport({ logLevel: 'debug' }), ], }); return logger; } function fileTransport({ logFilePath, logLevel, }) { return new winston.transports.File({ filename: getLogfilePath({ logFilePath, logLevel }), level: logLevel, format: format.json({ replacer: githubTokenReplacer }), }); } // wrapper around console.log export function consoleLog(message) { if (_interactive) { console.log(redactGithubToken(message)); } } export function setGithubToken(githubToken) { _githubToken = githubToken; } export function redactGithubToken(str) { // `redactGithubToken` might be called before github token is set if (_githubToken) { return str.replaceAll(_githubToken, '<REDACTED>'); } return str; } export function githubTokenReplacer(key, value) { return typeof value === 'string' ? redactGithubToken(value) : value; } //# sourceMappingURL=logger.js.map