From 7819a8f010292f95a6b0a0cdead03b48be79f257 Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Tue, 10 Apr 2018 18:03:34 -0700 Subject: [PATCH 1/3] [flow] Upgrade flow to 0.69 and enable ?. support (#4296) Flow now support ?. so this PR enables it in prettier --- package.json | 2 +- src/language-js/parser-flow.js | 3 ++- tests/optional_chaining/jsfmt.spec.js | 2 +- yarn.lock | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 61d47e05..7887eecf 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "escape-string-regexp": "1.0.5", "esutils": "2.0.2", "find-project-root": "1.1.1", - "flow-parser": "0.64.0", + "flow-parser": "0.69", "get-stream": "3.0.0", "globby": "6.1.0", "graphql": "0.13.2", diff --git a/src/language-js/parser-flow.js b/src/language-js/parser-flow.js index 652c6229..2d0f6990 100644 --- a/src/language-js/parser-flow.js +++ b/src/language-js/parser-flow.js @@ -12,7 +12,8 @@ function parse(text /*, parsers, opts*/) { const ast = flowParser.parse(text, { esproposal_class_instance_fields: true, esproposal_class_static_fields: true, - esproposal_export_star_as: true + esproposal_export_star_as: true, + esproposal_optional_chaining: true }); if (ast.errors.length > 0) { diff --git a/tests/optional_chaining/jsfmt.spec.js b/tests/optional_chaining/jsfmt.spec.js index 968651cd..bffb7a54 100644 --- a/tests/optional_chaining/jsfmt.spec.js +++ b/tests/optional_chaining/jsfmt.spec.js @@ -1 +1 @@ -run_spec(__dirname, ["babylon"]); +run_spec(__dirname, ["babylon", "flow"]); diff --git a/yarn.lock b/yarn.lock index a23d2ec0..b42d67f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1971,9 +1971,9 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" -flow-parser@0.64.0: - version "0.64.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.64.0.tgz#858664ef2246880f9a81b05e69fbd308a1b865c9" +flow-parser@0.69: + version "0.69.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.69.0.tgz#378b5128d6d0b554a8b2f16a4ca3e1ab9649f00e" for-in@^1.0.1: version "1.0.2" From 63a2ded4c9eb12823d6ff081750756ae4ca11ed1 Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Wed, 11 Apr 2018 06:38:02 -0400 Subject: [PATCH 2/3] Never print a semicolon after `export default interface Foo {}` (#4128) * Never print a semicolon after `export default interface Foo {}` * Add test --- src/language-js/printer-estree.js | 1 + .../__snapshots__/jsfmt.spec.js.snap | 11 +++++++++++ tests/typescript_export/default.js | 3 +++ 3 files changed, 15 insertions(+) create mode 100644 tests/typescript_export/default.js diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 87372b7d..689c8e91 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -3628,6 +3628,7 @@ function printExportDeclaration(path, options, print) { (decl.declaration.type !== "ClassDeclaration" && decl.declaration.type !== "FunctionDeclaration" && decl.declaration.type !== "TSAbstractClassDeclaration" && + decl.declaration.type !== "TSInterfaceDeclaration" && decl.declaration.type !== "DeclareClass" && decl.declaration.type !== "DeclareFunction") ) { diff --git a/tests/typescript_export/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_export/__snapshots__/jsfmt.spec.js.snap index 35067142..7fb4f6dd 100644 --- a/tests/typescript_export/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_export/__snapshots__/jsfmt.spec.js.snap @@ -9,6 +9,17 @@ a; `; +exports[`default.js 1`] = ` +export default interface Foo { + readonly bar?: string; +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +export default interface Foo { + readonly bar?: string; +} + +`; + exports[`export.ts 1`] = ` declare module "hello" { export default Hello; diff --git a/tests/typescript_export/default.js b/tests/typescript_export/default.js new file mode 100644 index 00000000..c225ef0a --- /dev/null +++ b/tests/typescript_export/default.js @@ -0,0 +1,3 @@ +export default interface Foo { + readonly bar?: string; +} From 46c8a4cd9d27e771946a0b8244cc336d826bb586 Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Wed, 11 Apr 2018 11:38:48 -0300 Subject: [PATCH 3/3] Move sw-toolbox to `website` dependencies (#4297) --- package.json | 1 - scripts/build/build-docs.js | 13 +++++-------- website/package.json | 3 ++- website/yarn.lock | 21 +++++++++++++++++++++ yarn.lock | 21 --------------------- 5 files changed, 28 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 7887eecf..be109ff4 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,6 @@ "shelljs": "0.8.1", "snapshot-diff": "0.2.2", "strip-ansi": "4.0.0", - "sw-toolbox": "3.6.0", "tempy": "0.2.1", "uglify-es": "3.3.9", "webpack": "2.6.1" diff --git a/scripts/build/build-docs.js b/scripts/build/build-docs.js index de870920..498b3227 100644 --- a/scripts/build/build-docs.js +++ b/scripts/build/build-docs.js @@ -17,7 +17,7 @@ function pipe(string) { } const isPullRequest = process.env.PULL_REQUEST === "true"; -const prettierPath = isPullRequest ? "dist" : "node_modules/prettier/"; +const prettierPath = isPullRequest ? "dist" : "node_modules/prettier"; const parserPaths = parsers.map(stripLanguageDirectory); @@ -63,20 +63,17 @@ for (const parser of parserPaths) { ); } -shell.echo("Copy sw-toolbox.js to docs"); -shell.cp("node_modules/sw-toolbox/sw-toolbox.js", `${docs}/sw-toolbox.js`); - // --- Site --- shell.cd("website"); shell.echo("Building website..."); shell.exec("yarn install"); +shell.echo("Copy sw-toolbox.js to docs"); +shell.cp("node_modules/sw-toolbox/sw-toolbox.js", `${docs}/sw-toolbox.js`); + shell.echo("Copy prettier-animated-logo CSS file to docs"); shell.cp( - path.join( - rootDir, - "website/node_modules/@sandhose/prettier-animated-logo/dist/wide.css" - ), + "node_modules/@sandhose/prettier-animated-logo/dist/wide.css", `${docs}/prettier-animated-logo.css` ); diff --git a/website/package.json b/website/package.json index 7561c2f1..72c76168 100644 --- a/website/package.json +++ b/website/package.json @@ -11,6 +11,7 @@ "@sandhose/prettier-animated-logo": "1.0.3", "docusaurus": "1.0.5", "js-yaml": "3.10.0", - "svgo": "1.0.4" + "svgo": "1.0.4", + "sw-toolbox": "3.6.0" } } diff --git a/website/yarn.lock b/website/yarn.lock index a13f3c6e..60e18956 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1322,6 +1322,10 @@ is2@0.0.9: dependencies: deep-is "0.1.2" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + isomorphic-fetch@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" @@ -1538,6 +1542,12 @@ path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" +path-to-regexp@^1.0.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" @@ -1764,6 +1774,10 @@ serve-static@1.12.3: parseurl "~1.3.1" send "0.15.3" +serviceworker-cache-polyfill@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -1882,6 +1896,13 @@ svgo@1.0.4: unquote "~1.1.1" util.promisify "~1.0.0" +sw-toolbox@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" + dependencies: + path-to-regexp "^1.0.1" + serviceworker-cache-polyfill "^4.0.0" + tcp-port-used@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-0.1.2.tgz#9450e8768c83b416fd4d1a6a9449eeccbf496c29" diff --git a/yarn.lock b/yarn.lock index b42d67f8..35180ee7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2590,10 +2590,6 @@ is-word-character@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.1.tgz#5a03fa1ea91ace8a6eb0c7cd770eb86d65c8befb" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3657,12 +3653,6 @@ path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" -path-to-regexp@^1.0.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -4338,10 +4328,6 @@ semver@5.5.0, semver@^5.4.1: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" -serviceworker-cache-polyfill@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -4613,13 +4599,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -sw-toolbox@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" - dependencies: - path-to-regexp "^1.0.1" - serviceworker-cache-polyfill "^4.0.0" - symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"