From b15bee9234e8e593d81bea0e2a967ead291ae288 Mon Sep 17 00:00:00 2001 From: Armano Date: Mon, 16 Dec 2019 23:39:16 +0100 Subject: [PATCH 1/3] test(typescript-estree): migrate from legacy babel-code-frame update @babel test dependencies --- packages/typescript-estree/package.json | 7 ++-- .../tests/ast-alignment/parse.ts | 17 ++++++-- yarn.lock | 41 ++++++++----------- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index 3426420f6f42..03bc6a588e54 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -49,9 +49,9 @@ }, "devDependencies": { "@babel/code-frame": "7.5.5", - "@babel/parser": "7.5.5", - "@babel/types": "^7.3.2", - "@types/babel-code-frame": "^6.20.1", + "@babel/parser": "7.7.5", + "@babel/types": "^7.7.4", + "@types/babel__code-frame": "^7.0.1", "@types/debug": "^4.1.5", "@types/glob": "^7.1.1", "@types/is-glob": "^4.0.1", @@ -60,7 +60,6 @@ "@types/semver": "^6.2.0", "@types/tmp": "^0.1.0", "@typescript-eslint/shared-fixtures": "2.11.0", - "babel-code-frame": "^6.26.0", "lodash.isplainobject": "4.0.6", "tmp": "^0.1.0", "typescript": "*" diff --git a/packages/typescript-estree/tests/ast-alignment/parse.ts b/packages/typescript-estree/tests/ast-alignment/parse.ts index b236e5a9861b..a56efd778f64 100644 --- a/packages/typescript-estree/tests/ast-alignment/parse.ts +++ b/packages/typescript-estree/tests/ast-alignment/parse.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { ParserPlugin } from '@babel/parser'; -import codeFrame from 'babel-code-frame'; +import { codeFrameColumns } from '@babel/code-frame'; import * as parser from '../../src/parser'; import * as parseUtils from './utils'; @@ -109,9 +109,18 @@ export function parse( } catch (error) { const loc = error.loc; if (loc) { - error.codeFrame = codeFrame(text, loc.line, loc.column + 1, { - highlightCode: true, - }); + error.codeFrame = codeFrameColumns( + text, + { + start: { + line: loc.line, + column: loc.column + 1, + }, + }, + { + highlightCode: true, + }, + ); error.message += `\n${error.codeFrame}`; } result.parseError = error; diff --git a/yarn.lock b/yarn.lock index 8209d04b8068..d5244e2d13b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -85,10 +85,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" + integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2": version "7.6.2" @@ -133,7 +133,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.3.2", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0": +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0": version "7.6.1" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== @@ -142,6 +142,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" + integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" @@ -1277,10 +1286,10 @@ dependencies: any-observable "^0.3.0" -"@types/babel-code-frame@^6.20.1": - version "6.20.2" - resolved "https://registry.yarnpkg.com/@types/babel-code-frame/-/babel-code-frame-6.20.2.tgz#d923c88d94e66b864fd3693f07b18ad78489a222" - integrity sha512-HAdhFeYOZKIkrR2jbonCJxp3I/o2G/kxY+CIx7qX9Kmv5jY+9D7OgmgSLdRqeHacB5RlqE5efj2WIDFL9NXCyg== +"@types/babel__code-frame@^7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@types/babel__code-frame/-/babel__code-frame-7.0.1.tgz#baf2529c4abbfb5e4008c845efcfe39a187e2f99" + integrity sha512-FFfbQozKxYmOnCKFYV+EQprjBI7u2yaNc2ly/K9AhzyC8MzXtCtSRqptpw+HUJxhwCOo5mLwf1ATmzyhOaVbDg== "@types/babel__core@^7.1.0": version "7.1.3" @@ -1816,15 +1825,6 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - babel-jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" @@ -4838,11 +4838,6 @@ jest@^24.9.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" From 60318f496cf61d79111e993a2b04e06460d7c98c Mon Sep 17 00:00:00 2001 From: Armano Date: Mon, 16 Dec 2019 23:40:34 +0100 Subject: [PATCH 2/3] test(typescript-estree): enable alignment tests --- .../tests/ast-alignment/fixtures-to-test.ts | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts b/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts index 17aedafdc801..4eba47ec5a5a 100644 --- a/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts +++ b/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts @@ -386,14 +386,6 @@ tester.addFixturePatternConfig('javascript/modules', { * Expected babel parse errors - ts-estree is not currently throwing */ 'invalid-export-named-default', // babel parse errors - - // babel does not recognise these as modules - 'export-named-as-default', - 'export-named-as-specifier', - 'export-named-as-specifiers', - 'export-named-specifier', - 'export-named-specifiers-comma', - 'export-named-specifiers', /** * TS 3.7 feature changes * TODO: remove me when babel adds support @@ -406,6 +398,13 @@ tester.addFixturePatternConfig('javascript/modules', { // 'error-strict', 'error-delete', 'invalid-await', + // babel does not recognise these as modules + 'export-named-as-default', + 'export-named-as-specifier', + 'export-named-as-specifiers', + 'export-named-specifier', + 'export-named-specifiers-comma', + 'export-named-specifiers', ], }); @@ -556,11 +555,6 @@ tester.addFixturePatternConfig('typescript/basics', { */ 'directive-in-module', 'directive-in-namespace', - /** - * Babel parses this incorrectly - * https://github.com/babel/babel/issues/9324 - */ - 'type-assertion-arrow-function', /** * PR for optional parameters in arrow function has been merged into Babel: https://github.com/babel/babel/pull/9463 * TODO: remove me in next babel > 7.3.2 @@ -751,14 +745,6 @@ tester.addFixturePatternConfig('typescript/errorRecovery', { tester.addFixturePatternConfig('typescript/types', { fileType: 'ts', ignore: [ - /** - * AST difference - */ - 'literal-number-negative', - /** - * Babel parse error: https://github.com/babel/babel/pull/9431 - */ - 'function-with-array-destruction', /** * TS 3.7 feature changes * TODO: remove me when babel adds support From deca0d7292d7e3cbeb70611ca22f8a49e03b60d5 Mon Sep 17 00:00:00 2001 From: Armano Date: Mon, 16 Dec 2019 23:54:10 +0100 Subject: [PATCH 3/3] chore(typescript-estree): update alignment issues descriptions --- .../tests/ast-alignment/fixtures-to-test.ts | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts b/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts index 4eba47ec5a5a..cf18c1244e77 100644 --- a/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts +++ b/packages/typescript-estree/tests/ast-alignment/fixtures-to-test.ts @@ -555,11 +555,6 @@ tester.addFixturePatternConfig('typescript/basics', { */ 'directive-in-module', 'directive-in-namespace', - /** - * PR for optional parameters in arrow function has been merged into Babel: https://github.com/babel/babel/pull/9463 - * TODO: remove me in next babel > 7.3.2 - */ - 'arrow-function-with-optional-parameter', /** * [BABEL ERRORED, BUT TS-ESTREE DID NOT] */ @@ -572,10 +567,11 @@ tester.addFixturePatternConfig('typescript/basics', { */ 'abstract-class-with-abstract-constructor', /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining + 'arrow-function-with-optional-parameter', 'optional-chain', 'optional-chain-with-parens', 'optional-chain-call', @@ -589,6 +585,10 @@ tester.addFixturePatternConfig('typescript/basics', { 'never-type-param', 'non-null-assertion-operator', 'type-parameters-comments', + /** + * TS 3.7 feature changes + * TODO: remove me when babel adds support + */ // type assertion function 'type-assertion-in-function', 'type-assertion-in-arrow-function', @@ -632,10 +632,10 @@ tester.addFixturePatternConfig('typescript/decorators/accessor-decorators', { fileType: 'ts', ignore: [ /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'accessor-decorator-factory-instance-member', 'accessor-decorator-factory-static-member', 'accessor-decorator-instance-member', @@ -646,10 +646,10 @@ tester.addFixturePatternConfig('typescript/decorators/class-decorators', { fileType: 'ts', ignore: [ /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'class-decorator-factory', ], }); @@ -657,10 +657,10 @@ tester.addFixturePatternConfig('typescript/decorators/method-decorators', { fileType: 'ts', ignore: [ /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'method-decorator-factory-instance-member', 'method-decorator-factory-static-member', ], @@ -675,10 +675,10 @@ tester.addFixturePatternConfig('typescript/decorators/parameter-decorators', { 'parameter-array-pattern-decorator', 'parameter-rest-element-decorator', /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'parameter-decorator-constructor', 'parameter-decorator-decorator-instance-member', 'parameter-decorator-decorator-static-member', @@ -689,13 +689,17 @@ tester.addFixturePatternConfig('typescript/decorators/property-decorators', { fileType: 'ts', ignore: [ /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'property-decorator-factory-instance-member', 'property-decorator-factory-static-member', - // declare class properties + /** + * TS 3.7: declare class properties + * babel: sets declare property as true/undefined + * ts-estree: sets declare property as true/false + */ 'property-decorator-instance-member', 'property-decorator-static-member', ], @@ -709,10 +713,9 @@ tester.addFixturePatternConfig('typescript/expressions', { */ 'tagged-template-expression-type-arguments', /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'call-expression-type-arguments', ], }); @@ -746,10 +749,10 @@ tester.addFixturePatternConfig('typescript/types', { fileType: 'ts', ignore: [ /** - * TS 3.7 feature changes - * TODO: remove me when babel adds support + * TS 3.7: optional chaining + * babel: sets optional property as true/undefined + * ts-estree: sets optional property as true/false */ - // optional chaining 'this-type-expanded', ], }); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy