From 05ad885c3cf5b96b9046ff078ccb7c81363f2857 Mon Sep 17 00:00:00 2001 From: Ika Date: Tue, 27 Nov 2018 16:53:34 +0800 Subject: [PATCH] feat(typescript): support BigInt (#5546) --- package.json | 4 +-- src/language-js/parser-typescript.js | 2 +- src/language-js/printer-estree.js | 25 +++++++++---------- .../big-int/__snapshots__/jsfmt.spec.js.snap | 2 +- tests/big-int/jsfmt.spec.js | 2 +- yarn.lock | 12 ++++----- 6 files changed, 23 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 442c81f1d..a7f8b7611 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,8 @@ "resolve": "1.5.0", "semver": "5.4.1", "string-width": "2.1.1", - "typescript": "3.0.1", - "typescript-estree": "1.0.0", + "typescript": "3.2.0-rc", + "typescript-estree": "6.0.0-rc.1", "unicode-regex": "2.0.0", "unified": "6.1.6", "vnopts": "1.0.2", diff --git a/src/language-js/parser-typescript.js b/src/language-js/parser-typescript.js index b8a4c309d..efcacf2e7 100644 --- a/src/language-js/parser-typescript.js +++ b/src/language-js/parser-typescript.js @@ -43,7 +43,7 @@ function tryParseTypeScript(text, jsx) { tokens: true, comment: true, useJSXTextNode: true, - ecmaFeatures: { jsx }, + jsx, // Override logger function with noop, // to avoid unsupported version errors being logged loggerFn: () => {} diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index e70e0c0ef..36c3b685c 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -1573,7 +1573,15 @@ function printPathNoParens(path, options, print, args) { case "NumericLiteral": // Babel 6 Literal split return printNumber(n.extra.raw); case "BigIntLiteral": - return concat([printNumber(n.extra.rawValue), "n"]); + return concat([ + printNumber( + n.extra + ? n.extra.rawValue + : // TypeScript + n.value + ), + "n" + ]); case "BooleanLiteral": // Babel 6 Literal split case "StringLiteral": // Babel 6 Literal split case "Literal": { @@ -2098,7 +2106,6 @@ function printPathNoParens(path, options, print, args) { ); } case "JSXFragment": - case "TSJsxFragment": case "JSXElement": { const elem = comments.printComments( path, @@ -2204,14 +2211,11 @@ function printPathNoParens(path, options, print, args) { case "JSXClosingElement": return concat([""]); case "JSXOpeningFragment": - case "JSXClosingFragment": - case "TSJsxOpeningFragment": - case "TSJsxClosingFragment": { + case "JSXClosingFragment": { const hasComment = n.comments && n.comments.length; const hasOwnLineComment = hasComment && !n.comments.every(handleComments.isBlockComment); - const isOpeningFragment = - n.type === "JSXOpeningFragment" || n.type === "TSJsxOpeningFragment"; + const isOpeningFragment = n.type === "JSXOpeningFragment"; return concat([ isOpeningFragment ? "<" : "