'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 testSymbol = Symbol.for('react.test.json'); const getPropKeys = object => { const props = object.props; return props ? Object.keys(props) .filter(key => props[key] !== undefined) .sort() : []; }; const serialize = (exports.serialize = ( object, config, indentation, depth, refs, printer ) => ++depth > config.maxDepth ? (0, _markup.printElementAsLeaf)(object.type, config) : (0, _markup.printElement)( object.type, object.props ? (0, _markup.printProps)( getPropKeys(object), // Despite ternary expression, Flow 0.51.0 found incorrect error: // undefined is incompatible with the expected param type of Object // $FlowFixMe object.props, config, indentation + config.indent, depth, refs, printer ) : '', object.children ? (0, _markup.printChildren)( object.children, config, indentation + config.indent, depth, refs, printer ) : '', config, indentation )); const test = (exports.test = val => val && val.$$typeof === testSymbol); exports.default = {serialize: serialize, test: test};