Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / tsutils / util / convert-ast.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/tsutils/util/convert-ast.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/tsutils/util/convert-ast.js
new file mode 100644 (file)
index 0000000..bfdb028
--- /dev/null
@@ -0,0 +1,47 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const ts = require("typescript");
+const util_1 = require("./util");
+function convertAst(sourceFile) {
+    const wrapped = {
+        node: sourceFile,
+        parent: undefined,
+        kind: ts.SyntaxKind.SourceFile,
+        children: [],
+        next: undefined,
+        skip: undefined,
+    };
+    const flat = [];
+    let current = wrapped;
+    let previous = current;
+    ts.forEachChild(sourceFile, function wrap(node) {
+        flat.push(node);
+        const parent = current;
+        previous.next = current = {
+            node,
+            parent,
+            kind: node.kind,
+            children: [],
+            next: undefined,
+            skip: undefined,
+        };
+        if (previous !== parent)
+            setSkip(previous, current);
+        previous = current;
+        parent.children.push(current);
+        if (util_1.isNodeKind(node.kind))
+            ts.forEachChild(node, wrap);
+        current = parent;
+    });
+    return {
+        wrapped,
+        flat,
+    };
+}
+exports.convertAst = convertAst;
+function setSkip(node, skip) {
+    do {
+        node.skip = skip;
+        node = node.parent;
+    } while (node !== skip.parent);
+}