mirror of
https://github.com/hanzoai/babel.git
synced 2026-10-30 14:46:06 +00:00
12 lines
44 KiB
JSON
12 lines
44 KiB
JSON
{
|
||
"version": 3,
|
||
"names": [],
|
||
"sources": [
|
||
"fixtures/sourcemaps/real-world-babel-file2/input.ts"
|
||
],
|
||
"sourcesContent": [
|
||
"// From packages\\babel-generator\\src\\printer.ts\n\nimport Buffer from \"./buffer\";\nimport type { Loc } from \"./buffer\";\nimport * as n from \"./node\";\nimport type * as t from \"@babel/types\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport * as generatorFunctions from \"./generators\";\nimport type SourceMap from \"./source-map\";\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst NON_DECIMAL_LITERAL = /^0[box]/;\nconst PURE_ANNOTATION_RE = /^\\s*[@#]__PURE__\\s*$/;\n\nconst { needsParens, needsWhitespaceAfter, needsWhitespaceBefore } = n;\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n recordAndTupleSyntaxType: RecordAndTuplePluginOptions[\"syntaxType\"];\n jsescOption: jsescOptions;\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n}\n\ninterface PrintSequenceOptions extends Partial<AddNewlinesOptions> {\n statement?: boolean;\n indent?: boolean;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer) => void;\n statement?: boolean;\n indent?: boolean;\n}\n\ntype PrintJoinOptions = PrintListOptions &\n PrintSequenceOptions & {\n iterator?: (node: t.Node, index: number) => void;\n };\nclass Printer {\n constructor(format: Format, map: SourceMap) {\n this.format = format;\n this._buf = new Buffer(map);\n\n this._indentChar = format.indent.style.charCodeAt(0);\n this._indentRepeat = format.indent.style.length;\n }\n\n declare format: Format;\n inForStatementInitCounter: number = 0;\n\n declare _buf: Buffer;\n _printStack: Array<t.Node> = [];\n _indent: number = 0;\n _indentChar: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _parenPushNewlineState: { printed: boolean } | null = null;\n _noLineTerminator: boolean = false;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _endsWithInteger = false;\n _endsWithWord = false;\n\n generate(ast: t.Node) {\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent--;\n }\n\n /**\n * Add a semicolon to the buffer.\n */\n\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.token(\"}\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this.format.compact) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string): void {\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (str.charCodeAt(0) === charCodes.slash && this.endsWith(charCodes.slash))\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, false);\n\n this._endsWithWord = true;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string): void {\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(+str) &&\n !NON_DECIMAL_LITERAL.test(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n */\n\n token(str: string, maybeNewline = false): void {\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark && str === \"--\") ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (strFirst === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, maybeNewline);\n }\n\n tokenChar(char: number): void {\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n const lastChar = this.getLastChar();\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (char === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._appendChar(char);\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n */\n\n newline(i: number = 1): void {\n if (this.format.retainLines || this.format.compact) return;\n\n if (this.format.concise) {\n this.space();\n return;\n }\n\n const charBeforeNewline = this.endsWithCharAndNewline();\n // never allow more than two lines\n if (charBeforeNewline === charCodes.lineFeed) return;\n\n if (\n charBeforeNewline === charCodes.leftCurlyBrace ||\n charBeforeNewline === charCodes.colon\n ) {\n i--;\n }\n if (i <= 0) return;\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar() === char;\n }\n\n getLastChar(): number {\n return this._buf.getLastChar();\n }\n\n endsWithCharAndNewline(): number {\n return this._buf.endsWithCharAndNewline();\n }\n\n removeTrailingNewline(): void {\n this._buf.removeTrailingNewline();\n }\n\n exactSource(loc: Loc | undefined, cb: () => void) {\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n lineOffset: number,\n columnOffset: number,\n ): void {\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, lineOffset, columnOffset);\n }\n\n withSource(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n cb: () => void,\n ): void {\n this._catchUp(prop, loc);\n\n this._buf.withSource(prop, loc, cb);\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n this._queue(charCodes.lineFeed);\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeAddParen(str);\n this._maybeIndent(str.charCodeAt(0));\n\n this._buf.append(str, maybeNewline);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _appendChar(char: number): void {\n this._maybeAddParenChar(char);\n this._maybeIndent(char);\n\n this._buf.appendChar(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _queue(char: number) {\n this._maybeAddParenChar(char);\n this._maybeIndent(char);\n\n this._buf.queue(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _maybeIndent(firstChar: number): void {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n this._buf.queueIndentation(this._indentChar, this._getIndent());\n }\n }\n\n _maybeAddParenChar(char: number): void {\n // see startTerminatorless() instance method\n const parenPushNewlineState = this._parenPushNewlineState;\n if (!parenPushNewlineState) return;\n\n // This function does two things:\n // - If needed, prints a parenthesis\n // - If the currently printed string removes the need for the paren,\n // it resets the _parenPushNewlineState field.\n // Almost everything removes the need for a paren, except for\n // comments and whitespaces.\n\n if (char === charCodes.space) {\n // Whitespaces only, the parentheses might still be needed.\n return;\n }\n\n // Check for newline or comment.\n if (char !== charCodes.lineFeed) {\n this._parenPushNewlineState = null;\n return;\n }\n\n this.token(\"(\");\n this.indent();\n parenPushNewlineState.printed = true;\n }\n\n _maybeAddParen(str: string): void {\n // see startTerminatorless() instance method\n const parenPushNewlineState = this._parenPushNewlineState;\n if (!parenPushNewlineState) return;\n\n // This function does two things:\n // - If needed, prints a parenthesis\n // - If the currently printed string removes the need for the paren,\n // it resets the _parenPushNewlineState field.\n // Almost everything removes the need for a paren, except for\n // comments and whitespaces.\n\n const len = str.length;\n\n let i;\n for (i = 0; i < len && str.charCodeAt(i) === charCodes.space; i++) continue;\n if (i === len) {\n // Whitespaces only, the parentheses might still be needed.\n return;\n }\n\n // Check for newline or comment.\n const cha = str.charCodeAt(i);\n if (cha !== charCodes.lineFeed) {\n if (\n // This is not a comment (it doesn't start with /)\n cha !== charCodes.slash ||\n // This is not a comment (it's a / operator)\n i + 1 === len\n ) {\n // After a normal token, the parentheses aren't needed anymore\n this._parenPushNewlineState = null;\n return;\n }\n\n const chaPost = str.charCodeAt(i + 1);\n\n if (chaPost === charCodes.asterisk) {\n // This is a block comment\n\n if (PURE_ANNOTATION_RE.test(str.slice(i + 2, len - 2))) {\n // We avoid printing newlines after #__PURE__ comments (we treat\n // then as unary operators), but we must keep the old\n // parenPushNewlineState because, if a newline was forbidden, it is\n // still forbidden after the comment.\n return;\n }\n\n // NOTE: code flow continues from here to after these if/elses\n } else if (chaPost !== charCodes.slash) {\n // This is neither a block comment, nor a line comment.\n // After a normal token, the parentheses aren't needed anymore\n this._parenPushNewlineState = null;\n return;\n }\n }\n\n this.token(\"(\");\n this.indent();\n parenPushNewlineState.printed = true;\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const pos = loc ? loc[prop] : null;\n if (pos?.line != null) {\n const count = pos.line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n }\n\n /**\n * Get the current indent.\n */\n\n _getIndent(): number {\n return this._indentRepeat * this._indent;\n }\n\n printTerminatorless(node: t.Node, parent: t.Node, isLabel: boolean) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n if (isLabel) {\n this._noLineTerminator = true;\n this.print(node, parent);\n this._noLineTerminator = false;\n } else {\n const terminatorState = {\n printed: false,\n };\n this._parenPushNewlineState = terminatorState;\n this.print(node, parent);\n /**\n * Print an ending parentheses if a starting one has been printed.\n */\n if (terminatorState.printed) {\n this.dedent();\n this.newline();\n this.token(\")\");\n }\n }\n }\n\n print(node: t.Node | null, parent?: t.Node, noLineTerminator?: boolean) {\n if (!node) return;\n\n const nodeType = node.type;\n const format = this.format;\n\n const oldConcise = format.concise;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n format.concise = true;\n }\n\n const printMethod =\n this[\n nodeType as Exclude<\n t.Node[\"type\"],\n // removed\n | \"Noop\"\n // renamed\n | t.DeprecatedAliases[\"type\"]\n >\n ];\n if (printMethod === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n nodeType,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n this._printStack.push(node);\n\n const oldInAux = this._insideAux;\n this._insideAux = node.loc == undefined;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n\n let shouldPrintParens: boolean;\n if (\n format.retainFunctionParens &&\n nodeType === \"FunctionExpression\" &&\n node.extra &&\n node.extra.parenthesized\n ) {\n shouldPrintParens = true;\n } else {\n shouldPrintParens = needsParens(node, parent, this._printStack);\n }\n if (shouldPrintParens) this.token(\"(\");\n\n this._printLeadingComments(node);\n\n const loc = nodeType === \"Program\" || nodeType === \"File\" ? null : node.loc;\n\n this.exactSource(loc, printMethod.bind(this, node, parent));\n\n if (noLineTerminator && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node);\n this._noLineTerminator = false;\n } else {\n this._printTrailingComments(node);\n }\n\n if (shouldPrintParens) this.token(\")\");\n\n // end\n this._printStack.pop();\n\n format.concise = oldConcise;\n this._insideAux = oldInAux;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment({\n type: \"CommentBlock\",\n value: comment,\n });\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment({\n type: \"CommentBlock\",\n value: comment,\n });\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra &&\n extra.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: Array<t.Node> | undefined | null,\n parent: t.Node,\n opts: PrintJoinOptions = {},\n ) {\n if (!nodes?.length) return;\n\n if (opts.indent) this.indent();\n\n const newlineOpts: AddNewlinesOptions = {\n addNewlines: opts.addNewlines,\n };\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n if (opts.statement) this._printNewline(true, node, parent, newlineOpts);\n\n this.print(node, parent);\n\n if (opts.iterator) {\n opts.iterator(node, i);\n }\n\n if (opts.separator && i < len - 1) {\n opts.separator.call(this);\n }\n\n if (opts.statement) this._printNewline(false, node, parent, newlineOpts);\n }\n\n if (opts.indent) this.dedent();\n }\n\n printAndIndentOnComments(node: t.Node, parent: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node, parent);\n if (indent) this.dedent();\n }\n\n printBlock(parent: Extract<t.Node, { body: t.Statement }>) {\n const node = parent.body;\n\n if (node.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(node, parent);\n }\n\n _printTrailingComments(node: t.Node) {\n this._printComments(this._getComments(false, node));\n }\n\n _printLeadingComments(node: t.Node) {\n this._printComments(\n this._getComments(true, node),\n // Don't add leading/trailing new lines to #__PURE__ annotations\n true,\n );\n }\n\n printInnerComments(node: t.Node, indent = true) {\n if (!node.innerComments?.length) return;\n if (indent) this.indent();\n this._printComments(node.innerComments);\n if (indent) this.dedent();\n }\n\n printSequence(\n nodes: t.Node[],\n parent: t.Node,\n opts: PrintSequenceOptions = {},\n ) {\n opts.statement = true;\n return this.printJoin(nodes, parent, opts);\n }\n\n printList(items: t.Node[], parent: t.Node, opts: PrintListOptions = {}) {\n if (opts.separator == null) {\n opts.separator = commaSeparator;\n }\n\n return this.printJoin(items, parent, opts);\n }\n\n _printNewline(\n leading: boolean,\n node: t.Node,\n parent: t.Node,\n opts: AddNewlinesOptions,\n ) {\n // Fast path since 'this.newline' does nothing when not tracking lines.\n if (this.format.retainLines || this.format.compact) return;\n\n // Fast path for concise since 'this.newline' just inserts a space when\n // concise formatting is in use.\n if (this.format.concise) {\n this.space();\n return;\n }\n\n let lines = 0;\n // don't add newlines at the beginning of the file\n if (this._buf.hasContent()) {\n if (!leading) lines++; // always include at least a single line after\n if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\n\n const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter;\n if (needs(node, parent)) lines++;\n }\n\n this.newline(Math.min(2, lines));\n }\n\n _getComments(leading: boolean, node: t.Node) {\n // Note, we use a boolean flag here instead of passing in the attribute name as it is faster\n // because this is called extremely frequently.\n return (\n (node && (leading ? node.leadingComments : node.trailingComments)) || null\n );\n }\n\n _printComment(comment: t.Comment, skipNewLines?: boolean) {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return;\n\n if (this._printedComments.has(comment)) return;\n\n if (!this.format.shouldPrintComment(comment.value)) return;\n\n this._printedComments.add(comment);\n\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment && !skipNewLines && !this._noLineTerminator;\n\n if (printNewLines && this._buf.hasContent()) this.newline(1);\n\n const lastCharCode = this.getLastChar();\n if (\n lastCharCode !== charCodes.leftSquareBracket &&\n lastCharCode !== charCodes.leftCurlyBrace\n ) {\n this.space();\n }\n\n let val;\n let maybeNewline = false;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n\n const indentSize = Math.max(\n this._getIndent(),\n this.format.retainLines ? 0 : this._buf.getCurrentColumn(),\n );\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n\n maybeNewline = true;\n }\n } else if (!this._noLineTerminator) {\n val = `//${comment.value}\\n`;\n maybeNewline = true;\n } else {\n val = `/*${comment.value}*/`;\n }\n\n // Avoid creating //* comments\n if (this.endsWith(charCodes.slash)) this._space();\n\n this.withSource(\n \"start\",\n comment.loc,\n this._append.bind(this, val, maybeNewline),\n );\n\n if (printNewLines) this.newline(1);\n }\n\n _printComments(\n comments?: readonly t.Comment[],\n inlinePureAnnotation?: boolean,\n ) {\n if (!comments?.length) return;\n\n if (\n inlinePureAnnotation &&\n comments.length === 1 &&\n PURE_ANNOTATION_RE.test(comments[0].value)\n ) {\n this._printComment(\n comments[0],\n // Keep newlines if the comment marks a standalone call\n this._buf.hasContent() && !this.endsWith(charCodes.lineFeed),\n );\n } else {\n for (const comment of comments) {\n this._printComment(comment);\n }\n }\n }\n // todo(flow->ts): was Node\n printAssertions(node: Extract<t.Node, { assertions?: t.ImportAttribute[] }>) {\n if (node.assertions?.length) {\n this.space();\n this.word(\"assert\");\n this.space();\n this.token(\"{\");\n this.space();\n this.printList(node.assertions, node);\n this.space();\n this.token(\"}\");\n }\n }\n}\n\n// Expose the node type functions and helpers on the prototype for easy usage.\nObject.assign(Printer.prototype, generatorFunctions);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 has Noop print method\n Printer.prototype.Noop = function Noop(this: Printer) {};\n}\n\ntype GeneratorFunctions = typeof generatorFunctions;\ninterface Printer extends GeneratorFunctions {}\nexport default Printer;\n\nfunction commaSeparator(this: Printer) {\n this.token(\",\");\n this.space();\n}"
|
||
],
|
||
"mappings": "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",
|
||
"ignoreList": []
|
||
} |