Sha256: 1dba0d6c0db8917fde049ba8e8a84a2f4ceddb21eb05f94cc6e6e2e3b86dc82a

Contents?: true

Size: 1.89 KB

Versions: 32

Compression:

Stored size: 1.89 KB

Contents

'use strict';

Object.defineProperty(exports, '__esModule', {
  value: true
});
exports.test = exports.serialize = exports.default = 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;

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.25 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.24 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.23 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.22 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.21 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.20 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.19 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.18 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.17 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.16 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.15 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.14 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.13 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.12 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.11 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.10 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.9 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.8 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js
clapton-0.0.7 lib/clapton/javascripts/node_modules/pretty-format/build/plugins/DOMCollection.js