react-workbox
Version:
Manage installation and activation of service worker
49 lines (48 loc) • 1.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const name = 'react-workbox';
var LoggerMethods;
(function (LoggerMethods) {
LoggerMethods["debug"] = "debug";
LoggerMethods["log"] = "log";
LoggerMethods["warn"] = "warn";
LoggerMethods["error"] = "error";
LoggerMethods["groupCollapsed"] = "groupCollapsed";
LoggerMethods["groupEnd"] = "groupEnd";
})(LoggerMethods || (LoggerMethods = {}));
const methodToColorMap = {
[LoggerMethods.debug]: '#7f8c8d',
[LoggerMethods.log]: '#2ecc71',
[LoggerMethods.warn]: '#f39c12',
[LoggerMethods.error]: '#c0392b',
[LoggerMethods.groupCollapsed]: '#3498db',
[LoggerMethods.groupEnd]: null, // No colored prefix on groupEnd
};
let inGroup = false;
const print = function (method, args) {
const styles = [
`background: ${methodToColorMap[method]}`,
`border-radius: 0.5em`,
`color: white`,
`font-weight: bold`,
`padding: 2px 0.5em`,
];
// When in a group, the prefix is not displayed.
const logPrefix = inGroup ? [] : [`%c${name}`, styles.join(';')];
// eslint-disable-next-line no-console
console[method](...logPrefix, ...args);
if (method === 'groupCollapsed') {
inGroup = true;
}
if (method === 'groupEnd') {
inGroup = false;
}
};
const logger = Object.fromEntries(Object.values(LoggerMethods).map((method) => [
method,
(...args) => {
if (process.env.NODE_ENV !== 'production')
print(method, args);
},
]));
exports.default = logger;
;