-first commit
This commit is contained in:
95
node_modules/ioredis/built/utils/debug.js
generated
vendored
Normal file
95
node_modules/ioredis/built/utils/debug.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.genRedactedString = exports.getStringValue = exports.MAX_ARGUMENT_LENGTH = void 0;
|
||||
const debug_1 = require("debug");
|
||||
const MAX_ARGUMENT_LENGTH = 200;
|
||||
exports.MAX_ARGUMENT_LENGTH = MAX_ARGUMENT_LENGTH;
|
||||
const NAMESPACE_PREFIX = "ioredis";
|
||||
/**
|
||||
* helper function that tried to get a string value for
|
||||
* arbitrary "debug" arg
|
||||
*/
|
||||
function getStringValue(v) {
|
||||
if (v === null) {
|
||||
return;
|
||||
}
|
||||
switch (typeof v) {
|
||||
case "boolean":
|
||||
return;
|
||||
case "number":
|
||||
return;
|
||||
case "object":
|
||||
if (Buffer.isBuffer(v)) {
|
||||
return v.toString("hex");
|
||||
}
|
||||
if (Array.isArray(v)) {
|
||||
return v.join(",");
|
||||
}
|
||||
try {
|
||||
return JSON.stringify(v);
|
||||
}
|
||||
catch (e) {
|
||||
return;
|
||||
}
|
||||
case "string":
|
||||
return v;
|
||||
}
|
||||
}
|
||||
exports.getStringValue = getStringValue;
|
||||
/**
|
||||
* helper function that redacts a string representation of a "debug" arg
|
||||
*/
|
||||
function genRedactedString(str, maxLen) {
|
||||
const { length } = str;
|
||||
return length <= maxLen
|
||||
? str
|
||||
: str.slice(0, maxLen) + ' ... <REDACTED full-length="' + length + '">';
|
||||
}
|
||||
exports.genRedactedString = genRedactedString;
|
||||
/**
|
||||
* a wrapper for the `debug` module, used to generate
|
||||
* "debug functions" that trim the values in their output
|
||||
*/
|
||||
function genDebugFunction(namespace) {
|
||||
const fn = (0, debug_1.default)(`${NAMESPACE_PREFIX}:${namespace}`);
|
||||
function wrappedDebug(...args) {
|
||||
if (!fn.enabled) {
|
||||
return; // no-op
|
||||
}
|
||||
// we skip the first arg because that is the message
|
||||
for (let i = 1; i < args.length; i++) {
|
||||
const str = getStringValue(args[i]);
|
||||
if (typeof str === "string" && str.length > MAX_ARGUMENT_LENGTH) {
|
||||
args[i] = genRedactedString(str, MAX_ARGUMENT_LENGTH);
|
||||
}
|
||||
}
|
||||
return fn.apply(null, args);
|
||||
}
|
||||
Object.defineProperties(wrappedDebug, {
|
||||
namespace: {
|
||||
get() {
|
||||
return fn.namespace;
|
||||
},
|
||||
},
|
||||
enabled: {
|
||||
get() {
|
||||
return fn.enabled;
|
||||
},
|
||||
},
|
||||
destroy: {
|
||||
get() {
|
||||
return fn.destroy;
|
||||
},
|
||||
},
|
||||
log: {
|
||||
get() {
|
||||
return fn.log;
|
||||
},
|
||||
set(l) {
|
||||
fn.log = l;
|
||||
},
|
||||
},
|
||||
});
|
||||
return wrappedDebug;
|
||||
}
|
||||
exports.default = genDebugFunction;
|
||||
Reference in New Issue
Block a user