@tinacms/app 0.0.28 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/appFiles/node_modules/.package-lock.json +10 -10
- package/appFiles/node_modules/@babel/generator/lib/generators/base.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/classes.js +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js +9 -15
- package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/methods.js +9 -24
- package/appFiles/node_modules/@babel/generator/lib/generators/methods.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/modules.js +6 -14
- package/appFiles/node_modules/@babel/generator/lib/generators/modules.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/generators/statements.js +1 -16
- package/appFiles/node_modules/@babel/generator/lib/generators/statements.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/lib/printer.js +89 -80
- package/appFiles/node_modules/@babel/generator/lib/printer.js.map +1 -1
- package/appFiles/node_modules/@babel/generator/package.json +3 -3
- package/appFiles/node_modules/@babel/parser/lib/index.js +1 -1
- package/appFiles/node_modules/@babel/parser/lib/index.js.map +1 -1
- package/appFiles/node_modules/@babel/parser/package.json +1 -1
- package/appFiles/node_modules/@babel/parser/typings/babel-parser.d.ts +92 -80
- package/appFiles/node_modules/@babel/parser/typings/babel-parser.source.d.ts +151 -0
- package/appFiles/node_modules/@babel/types/lib/asserts/assertNode.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/asserts/assertNode.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/asserts/generated/index.js +0 -303
- package/appFiles/node_modules/@babel/types/lib/asserts/generated/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -11
- package/appFiles/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/generated/index.js +0 -253
- package/appFiles/node_modules/@babel/types/lib/builders/generated/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
- package/appFiles/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -7
- package/appFiles/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -5
- package/appFiles/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/builders/validateNode.js +0 -5
- package/appFiles/node_modules/@babel/types/lib/builders/validateNode.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/clone/clone.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/clone/clone.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/clone/cloneDeep.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/clone/cloneNode.js +4 -22
- package/appFiles/node_modules/@babel/types/lib/clone/cloneNode.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/addComment.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/comments/addComment.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/addComments.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/comments/addComments.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/comments/inheritsComments.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/comments/removeComments.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/comments/removeComments.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
- package/appFiles/node_modules/@babel/types/lib/constants/generated/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/constants/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/converters/ensureBlock.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +2 -12
- package/appFiles/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toBlock.js +0 -7
- package/appFiles/node_modules/@babel/types/lib/converters/toBlock.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toComputedKey.js +2 -4
- package/appFiles/node_modules/@babel/types/lib/converters/toComputedKey.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toExpression.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/converters/toExpression.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toIdentifier.js +2 -6
- package/appFiles/node_modules/@babel/types/lib/converters/toIdentifier.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -7
- package/appFiles/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/toStatement.js +1 -7
- package/appFiles/node_modules/@babel/types/lib/converters/toStatement.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/converters/valueToNode.js +2 -18
- package/appFiles/node_modules/@babel/types/lib/converters/valueToNode.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/core.js +33 -61
- package/appFiles/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/experimental.js +3 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/experimental.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/flow.js +1 -3
- package/appFiles/node_modules/@babel/types/lib/definitions/flow.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/index.js +0 -18
- package/appFiles/node_modules/@babel/types/lib/definitions/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/jsx.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/misc.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/definitions/misc.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/placeholders.js +0 -5
- package/appFiles/node_modules/@babel/types/lib/definitions/placeholders.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/typescript.js +4 -15
- package/appFiles/node_modules/@babel/types/lib/definitions/typescript.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/definitions/utils.js +1 -65
- package/appFiles/node_modules/@babel/types/lib/definitions/utils.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/index.d.ts +0 -1
- package/appFiles/node_modules/@babel/types/lib/index.js +1 -75
- package/appFiles/node_modules/@babel/types/lib/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +3 -12
- package/appFiles/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/inherits.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/modifications/inherits.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/removeProperties.js +3 -8
- package/appFiles/node_modules/@babel/types/lib/modifications/removeProperties.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +1 -10
- package/appFiles/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +4 -14
- package/appFiles/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/traverse/traverse.js +0 -7
- package/appFiles/node_modules/@babel/types/lib/traverse/traverse.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/traverse/traverseFast.js +2 -5
- package/appFiles/node_modules/@babel/types/lib/traverse/traverseFast.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/utils/inherit.js +0 -1
- package/appFiles/node_modules/@babel/types/lib/utils/inherit.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +1 -8
- package/appFiles/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/utils/shallowEqual.js +2 -4
- package/appFiles/node_modules/@babel/types/lib/utils/shallowEqual.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/generated/index.js +0 -906
- package/appFiles/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/is.js +0 -8
- package/appFiles/node_modules/@babel/types/lib/validators/is.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isBinding.js +4 -8
- package/appFiles/node_modules/@babel/types/lib/validators/isBinding.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isImmutable.js +0 -5
- package/appFiles/node_modules/@babel/types/lib/validators/isImmutable.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isLet.js +2 -4
- package/appFiles/node_modules/@babel/types/lib/validators/isLet.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isNode.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/validators/isNode.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +2 -16
- package/appFiles/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isReferenced.js +0 -13
- package/appFiles/node_modules/@babel/types/lib/validators/isReferenced.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isScope.js +0 -3
- package/appFiles/node_modules/@babel/types/lib/validators/isScope.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +2 -3
- package/appFiles/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isType.js +1 -5
- package/appFiles/node_modules/@babel/types/lib/validators/isType.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/isVar.js +2 -4
- package/appFiles/node_modules/@babel/types/lib/validators/isVar.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -8
- package/appFiles/node_modules/@babel/types/lib/validators/matchesPattern.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
- package/appFiles/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -2
- package/appFiles/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +1 -1
- package/appFiles/node_modules/@babel/types/lib/validators/validate.js +0 -4
- package/appFiles/node_modules/@babel/types/lib/validators/validate.js.map +1 -1
- package/appFiles/node_modules/@babel/types/package.json +3 -3
- package/package.json +4 -4
- package/appFiles/node_modules/@babel/types/lib/index.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","_noLineTerminator","hasInits","declar","declarations","iterator","_","i","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type { PrintJoinOptions } from \"../printer\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.token(\"}\");\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind);\n const { _noLineTerminator } = this;\n if (kind === \"using\") {\n // ensure no line break after `using`\n this._noLineTerminator = true;\n }\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n let iterator: PrintJoinOptions[\"iterator\"] | undefined;\n if (kind === \"using\") {\n // Ensure no line break between `using` and the first declarator\n iterator = (_, i: number) => {\n if (i === 0) {\n this._noLineTerminator = _noLineTerminator;\n }\n };\n }\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n iterator,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","hasInits","declar","declarations","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.token(\"}\");\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ const SCIENTIFIC_NOTATION = /e/i;
|
|
|
18
18
|
const ZERO_DECIMAL_INTEGER = /\.0+$/;
|
|
19
19
|
const NON_DECIMAL_LITERAL = /^0[box]/;
|
|
20
20
|
const PURE_ANNOTATION_RE = /^\s*[@#]__PURE__\s*$/;
|
|
21
|
+
const HAS_NEWLINE = /[\n\r\u2028\u2029]/;
|
|
22
|
+
const HAS_BlOCK_COMMENT_END = /\*\//;
|
|
21
23
|
const {
|
|
22
24
|
needsParens
|
|
23
25
|
} = n;
|
|
@@ -66,6 +68,7 @@ class Printer {
|
|
|
66
68
|
} else {
|
|
67
69
|
this._queue(59);
|
|
68
70
|
}
|
|
71
|
+
this._noLineTerminator = false;
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
rightBrace() {
|
|
@@ -87,7 +90,7 @@ class Printer {
|
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
92
|
|
|
90
|
-
word(str) {
|
|
93
|
+
word(str, noLineTerminatorAfter = false) {
|
|
91
94
|
this._maybePrintInnerComments();
|
|
92
95
|
|
|
93
96
|
if (this._endsWithWord || str.charCodeAt(0) === 47 && this.endsWith(47)) {
|
|
@@ -96,6 +99,7 @@ class Printer {
|
|
|
96
99
|
this._maybeAddAuxComment();
|
|
97
100
|
this._append(str, false);
|
|
98
101
|
this._endsWithWord = true;
|
|
102
|
+
this._noLineTerminator = noLineTerminatorAfter;
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
number(str) {
|
|
@@ -116,6 +120,7 @@ class Printer {
|
|
|
116
120
|
}
|
|
117
121
|
this._maybeAddAuxComment();
|
|
118
122
|
this._append(str, maybeNewline);
|
|
123
|
+
this._noLineTerminator = false;
|
|
119
124
|
}
|
|
120
125
|
tokenChar(char) {
|
|
121
126
|
this._maybePrintInnerComments();
|
|
@@ -128,6 +133,7 @@ class Printer {
|
|
|
128
133
|
}
|
|
129
134
|
this._maybeAddAuxComment();
|
|
130
135
|
this._appendChar(char);
|
|
136
|
+
this._noLineTerminator = false;
|
|
131
137
|
}
|
|
132
138
|
|
|
133
139
|
newline(i = 1, force) {
|
|
@@ -290,19 +296,10 @@ class Printer {
|
|
|
290
296
|
_getIndent() {
|
|
291
297
|
return this._indentRepeat * this._indent;
|
|
292
298
|
}
|
|
293
|
-
ensureNoLineTerminator(fn) {
|
|
294
|
-
const {
|
|
295
|
-
_noLineTerminator
|
|
296
|
-
} = this;
|
|
297
|
-
this._noLineTerminator = true;
|
|
298
|
-
fn();
|
|
299
|
-
this._noLineTerminator = _noLineTerminator;
|
|
300
|
-
}
|
|
301
299
|
printTerminatorless(node, parent, isLabel) {
|
|
302
300
|
if (isLabel) {
|
|
303
|
-
this.
|
|
304
|
-
|
|
305
|
-
});
|
|
301
|
+
this._noLineTerminator = true;
|
|
302
|
+
this.print(node, parent);
|
|
306
303
|
} else {
|
|
307
304
|
const terminatorState = {
|
|
308
305
|
printed: false
|
|
@@ -316,7 +313,7 @@ class Printer {
|
|
|
316
313
|
}
|
|
317
314
|
}
|
|
318
315
|
}
|
|
319
|
-
print(node, parent,
|
|
316
|
+
print(node, parent, noLineTerminatorAfter,
|
|
320
317
|
trailingCommentsLineOffset, forceParens) {
|
|
321
318
|
if (!node) return;
|
|
322
319
|
this._endsWithInnerRaw = false;
|
|
@@ -348,14 +345,16 @@ class Printer {
|
|
|
348
345
|
this._printLeadingComments(node, parent);
|
|
349
346
|
const loc = nodeType === "Program" || nodeType === "File" ? null : node.loc;
|
|
350
347
|
this.exactSource(loc, printMethod.bind(this, node, parent));
|
|
351
|
-
if (
|
|
348
|
+
if (shouldPrintParens) {
|
|
349
|
+
this._printTrailingComments(node, parent);
|
|
350
|
+
this.tokenChar(41);
|
|
351
|
+
this._noLineTerminator = noLineTerminatorAfter;
|
|
352
|
+
} else if (noLineTerminatorAfter && !this._noLineTerminator) {
|
|
352
353
|
this._noLineTerminator = true;
|
|
353
354
|
this._printTrailingComments(node, parent);
|
|
354
|
-
this._noLineTerminator = false;
|
|
355
355
|
} else {
|
|
356
356
|
this._printTrailingComments(node, parent, trailingCommentsLineOffset);
|
|
357
357
|
}
|
|
358
|
-
if (shouldPrintParens) this.tokenChar(41);
|
|
359
358
|
|
|
360
359
|
this._printStack.pop();
|
|
361
360
|
format.concise = oldConcise;
|
|
@@ -503,10 +502,15 @@ class Printer {
|
|
|
503
502
|
this.newline(1);
|
|
504
503
|
}
|
|
505
504
|
}
|
|
505
|
+
|
|
506
506
|
_printComment(comment, skipNewLines) {
|
|
507
|
-
if (comment.ignore) return;
|
|
508
|
-
if (this._printedComments.has(comment)) return;
|
|
509
|
-
|
|
507
|
+
if (comment.ignore) return false;
|
|
508
|
+
if (this._printedComments.has(comment)) return false;
|
|
509
|
+
const noLineTerminator = this._noLineTerminator;
|
|
510
|
+
if (noLineTerminator && (HAS_NEWLINE.test(comment.value) || HAS_BlOCK_COMMENT_END.test(comment.value))) {
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
if (!this.format.shouldPrintComment(comment.value)) return false;
|
|
510
514
|
this._printedComments.add(comment);
|
|
511
515
|
const isBlockComment = comment.type === "CommentBlock";
|
|
512
516
|
|
|
@@ -534,7 +538,7 @@ class Printer {
|
|
|
534
538
|
}
|
|
535
539
|
val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`);
|
|
536
540
|
}
|
|
537
|
-
} else if (!
|
|
541
|
+
} else if (!noLineTerminator) {
|
|
538
542
|
val = `//${comment.value}`;
|
|
539
543
|
} else {
|
|
540
544
|
val = `/*${comment.value}*/`;
|
|
@@ -543,83 +547,88 @@ class Printer {
|
|
|
543
547
|
if (this.endsWith(47)) this._space();
|
|
544
548
|
this.source("start", comment.loc);
|
|
545
549
|
this._append(val, isBlockComment);
|
|
546
|
-
if (!isBlockComment && !
|
|
550
|
+
if (!isBlockComment && !noLineTerminator) {
|
|
547
551
|
this.newline(1, true);
|
|
548
552
|
}
|
|
549
553
|
if (printNewLines && skipNewLines !== 3) {
|
|
550
554
|
this.newline(1);
|
|
551
555
|
}
|
|
556
|
+
return false;
|
|
552
557
|
}
|
|
553
558
|
_printComments(type, comments, node, parent, lineOffset = 0) {
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
} else {
|
|
574
|
-
offset = commentStartLine - lastLine;
|
|
575
|
-
}
|
|
576
|
-
lastLine = commentEndLine;
|
|
577
|
-
this.newline(offset);
|
|
578
|
-
this._printComment(comment, 1);
|
|
579
|
-
if (i + 1 === len) {
|
|
580
|
-
this.newline(Math.max(nodeStartLine - lastLine, leadingCommentNewline));
|
|
581
|
-
lastLine = nodeStartLine;
|
|
582
|
-
}
|
|
583
|
-
} else if (type === 1) {
|
|
584
|
-
const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine);
|
|
585
|
-
lastLine = commentEndLine;
|
|
586
|
-
this.newline(offset);
|
|
587
|
-
this._printComment(comment, 1);
|
|
588
|
-
if (i + 1 === len) {
|
|
589
|
-
this.newline(Math.min(1, nodeEndLine - lastLine));
|
|
590
|
-
lastLine = nodeEndLine;
|
|
559
|
+
const nodeLoc = node.loc;
|
|
560
|
+
const len = comments.length;
|
|
561
|
+
let hasLoc = !!nodeLoc;
|
|
562
|
+
const nodeStartLine = hasLoc ? nodeLoc.start.line : 0;
|
|
563
|
+
const nodeEndLine = hasLoc ? nodeLoc.end.line : 0;
|
|
564
|
+
let lastLine = 0;
|
|
565
|
+
let leadingCommentNewline = 0;
|
|
566
|
+
const maybeNewline = this._noLineTerminator ? function () {} : this.newline.bind(this);
|
|
567
|
+
for (let i = 0; i < len; i++) {
|
|
568
|
+
const comment = comments[i];
|
|
569
|
+
const printed = this._printedComments.has(comment);
|
|
570
|
+
if (hasLoc && comment.loc && !printed) {
|
|
571
|
+
const commentStartLine = comment.loc.start.line;
|
|
572
|
+
const commentEndLine = comment.loc.end.line;
|
|
573
|
+
if (type === 0) {
|
|
574
|
+
let offset = 0;
|
|
575
|
+
if (i === 0) {
|
|
576
|
+
if (this._buf.hasContent() && (comment.type === "CommentLine" || commentStartLine != commentEndLine)) {
|
|
577
|
+
offset = leadingCommentNewline = 1;
|
|
591
578
|
}
|
|
592
579
|
} else {
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
580
|
+
offset = commentStartLine - lastLine;
|
|
581
|
+
}
|
|
582
|
+
lastLine = commentEndLine;
|
|
583
|
+
maybeNewline(offset);
|
|
584
|
+
this._printComment(comment, 1);
|
|
585
|
+
if (i + 1 === len) {
|
|
586
|
+
maybeNewline(Math.max(nodeStartLine - lastLine, leadingCommentNewline));
|
|
587
|
+
lastLine = nodeStartLine;
|
|
588
|
+
}
|
|
589
|
+
} else if (type === 1) {
|
|
590
|
+
const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine);
|
|
591
|
+
lastLine = commentEndLine;
|
|
592
|
+
maybeNewline(offset);
|
|
593
|
+
if (this._printComment(comment, 1)) break;
|
|
594
|
+
if (i + 1 === len) {
|
|
595
|
+
maybeNewline(Math.min(1, nodeEndLine - lastLine));
|
|
596
|
+
lastLine = nodeEndLine;
|
|
597
597
|
}
|
|
598
598
|
} else {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
599
|
+
const offset = commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);
|
|
600
|
+
lastLine = commentEndLine;
|
|
601
|
+
maybeNewline(offset);
|
|
602
|
+
this._printComment(comment, 1);
|
|
603
|
+
}
|
|
604
|
+
} else {
|
|
605
|
+
hasLoc = false;
|
|
606
|
+
if (printed) continue;
|
|
607
|
+
if (len === 1) {
|
|
608
|
+
const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value);
|
|
609
|
+
const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent);
|
|
610
|
+
if (type === 0) {
|
|
611
|
+
this._printComment(comment, shouldSkipNewline && node.type !== "ObjectExpression" || singleLine && isFunction(parent, {
|
|
612
|
+
body: node
|
|
613
|
+
}) ? 1 : 0);
|
|
614
|
+
} else if (shouldSkipNewline && type === 2) {
|
|
615
|
+
if (this._printComment(comment, 1)) {
|
|
616
|
+
break;
|
|
611
617
|
}
|
|
612
|
-
} else if (type === 1 && !(node.type === "ObjectExpression" && node.properties.length > 1) && node.type !== "ClassBody" && node.type !== "TSInterfaceBody") {
|
|
613
|
-
|
|
614
|
-
this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0);
|
|
615
618
|
} else {
|
|
616
619
|
this._printComment(comment, 0);
|
|
617
620
|
}
|
|
621
|
+
} else if (type === 1 && !(node.type === "ObjectExpression" && node.properties.length > 1) && node.type !== "ClassBody" && node.type !== "TSInterfaceBody") {
|
|
622
|
+
|
|
623
|
+
const skippedDueToNewline = this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0);
|
|
624
|
+
if (skippedDueToNewline) break;
|
|
625
|
+
} else {
|
|
626
|
+
this._printComment(comment, 0);
|
|
618
627
|
}
|
|
619
628
|
}
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
629
|
+
}
|
|
630
|
+
if (type === 2 && hasLoc && lastLine) {
|
|
631
|
+
this._lastCommentLine = lastLine;
|
|
623
632
|
}
|
|
624
633
|
}
|
|
625
634
|
}
|