UNPKG

1.22 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _range = _interopRequireDefault(require("lodash/range"));
9
10var _isNil = _interopRequireDefault(require("lodash/isNil"));
11
12var _utils = require("./utils");
13
14function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16const renderChildToJson = (child, options) => {
17 if ((0, _isNil.default)(child)) {
18 return null;
19 }
20
21 if (['tag', 'script'].includes(child.type)) {
22 return (0, _utils.applyMap)({
23 node: child,
24 type: child.name,
25 props: child.attribs,
26 children: (0, _utils.compact)(child.children.map(c => renderChildToJson(c, options))),
27 $$typeof: Symbol.for('react.test.json')
28 }, options);
29 } else if (child.type === 'text') {
30 return child.data;
31 }
32
33 return null;
34};
35
36const renderToJson = (wrapper, options = {}) => {
37 if ((0, _isNil.default)(wrapper) || wrapper.length === 0) {
38 return null;
39 }
40
41 return wrapper.length > 1 ? (0, _range.default)(0, wrapper.length).map(node => renderChildToJson(wrapper[node], options)) : renderChildToJson(wrapper[0], options);
42};
43
44var _default = renderToJson;
45exports.default = _default;
\No newline at end of file