1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.default = exports.serialize = exports.test = void 0;
- var _collections = require('../collections');
- /**
- * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- /* eslint-disable local/ban-types-eventually */
- const SPACE = ' ';
- const OBJECT_NAMES = ['DOMStringMap', 'NamedNodeMap'];
- const ARRAY_REGEXP = /^(HTML\w*Collection|NodeList)$/;
- const testName = name =>
- OBJECT_NAMES.indexOf(name) !== -1 || ARRAY_REGEXP.test(name);
- const test = val =>
- val &&
- val.constructor &&
- !!val.constructor.name &&
- testName(val.constructor.name);
- exports.test = test;
- const isNamedNodeMap = collection =>
- collection.constructor.name === 'NamedNodeMap';
- const serialize = (collection, config, indentation, depth, refs, printer) => {
- const name = collection.constructor.name;
- if (++depth > config.maxDepth) {
- return '[' + name + ']';
- }
- return (
- (config.min ? '' : name + SPACE) +
- (OBJECT_NAMES.indexOf(name) !== -1
- ? '{' +
- (0, _collections.printObjectProperties)(
- isNamedNodeMap(collection)
- ? Array.from(collection).reduce((props, attribute) => {
- props[attribute.name] = attribute.value;
- return props;
- }, {})
- : {...collection},
- config,
- indentation,
- depth,
- refs,
- printer
- ) +
- '}'
- : '[' +
- (0, _collections.printListItems)(
- Array.from(collection),
- config,
- indentation,
- depth,
- refs,
- printer
- ) +
- ']')
- );
- };
- exports.serialize = serialize;
- const plugin = {
- serialize,
- test
- };
- var _default = plugin;
- exports.default = _default;
|