convertAST.cjs.map 8.63 KB
{"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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"}