init
This commit is contained in:
50
node_modules/assertion-error-formatter/lib/helpers/canonicalize.js
generated
vendored
Normal file
50
node_modules/assertion-error-formatter/lib/helpers/canonicalize.js
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.default =
|
||||
|
||||
|
||||
canonicalize;var _has_property = require('./has_property');var _has_property2 = _interopRequireDefault(_has_property);var _type = require('./type');var _type2 = _interopRequireDefault(_type);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function canonicalize(value, stack) {
|
||||
stack = stack || [];
|
||||
|
||||
function withStack(fn) {
|
||||
stack.push(value);
|
||||
var result = fn();
|
||||
stack.pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
if (stack.indexOf(value) !== -1) {
|
||||
return '[Circular]';
|
||||
}
|
||||
|
||||
switch ((0, _type2.default)(value)) {
|
||||
case 'array':
|
||||
return withStack(function () {
|
||||
return value.map(function (item) {
|
||||
return canonicalize(item, stack);
|
||||
});
|
||||
});
|
||||
case 'function':
|
||||
if (!(0, _has_property2.default)(value)) {
|
||||
return '[Function]';
|
||||
}
|
||||
/* falls through */
|
||||
case 'object':
|
||||
return withStack(function () {
|
||||
var canonicalizedObj = {};
|
||||
Object.keys(value).sort().map(function (key) {
|
||||
canonicalizedObj[key] = canonicalize(value[key], stack);
|
||||
});
|
||||
return canonicalizedObj;
|
||||
});
|
||||
case 'boolean':
|
||||
case 'buffer':
|
||||
case 'date':
|
||||
case 'null':
|
||||
case 'number':
|
||||
case 'regexp':
|
||||
case 'symbol':
|
||||
case 'undefined':
|
||||
return value;
|
||||
default:
|
||||
return value.toString();}
|
||||
|
||||
}
|
Reference in New Issue
Block a user