Spaces:
Running
Running
function requireUtil() { | |
try { | |
// eslint-disable-next-line no-restricted-modules | |
return require("util"); | |
} catch (e) { | |
return null; | |
} | |
} | |
// for v10.12.0+ | |
function lookupCustomInspectSymbol() { | |
return Symbol.for("nodejs.util.inspect.custom"); | |
} | |
// for older node environments | |
function tryReadingCustomSymbolFromUtilInspect(options) { | |
const _requireUtil = options.requireUtil || requireUtil; | |
const util = _requireUtil(); | |
return util ? util.inspect.custom : null; | |
} | |
exports.getUtilInspect = function getUtilInspect(fallback, options = {}) { | |
const _requireUtil = options.requireUtil || requireUtil; | |
const util = _requireUtil(); | |
return function inspect(value, showHidden, depth) { | |
return util ? util.inspect(value, showHidden, depth) : fallback(value); | |
}; | |
}; | |
exports.getCustomInspectSymbol = function getCustomInspectSymbol(options = {}) { | |
const _lookupCustomInspectSymbol = | |
options.lookupCustomInspectSymbol || lookupCustomInspectSymbol; | |
// get custom inspect symbol for node environments | |
return ( | |
_lookupCustomInspectSymbol() || | |
tryReadingCustomSymbolFromUtilInspect(options) | |
); | |
}; | |