1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 | Object.defineProperty(exports, "__esModule", {
|
5 | value: true
|
6 | });
|
7 | exports.logDOM = void 0;
|
8 | exports.prettyDOM = prettyDOM;
|
9 | exports.prettyFormat = void 0;
|
10 | var prettyFormat = _interopRequireWildcard(require("pretty-format"));
|
11 | exports.prettyFormat = prettyFormat;
|
12 | var _DOMElementFilter = _interopRequireDefault(require("./DOMElementFilter"));
|
13 | var _getUserCodeFrame = require("./get-user-code-frame");
|
14 | var _helpers = require("./helpers");
|
15 | var _config = require("./config");
|
16 | function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
17 | function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
18 | const shouldHighlight = () => {
|
19 | let colors;
|
20 | try {
|
21 | colors = JSON.parse(process?.env?.COLORS);
|
22 | } catch (e) {
|
23 |
|
24 |
|
25 | }
|
26 | if (typeof colors === 'boolean') {
|
27 |
|
28 | return colors;
|
29 | } else {
|
30 |
|
31 | return typeof process !== 'undefined' && process.versions !== undefined && process.versions.node !== undefined;
|
32 | }
|
33 | };
|
34 | const {
|
35 | DOMCollection
|
36 | } = prettyFormat.plugins;
|
37 |
|
38 |
|
39 | const ELEMENT_NODE = 1;
|
40 | const COMMENT_NODE = 8;
|
41 |
|
42 |
|
43 | function filterCommentsAndDefaultIgnoreTagsTags(value) {
|
44 | return value.nodeType !== COMMENT_NODE && (value.nodeType !== ELEMENT_NODE || !value.matches((0, _config.getConfig)().defaultIgnore));
|
45 | }
|
46 | function prettyDOM(dom, maxLength, options = {}) {
|
47 | if (!dom) {
|
48 | dom = (0, _helpers.getDocument)().body;
|
49 | }
|
50 | if (typeof maxLength !== 'number') {
|
51 | maxLength = typeof process !== 'undefined' && process.env.DEBUG_PRINT_LIMIT || 7000;
|
52 | }
|
53 | if (maxLength === 0) {
|
54 | return '';
|
55 | }
|
56 | if (dom.documentElement) {
|
57 | dom = dom.documentElement;
|
58 | }
|
59 | let domTypeName = typeof dom;
|
60 | if (domTypeName === 'object') {
|
61 | domTypeName = dom.constructor.name;
|
62 | } else {
|
63 |
|
64 | dom = {};
|
65 | }
|
66 | if (!('outerHTML' in dom)) {
|
67 | throw new TypeError(`Expected an element or document but got ${domTypeName}`);
|
68 | }
|
69 | const {
|
70 | filterNode = filterCommentsAndDefaultIgnoreTagsTags,
|
71 | ...prettyFormatOptions
|
72 | } = options;
|
73 | const debugContent = prettyFormat.format(dom, {
|
74 | plugins: [(0, _DOMElementFilter.default)(filterNode), DOMCollection],
|
75 | printFunctionName: false,
|
76 | highlight: shouldHighlight(),
|
77 | ...prettyFormatOptions
|
78 | });
|
79 | return maxLength !== undefined && dom.outerHTML.length > maxLength ? `${debugContent.slice(0, maxLength)}...` : debugContent;
|
80 | }
|
81 | const logDOM = (...args) => {
|
82 | const userCodeFrame = (0, _getUserCodeFrame.getUserCodeFrame)();
|
83 | if (userCodeFrame) {
|
84 | console.log(`${prettyDOM(...args)}\n\n${userCodeFrame}`);
|
85 | } else {
|
86 | console.log(prettyDOM(...args));
|
87 | }
|
88 | };
|
89 | exports.logDOM = logDOM; |
\ | No newline at end of file |