From 4f8d9d2bd8ae0f97f72ccf236004234987372c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Sat, 31 Oct 2020 13:57:13 +0100 Subject: [PATCH] Use @babel/parser@7.9.0 for TLA tests --- package.json | 7 +++--- test/fixtures.json | 4 +-- test/index.js | 15 +++++++++--- yarn.lock | 61 ++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 71 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 6a0d526..cfce095 100644 --- a/package.json +++ b/package.json @@ -32,10 +32,9 @@ "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "7.0.0" - }, - "resolutions": { - "@babel/parser": "7.0.0" + "@babel/core": "7.0.0", + "@babel/parser-7.0.0": "npm:@babel/parser@7.0.0", + "@babel/parser-7.9.0": "npm:@babel/parser@7.9.0" }, "license": "MIT" } diff --git a/test/fixtures.json b/test/fixtures.json index aaf4199..61151bc 100644 --- a/test/fixtures.json +++ b/test/fixtures.json @@ -1,5 +1,5 @@ { - "#______name_______": [ "min node version", "code" ], + "#______name_______": [ "min node version", "code", "@babel/parser" ], "object rest/spread": [8.6, "({...x})"], "async generators": [10.0, "async function* f() {}"], "optional catch binding": [10.0, "try {} catch {}"], @@ -11,5 +11,5 @@ "optional chaining": [14.0, "a?.b"], "nullish coalescing": [14.0, "a ?? b"], "import.meta": [10.4, "import.meta"], - "top level await": [14.3, "await Promise.resolve()"] + "top level await": [14.3, "await Promise.resolve()", "@babel/parser-7.9.0"] } diff --git a/test/index.js b/test/index.js index bf5b4a2..58ce391 100644 --- a/test/index.js +++ b/test/index.js @@ -1,4 +1,3 @@ -const fs = require("fs"); const babel = require("@babel/core"); const thisPreset = require(".."); @@ -9,14 +8,18 @@ const currentVersion = parseVersion(process.version); console.log(`INFO - Running on node ${process.version}`); -for (const [name, [version, code]] of Object.entries(fixtures)) { +for (const [name, [version, code, parser]] of Object.entries(fixtures)) { if (name.startsWith("#")) continue; // "JSON comments" const shouldThrow = parseVersion(version) > currentVersion; let didThrow = false; try { - babel.parseSync(code, { configFile: false, presets: [thisPreset] }); + babel.parseSync(code, { + configFile: false, + presets: [thisPreset], + plugins: [selectParser(parser)], + }); } catch { didThrow = true; } @@ -30,6 +33,12 @@ for (const [name, [version, code]] of Object.entries(fixtures)) { } } +function selectParser(version = "@babel/parser-7.0.0") { + return () => ({ + parserOverride: require(version).parse + }); +} + function parseVersion(v) { const { major, minor = 0, patch = 0 } = String(v).match(VERSION_RE).groups; return Number(major) * 1e8 + Number(minor) * 1e4 + Number(patch); diff --git a/yarn.lock b/yarn.lock index 584c2b4..329f22e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -113,7 +113,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:7.0.0": +"@babel/parser-7.0.0@npm:@babel/parser@7.0.0": version: 7.0.0 resolution: "@babel/parser@npm:7.0.0" bin: @@ -122,6 +122,24 @@ __metadata: languageName: node linkType: hard +"@babel/parser-7.9.0@npm:@babel/parser@7.9.0": + version: 7.9.0 + resolution: "@babel/parser@npm:7.9.0" + bin: + parser: ./bin/babel-parser.js + checksum: e7ba36d98b00784a6866cb64a166eafc17d0e845d20b340a782a5d8715a967ecc2d868cb92b600840441bd3ac82e76d05d192f5db6de2eb4bce04f5f56c4765e + languageName: node + linkType: hard + +"@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.8.6, @babel/parser@npm:^7.9.0": + version: 7.12.3 + resolution: "@babel/parser@npm:7.12.3" + bin: + parser: ./bin/babel-parser.js + checksum: 3605bcf97e956ef36506ccb7e0ca4432025d8992c7e1f5d5b03976750a1198a0b27f461ab9304dbc5319a154b5ea19c09e72f87bfc5c08dd2780428734e13339 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -307,6 +325,8 @@ __metadata: resolution: "babel-preset-current-node-syntax@workspace:." dependencies: "@babel/core": 7.0.0 + "@babel/parser-7.0.0": "npm:@babel/parser@7.0.0" + "@babel/parser-7.9.0": "npm:@babel/parser@7.9.0" "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-bigint": ^7.8.3 "@babel/plugin-syntax-class-properties": ^7.8.3 @@ -385,6 +405,13 @@ __metadata: languageName: node linkType: hard +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: ffad86e7d2010ba179aaa6a3987d2cc0ed48fa92d27f1ed84bfa06d14f77deeed5bfbae7f00bdebc0c54218392cab2b18ecc080e2c72f592431927b87a27d42b + languageName: node + linkType: hard + "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -399,6 +426,24 @@ __metadata: languageName: node linkType: hard +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: c686e15300d41364486c099a9259d9c418022c294244843dcd712c4c286ff839d4f23a25413baa28c4d2c1e828afc2aaab70f685400b391533980223c71fa1ca + languageName: node + linkType: hard + +"is-core-module@npm:^2.0.0": + version: 2.0.0 + resolution: "is-core-module@npm:2.0.0" + dependencies: + has: ^1.0.3 + checksum: de99dfbdf14d254f6d078aa37113512295acef3cfff5fb39fdf8020b04788535eae6da39e02b0c4ad07f7bc79594de8d5aeb4fce66f97feb9c597d7d6d6d43d4 + languageName: node + linkType: hard + "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -446,20 +491,22 @@ __metadata: linkType: hard resolve@^1.3.2: - version: 1.15.1 - resolution: "resolve@npm:1.15.1" + version: 1.18.1 + resolution: "resolve@npm:1.18.1" dependencies: + is-core-module: ^2.0.0 path-parse: ^1.0.6 - checksum: 34f77287b44a7eb4588d9d631165c763099a82aca3132920e0fdcde428a51f2cf69190c19e2309e35288a0702f57fefeb951da6138677036a16636b2f0e7b8dd + checksum: deb5ba746e1c038ba8fb7ca5c35ee3fe88665e2f79be3e9a706e5254eeea55eb12b6f1830dd60a11bbafa327bcd868284fbf5caf428cf5761b3f094abdffee77 languageName: node linkType: hard "resolve@patch:resolve@^1.3.2#builtin": - version: 1.15.1 - resolution: "resolve@patch:resolve@npm%3A1.15.1#builtin::version=1.15.1&hash=3388aa" + version: 1.18.1 + resolution: "resolve@patch:resolve@npm%3A1.18.1#builtin::version=1.18.1&hash=3388aa" dependencies: + is-core-module: ^2.0.0 path-parse: ^1.0.6 - checksum: 6588c8a8735d8b2a00cfee2a325538f325ae5e48653490882d3e8afe6124f25c25d60ec09864f30a03c4471a3201c9cfba0e14ca0f74f626ac4b5c8d2e42c2c2 + checksum: 9e62d2803ad1ec21b13780cc6a45b72bb7b6525eb5b44f0ede7cde37c00a8eb310c06ebfcc7de7dc10c2234d7d271bc4f1eed9783fb87acac141597cd4efaeec languageName: node linkType: hard