# All files / lib/winston common.js

85.71% Statements 12/14
100% Branches 0/0
66.67% Functions 4/6
85.71% Lines 12/14

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

    7x

    7x

    49x
    6x

    21x
    3x

    14x
    35x

    7x

    14x
    28x
    28x

     /**
     * common.js: Internal helper and utility functions for winston.
     *
     * (C) 2010 Charlie Robbins
     * MIT LICENCE
     */

    'use strict';

    const { format } = require('util');

    /**
     * Set of simple deprecation notices and a way to expose them for a set of
     * properties.
     * @type {Object}
     * @private
     */
    exports.warn = {
      deprecated(prop) {
        return () => {
          throw new Error(format('{ %s } was removed in winston@3.0.0.', prop));
        };
      },
      useFormat(prop) {
        return () => {
          throw new Error([
            format('{ %s } was removed in winston@3.0.0.', prop),
            'Use a custom winston.format = winston.format(function) instead.'
          ].join('\n'));
        };
      },
      forFunctions(obj, type, props) {
        props.forEach(prop => {
          obj[prop] = exports.warn[type](prop);
        });
      },
      moved(obj, movedTo, prop) {
        function movedNotice() {
          return () => {
            throw new Error([
              format('winston.%s was moved in winston@3.0.0.', prop),
              format('Use a winston.%s instead.', movedTo)
            ].join('\n'));
          };
        }

        Object.defineProperty(obj, prop, {
          get: movedNotice,
          set: movedNotice
        });
      },
      forProperties(obj, type, props) {
        props.forEach(prop => {
          const notice = exports.warn[type](prop);
          Object.defineProperty(obj, prop, {
            get: notice,
            set: notice
          });
        });
      }
    };