1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*
- Copyright 2019 Google LLC
- Use of this source code is governed by an MIT-style
- license that can be found in the LICENSE file or at
- https://opensource.org/licenses/MIT.
- */
- import '../_version.js';
- const logger = (process.env.NODE_ENV === 'production' ? null : (() => {
- // Don't overwrite this value if it's already set.
- // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923
- if (!('__WB_DISABLE_DEV_LOGS' in self)) {
- self.__WB_DISABLE_DEV_LOGS = false;
- }
- let inGroup = false;
- const methodToColorMap = {
- debug: `#7f8c8d`,
- log: `#2ecc71`,
- warn: `#f39c12`,
- error: `#c0392b`,
- groupCollapsed: `#3498db`,
- groupEnd: null,
- };
- const print = function (method, args) {
- if (self.__WB_DISABLE_DEV_LOGS) {
- return;
- }
- if (method === 'groupCollapsed') {
- // Safari doesn't print all console.groupCollapsed() arguments:
- // https://bugs.webkit.org/show_bug.cgi?id=182754
- if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
- console[method](...args);
- return;
- }
- }
- const styles = [
- `background: ${methodToColorMap[method]}`,
- `border-radius: 0.5em`,
- `color: white`,
- `font-weight: bold`,
- `padding: 2px 0.5em`,
- ];
- // When in a group, the workbox prefix is not displayed.
- const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];
- console[method](...logPrefix, ...args);
- if (method === 'groupCollapsed') {
- inGroup = true;
- }
- if (method === 'groupEnd') {
- inGroup = false;
- }
- };
- const api = {};
- const loggerMethods = Object.keys(methodToColorMap);
- for (const key of loggerMethods) {
- const method = key;
- api[method] = (...args) => {
- print(method, args);
- };
- }
- return api;
- })());
- export { logger };
|