123456789101112131415161718192021222324252627282930313233343536373839 |
- 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)
- );
- };
|