convertAST.cjs.map 8.6 KB

1
  1. {"version":3,"names":["ESLINT_VERSION","require","it","children","Array","isArray","traverse","node","visitorKeys","visitor","type","keys","key","child","enter","exit","convertNodesVisitor","innerComments","trailingComments","leadingComments","extra","loc","identifierName","typeAnnotation","bound","id","name","isType","i","quasis","length","q","range","tail","start","column","end","convertNodes","ast","convertProgramNode","sourceType","program","body","errors","comments","lastComment","tokens","lastToken","line","module","exports","convertAST"],"sources":["../../src/convert/convertAST.cjs"],"sourcesContent":["const ESLINT_VERSION = require(\"../utils/eslint-version.cjs\");\n\nfunction* it(children) {\n if (Array.isArray(children)) yield* children;\n else yield children;\n}\n\nfunction traverse(node, visitorKeys, visitor) {\n const { type } = node;\n if (!type) return;\n const keys = visitorKeys[type];\n if (!keys) return;\n\n for (const key of keys) {\n for (const child of it(node[key])) {\n if (child && typeof child === \"object\") {\n visitor.enter(child);\n traverse(child, visitorKeys, visitor);\n visitor.exit(child);\n }\n }\n }\n}\n\nconst convertNodesVisitor = {\n enter(node) {\n if (node.innerComments) {\n delete node.innerComments;\n }\n\n if (node.trailingComments) {\n delete node.trailingComments;\n }\n\n if (node.leadingComments) {\n delete node.leadingComments;\n }\n },\n exit(node) {\n // Used internally by @babel/parser.\n if (node.extra) {\n delete node.extra;\n }\n\n if (node.loc.identifierName) {\n delete node.loc.identifierName;\n }\n\n if (node.type === \"TypeParameter\") {\n node.type = \"Identifier\";\n node.typeAnnotation = node.bound;\n delete node.bound;\n }\n\n // flow: prevent \"no-undef\"\n // for \"Component\" in: \"let x: React.Component\"\n if (node.type === \"QualifiedTypeIdentifier\") {\n delete node.id;\n }\n // for \"b\" in: \"var a: { b: Foo }\"\n if (node.type === \"ObjectTypeProperty\") {\n delete node.key;\n }\n // for \"indexer\" in: \"var a: {[indexer: string]: number}\"\n if (node.type === \"ObjectTypeIndexer\") {\n delete node.id;\n }\n // for \"param\" in: \"var a: { func(param: Foo): Bar };\"\n if (node.type === \"FunctionTypeParam\") {\n delete node.name;\n }\n\n // modules\n if (node.type === \"ImportDeclaration\") {\n delete node.isType;\n }\n\n // template string range fixes\n if (node.type === \"TemplateLiteral\") {\n for (let i = 0; i < node.quasis.length; i++) {\n const q = node.quasis[i];\n q.range[0] -= 1;\n if (q.tail) {\n q.range[1] += 1;\n } else {\n q.range[1] += 2;\n }\n q.loc.start.column -= 1;\n if (q.tail) {\n q.loc.end.column += 1;\n } else {\n q.loc.end.column += 2;\n }\n\n if (ESLINT_VERSION >= 8) {\n q.start -= 1;\n if (q.tail) {\n q.end += 1;\n } else {\n q.end += 2;\n }\n }\n }\n }\n },\n};\n\nfunction convertNodes(ast, visitorKeys) {\n traverse(ast, visitorKeys, convertNodesVisitor);\n}\n\nfunction convertProgramNode(ast) {\n ast.type = \"Program\";\n ast.sourceType = ast.program.sourceType;\n ast.body = ast.program.body;\n delete ast.program;\n delete ast.errors;\n\n if (ast.comments.length) {\n const lastComment = ast.comments[ast.comments.length - 1];\n\n if (ast.tokens.length) {\n const lastToken = ast.tokens[ast.tokens.length - 1];\n\n if (lastComment.end > lastToken.end) {\n // If there is a comment after the last token, the program ends at the\n // last token and not the comment\n ast.range[1] = lastToken.end;\n ast.loc.end.line = lastToken.loc.end.line;\n ast.loc.end.column = lastToken.loc.end.column;\n\n if (ESLINT_VERSION >= 8) {\n ast.end = lastToken.end;\n }\n }\n }\n } else {\n if (!ast.tokens.length) {\n ast.loc.start.line = 1;\n ast.loc.end.line = 1;\n }\n }\n\n if (ast.body && ast.body.length > 0) {\n ast.loc.start.line = ast.body[0].loc.start.line;\n ast.range[0] = ast.body[0].start;\n\n if (ESLINT_VERSION >= 8) {\n ast.start = ast.body[0].start;\n }\n }\n}\n\nmodule.exports = function convertAST(ast, visitorKeys) {\n convertNodes(ast, visitorKeys);\n convertProgramNode(ast);\n};\n"],"mappings":"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"}