init
This commit is contained in:
79
node_modules/assertion-error-formatter/lib/helpers/json_stringify.js
generated
vendored
Normal file
79
node_modules/assertion-error-formatter/lib/helpers/json_stringify.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.default =
|
||||
|
||||
|
||||
|
||||
jsonStringify;var _repeatString = require('repeat-string');var _repeatString2 = _interopRequireDefault(_repeatString);var _type = require('./type');var _type2 = _interopRequireDefault(_type);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function jsonStringify(object, depth) {
|
||||
depth = depth || 1;
|
||||
|
||||
switch ((0, _type2.default)(object)) {
|
||||
case 'boolean':
|
||||
case 'regexp':
|
||||
case 'symbol':
|
||||
return object.toString();
|
||||
case 'null':
|
||||
case 'undefined':
|
||||
return '[' + object + ']';
|
||||
case 'array':
|
||||
case 'object':
|
||||
return jsonStringifyProperties(object, depth);
|
||||
case 'number':
|
||||
if (object === 0 && 1 / object === -Infinity) {
|
||||
return '-0';
|
||||
} else {
|
||||
return object.toString();
|
||||
}
|
||||
case 'date':
|
||||
return jsonStringifyDate(object);
|
||||
case 'buffer':
|
||||
return jsonStringifyBuffer(object, depth);
|
||||
default:
|
||||
if (object === '[Function]' || object === '[Circular]') {
|
||||
return object;
|
||||
} else {
|
||||
return JSON.stringify(object); // string
|
||||
}}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function jsonStringifyBuffer(object, depth) {var _object$toJSON =
|
||||
object.toJSON(),data = _object$toJSON.data;
|
||||
return '[Buffer: ' + jsonStringify(data, depth) + ']';
|
||||
}
|
||||
|
||||
|
||||
function jsonStringifyDate(object) {
|
||||
var str = void 0;
|
||||
if (isNaN(object.getTime())) {
|
||||
str = object.toString();
|
||||
} else {
|
||||
str = object.toISOString();
|
||||
}
|
||||
return '[Date: ' + str + ']';
|
||||
}
|
||||
|
||||
|
||||
function jsonStringifyProperties(object, depth) {
|
||||
var space = 2 * depth;
|
||||
var start = (0, _type2.default)(object) === 'array' ? '[' : '{';
|
||||
var end = (0, _type2.default)(object) === 'array' ? ']' : '}';
|
||||
var length = typeof object.length === 'number' ? object.length : Object.keys(object).length;
|
||||
var addedProperties = 0;
|
||||
var str = start;
|
||||
|
||||
for (var prop in object) {
|
||||
if (Object.prototype.hasOwnProperty.call(object, prop)) {
|
||||
addedProperties += 1;
|
||||
str += '\n' + (0, _repeatString2.default)(' ', space) + (
|
||||
(0, _type2.default)(object) === 'array' ? '' : '"' + prop + '": ') +
|
||||
jsonStringify(object[prop], depth + 1) + (
|
||||
addedProperties === length ? '' : ',');
|
||||
}
|
||||
}
|
||||
|
||||
if (str.length !== 1) {
|
||||
str += '\n' + (0, _repeatString2.default)(' ', space - 2);
|
||||
}
|
||||
|
||||
return str + end;
|
||||
}
|
Reference in New Issue
Block a user