123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 'use strict';
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
- var format = require('./format');
- function fillExcept(info, fillExceptKeys, metadataKey) {
- var savedKeys = fillExceptKeys.reduce(function (acc, key) {
- acc[key] = info[key];
- delete info[key];
- return acc;
- }, {});
- var metadata = Object.keys(info).reduce(function (acc, key) {
- acc[key] = info[key];
- delete info[key];
- return acc;
- }, {});
- Object.assign(info, savedKeys, _defineProperty({}, metadataKey, metadata));
- return info;
- }
- function fillWith(info, fillWithKeys, metadataKey) {
- info[metadataKey] = fillWithKeys.reduce(function (acc, key) {
- acc[key] = info[key];
- delete info[key];
- return acc;
- }, {});
- return info;
- }
- /**
- * Adds in a "metadata" object to collect extraneous data, similar to the metadata
- * object in winston 2.x.
- */
- module.exports = format(function (info) {
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- var metadataKey = 'metadata';
- if (opts.key) {
- metadataKey = opts.key;
- }
- var fillExceptKeys = [];
- if (!opts.fillExcept && !opts.fillWith) {
- fillExceptKeys.push('level');
- fillExceptKeys.push('message');
- }
- if (opts.fillExcept) {
- fillExceptKeys = opts.fillExcept;
- }
- if (fillExceptKeys.length > 0) {
- return fillExcept(info, fillExceptKeys, metadataKey);
- }
- if (opts.fillWith) {
- return fillWith(info, opts.fillWith, metadataKey);
- }
- return info;
- });
|