| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.test = exports.serialize = undefined;
- var _markup = require('./lib/markup');
- /**
- * Copyright (c) 2014-present, Facebook, Inc. 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.
- *
- *
- */
- const elementSymbol = Symbol.for('react.element');
- // Given element.props.children, or subtree during recursive traversal,
- // return flattened array of children.
- const getChildren = function (arg) {
- let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
- if (Array.isArray(arg)) {
- arg.forEach(item => {
- getChildren(item, children);
- });
- } else if (arg != null && arg !== false) {
- children.push(arg);
- }
- return children;
- };
- const getType = element => {
- if (typeof element.type === 'string') {
- return element.type;
- }
- if (typeof element.type === 'function') {
- return element.type.displayName || element.type.name || 'Unknown';
- }
- return 'UNDEFINED';
- };
- const serialize = exports.serialize = (element, config, indentation, depth, refs, printer) => ++depth > config.maxDepth ? (0, _markup.printElementAsLeaf)(getType(element), config) : (0, _markup.printElement)(getType(element), (0, _markup.printProps)(Object.keys(element.props).filter(key => key !== 'children').sort(), element.props, config, indentation + config.indent, depth, refs, printer), (0, _markup.printChildren)(getChildren(element.props.children), config, indentation + config.indent, depth, refs, printer), config, indentation);
- const test = exports.test = val => val && val.$$typeof === elementSymbol;
- exports.default = { serialize, test };
|