| |
| |
|
|
|
|
| const tty = require('tty');
|
| const util = require('util');
|
|
|
| |
| |
|
|
|
|
| exports.init = init;
|
| exports.log = log;
|
| exports.formatArgs = formatArgs;
|
| exports.save = save;
|
| exports.load = load;
|
| exports.useColors = useColors;
|
| exports.destroy = util.deprecate(
|
| () => {},
|
| 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'
|
| );
|
|
|
| |
| |
|
|
|
|
| exports.colors = [6, 2, 3, 4, 5, 1];
|
|
|
| try {
|
|
|
|
|
| const supportsColor = require('supports-color');
|
|
|
| if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
|
| exports.colors = [
|
| 20,
|
| 21,
|
| 26,
|
| 27,
|
| 32,
|
| 33,
|
| 38,
|
| 39,
|
| 40,
|
| 41,
|
| 42,
|
| 43,
|
| 44,
|
| 45,
|
| 56,
|
| 57,
|
| 62,
|
| 63,
|
| 68,
|
| 69,
|
| 74,
|
| 75,
|
| 76,
|
| 77,
|
| 78,
|
| 79,
|
| 80,
|
| 81,
|
| 92,
|
| 93,
|
| 98,
|
| 99,
|
| 112,
|
| 113,
|
| 128,
|
| 129,
|
| 134,
|
| 135,
|
| 148,
|
| 149,
|
| 160,
|
| 161,
|
| 162,
|
| 163,
|
| 164,
|
| 165,
|
| 166,
|
| 167,
|
| 168,
|
| 169,
|
| 170,
|
| 171,
|
| 172,
|
| 173,
|
| 178,
|
| 179,
|
| 184,
|
| 185,
|
| 196,
|
| 197,
|
| 198,
|
| 199,
|
| 200,
|
| 201,
|
| 202,
|
| 203,
|
| 204,
|
| 205,
|
| 206,
|
| 207,
|
| 208,
|
| 209,
|
| 214,
|
| 215,
|
| 220,
|
| 221
|
| ];
|
| }
|
| } catch (error) {
|
|
|
| }
|
|
|
| |
| |
| |
| |
|
|
|
|
| exports.inspectOpts = Object.keys(process.env).filter(key => {
|
| return /^debug_/i.test(key);
|
| }).reduce((obj, key) => {
|
|
|
| const prop = key
|
| .substring(6)
|
| .toLowerCase()
|
| .replace(/_([a-z])/g, (_, k) => {
|
| return k.toUpperCase();
|
| });
|
|
|
|
|
| let val = process.env[key];
|
| if (/^(yes|on|true|enabled)$/i.test(val)) {
|
| val = true;
|
| } else if (/^(no|off|false|disabled)$/i.test(val)) {
|
| val = false;
|
| } else if (val === 'null') {
|
| val = null;
|
| } else {
|
| val = Number(val);
|
| }
|
|
|
| obj[prop] = val;
|
| return obj;
|
| }, {});
|
|
|
| |
| |
|
|
|
|
| function useColors() {
|
| return 'colors' in exports.inspectOpts ?
|
| Boolean(exports.inspectOpts.colors) :
|
| tty.isatty(process.stderr.fd);
|
| }
|
|
|
| |
| |
| |
| |
|
|
|
|
| function formatArgs(args) {
|
| const {namespace: name, useColors} = this;
|
|
|
| if (useColors) {
|
| const c = this.color;
|
| const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
|
| const prefix = ` ${colorCode};1m${name} \u001B[0m`;
|
|
|
| args[0] = prefix + args[0].split('\n').join('\n' + prefix);
|
| args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m');
|
| } else {
|
| args[0] = getDate() + name + ' ' + args[0];
|
| }
|
| }
|
|
|
| function getDate() {
|
| if (exports.inspectOpts.hideDate) {
|
| return '';
|
| }
|
| return new Date().toISOString() + ' ';
|
| }
|
|
|
| |
| |
|
|
|
|
| function log(...args) {
|
| return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n');
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
| function save(namespaces) {
|
| if (namespaces) {
|
| process.env.DEBUG = namespaces;
|
| } else {
|
|
|
|
|
| delete process.env.DEBUG;
|
| }
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
|
|
| function load() {
|
| return process.env.DEBUG;
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
|
|
| function init(debug) {
|
| debug.inspectOpts = {};
|
|
|
| const keys = Object.keys(exports.inspectOpts);
|
| for (let i = 0; i < keys.length; i++) {
|
| debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
| }
|
| }
|
|
|
| module.exports = require('./common')(exports);
|
|
|
| const {formatters} = module.exports;
|
|
|
| |
| |
|
|
|
|
| formatters.o = function (v) {
|
| this.inspectOpts.colors = this.useColors;
|
| return util.inspect(v, this.inspectOpts)
|
| .split('\n')
|
| .map(str => str.trim())
|
| .join(' ');
|
| };
|
|
|
| |
| |
|
|
|
|
| formatters.O = function (v) {
|
| this.inspectOpts.colors = this.useColors;
|
| return util.inspect(v, this.inspectOpts);
|
| };
|
|
|