Skip to content

Commit e39b508

Browse files
authored
Add @babel/helper-validator-identifier (#11289)
* refactor: replace esutils.keywords.isIdentifierNameES6 by helper-validator-identifier * refactor: replace esutils isReservedWordES6 by isKeyword || isReservedWord * address review comments * chore: specify both “main” and “exports” * build helper-validator-identifier before babel-types
1 parent 693a5df commit e39b508

21 files changed

Lines changed: 304 additions & 169 deletions

File tree

Gulpfile.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,19 @@ gulp.task("build-rollup", () => buildRollup(libBundles));
226226
gulp.task("build-babel-standalone", () => buildRollup(standaloneBundle));
227227

228228
gulp.task("build-babel", () => buildBabel(/* exclude */ libBundles));
229-
gulp.task("build-babel-types", () =>
229+
gulp.task("build-babel-types-deps", () =>
230+
buildBabel(
231+
/* exclude */ libBundles,
232+
"packages/babel-helper-validator-identifier/src/**/*.js"
233+
)
234+
);
235+
gulp.task("build-babel-types-self", () =>
230236
buildBabel(/* exclude */ libBundles, "packages/babel-types/src/**/*.js")
231237
);
238+
gulp.task(
239+
"build-babel-types",
240+
gulp.series("build-babel-types-deps", "build-babel-types-self")
241+
);
232242
gulp.task("build", gulp.parallel("build-rollup", "build-babel"));
233243

234244
gulp.task("default", gulp.series("build"));

babel.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ module.exports = function(api) {
115115
].filter(Boolean),
116116
overrides: [
117117
{
118-
test: "packages/babel-parser",
118+
test: [
119+
"packages/babel-parser",
120+
"packages/babel-helper-validator-identifier",
121+
],
119122
plugins: [
120123
"babel-plugin-transform-charcodes",
121124
["@babel/transform-for-of", { assumeArray: true }],

packages/babel-helper-builder-react-jsx-experimental/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
"dependencies": {
1212
"@babel/helper-annotate-as-pure": "^7.8.3",
1313
"@babel/helper-module-imports": "^7.8.3",
14-
"@babel/types": "^7.8.3",
15-
"esutils": "^2.0.0"
14+
"@babel/types": "^7.8.3"
1615
}
1716
}

packages/babel-helper-builder-react-jsx-experimental/src/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import esutils from "esutils";
21
import * as t from "@babel/types";
32
import { addNamed, addNamespace, isModule } from "@babel/helper-module-imports";
43
import annotateAsPure from "@babel/helper-annotate-as-pure";
@@ -472,7 +471,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`,
472471
if (t.isJSXIdentifier(node)) {
473472
if (node.name === "this" && t.isReferenced(node, parent)) {
474473
return t.thisExpression();
475-
} else if (esutils.keyword.isIdentifierNameES6(node.name)) {
474+
} else if (t.isValidIdentifier(node.name, false)) {
476475
node.type = "Identifier";
477476
} else {
478477
return t.stringLiteral(node.name);
@@ -521,7 +520,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`,
521520
node.name = t.stringLiteral(
522521
node.name.namespace.name + ":" + node.name.name.name,
523522
);
524-
} else if (esutils.keyword.isIdentifierNameES6(node.name.name)) {
523+
} else if (t.isValidIdentifier(node.name.name, false)) {
525524
node.name.type = "Identifier";
526525
} else {
527526
node.name = t.stringLiteral(node.name.name);

packages/babel-helper-builder-react-jsx/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
"main": "lib/index.js",
1111
"dependencies": {
1212
"@babel/helper-annotate-as-pure": "^7.8.3",
13-
"@babel/types": "^7.8.3",
14-
"esutils": "^2.0.0"
13+
"@babel/types": "^7.8.3"
1514
}
1615
}

packages/babel-helper-builder-react-jsx/src/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import esutils from "esutils";
21
import * as t from "@babel/types";
32
import annotateAsPure from "@babel/helper-annotate-as-pure";
43

@@ -57,7 +56,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`,
5756
if (t.isJSXIdentifier(node)) {
5857
if (node.name === "this" && t.isReferenced(node, parent)) {
5958
return t.thisExpression();
60-
} else if (esutils.keyword.isIdentifierNameES6(node.name)) {
59+
} else if (t.isValidIdentifier(node.name, false)) {
6160
node.type = "Identifier";
6261
} else {
6362
return t.stringLiteral(node.name);
@@ -104,7 +103,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`,
104103
node.name = t.stringLiteral(
105104
node.name.namespace.name + ":" + node.name.name.name,
106105
);
107-
} else if (esutils.keyword.isIdentifierNameES6(node.name.name)) {
106+
} else if (t.isValidIdentifier(node.name.name, false)) {
108107
node.name.type = "Identifier";
109108
} else {
110109
node.name = t.stringLiteral(node.name.name);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
src
2+
test
3+
*.log
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# @babel/helper-validator-identifier
2+
3+
> Validate identifier/keywords name
4+
5+
See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/en/next/babel-helper-validator-identifier.html) for more information.
6+
7+
## Install
8+
9+
Using npm:
10+
11+
```sh
12+
npm install --save-dev @babel/helper-validator-identifier
13+
```
14+
15+
or using yarn:
16+
17+
```sh
18+
yarn add @babel/helper-validator-identifier --dev
19+
```
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "@babel/helper-validator-identifier",
3+
"version": "7.9.0",
4+
"description": "Validate identifier/keywords name",
5+
"repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-validator-identifier",
6+
"license": "MIT",
7+
"publishConfig": {
8+
"access": "public"
9+
},
10+
"main": "./lib/index.js",
11+
"exports": "./lib/index.js",
12+
"dependencies": {},
13+
"devDependencies": {
14+
"charcodes": "^0.2.0",
15+
"unicode-13.0.0": "^0.8.0"
16+
}
17+
}

packages/babel-parser/scripts/generate-identifier-regex.js renamed to packages/babel-helper-validator-identifier/scripts/generate-identifier-regex.js

File renamed without changes.

0 commit comments

Comments
 (0)