pretty-format
Version:
Stringify any JavaScript value.
65 lines (46 loc) • 2.63 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();
const IMMUTABLE_NAMESPACE = 'Immutable.'; /**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*
*/const SPACE = ' ';const addKey = (isMap, key) => isMap ? key + ': ' : '';const addFinalEdgeSpacing = (length, edgeSpacing) => length !== 0 ? edgeSpacing : '';const printImmutable = (
val,
print,
indent,
opts,
colors,
immutableDataStructureName,
isMap) =>
{var _ref =
isMap ? ['{', '}'] : ['[', ']'],_ref2 = _slicedToArray(_ref, 2);const openTag = _ref2[0],closeTag = _ref2[1];
const fullStructureName = val._name || immutableDataStructureName;
let result =
IMMUTABLE_NAMESPACE +
fullStructureName +
SPACE +
openTag +
opts.edgeSpacing;
const immutableArray = [];
const pushToImmutableArray = (item, key) => {
immutableArray.push(indent(addKey(isMap, key) + print(item)));
};
if (Array.isArray(val._keys)) {
// if we have a record, we can not iterate on it directly
val._keys.forEach(key => pushToImmutableArray(val.get(key), key));
} else {
val.forEach((item, key) => pushToImmutableArray(item, key));
}
result += immutableArray.join(',' + opts.spacing);
if (!opts.min && immutableArray.length !== 0) {
result += ',';
}
return (
result +
addFinalEdgeSpacing(immutableArray.length, opts.edgeSpacing) +
closeTag);
};exports.default =
printImmutable;