All files / js logger.js

0% Statements 0/8
0% Branches 0/6
0% Functions 0/4
0% Lines 0/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66                                                                                                                                   
/**
 * @module Logger
 * @category Utilities - Logging
 *
 * @description
 * Debug logger utility gated behind `?debug` URL parameter.
 * In production, only warnings and errors are emitted.
 * Enable debug output by appending `?debug` to the page URL.
 *
 * @example
 * // Enable debug logging:
 * // https://riksdagsmonitor.com/?debug
 *
 * import { logger } from './logger.js';
 * logger.debug('Loading CSV:', filename);
 * logger.error('Failed to load:', error);
 *
 * @author Hack23 AB
 * @license Apache-2.0
 */
 
const DEBUG = typeof window !== 'undefined' &&
  new URLSearchParams(window.location.search).has('debug');
 
/**
 * Structured logger with debug gating.
 * debug/info messages are suppressed unless ?debug is present in the URL.
 */
export const logger = {
  /**
   * Log a debug message (only visible with ?debug URL parameter).
   * @param {...*} args - Arguments to log
   */
  debug(...args) {
    if (DEBUG) {
      console.log('[DEBUG]', ...args);
    }
  },
 
  /**
   * Log an info message (only visible with ?debug URL parameter).
   * @param {...*} args - Arguments to log
   */
  info(...args) {
    if (DEBUG) {
      console.info('[INFO]', ...args);
    }
  },
 
  /**
   * Log a warning (always visible).
   * @param {...*} args - Arguments to log
   */
  warn(...args) {
    console.warn('[WARN]', ...args);
  },
 
  /**
   * Log an error (always visible).
   * @param {...*} args - Arguments to log
   */
  error(...args) {
    console.error('[ERROR]', ...args);
  }
};