1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _range = _interopRequireDefault(require("lodash/range"));
|
9 |
|
10 | var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
11 |
|
12 | var _utils = require("./utils");
|
13 |
|
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15 |
|
16 | const 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 |
|
36 | const 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 |
|
44 | var _default = renderToJson;
|
45 | exports.default = _default; |
\ | No newline at end of file |