Compare commits
93 Commits
v7.0.0-rc.
...
v7.1.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fad74959f8 | ||
|
|
2b68181af2 | ||
|
|
9b4b436e1f | ||
|
|
aa33303112 | ||
|
|
bd0c62dc0c | ||
|
|
aac8118b7f | ||
|
|
8897b67f40 | ||
|
|
380f2a0297 | ||
|
|
402bd1cc42 | ||
|
|
6059637f09 | ||
|
|
880fc1f54e | ||
|
|
fc1a52cb75 | ||
|
|
82a0e681ab | ||
|
|
8f5e9e143b | ||
|
|
13798feefb | ||
|
|
9ad8b2bb2c | ||
|
|
d2b559af59 | ||
|
|
252660f248 | ||
|
|
0e7d7cfccc | ||
|
|
53c6c98bdb | ||
|
|
802fc2ac80 | ||
|
|
e372129d00 | ||
|
|
79b2af5997 | ||
|
|
45c28fa785 | ||
|
|
1e1a89ca70 | ||
|
|
1b03906da4 | ||
|
|
7accee9c24 | ||
|
|
7273cf8fe5 | ||
|
|
dad55ef1d6 | ||
|
|
9aec4ad159 | ||
|
|
29a2878973 | ||
|
|
9eef660daa | ||
|
|
d9149aa2f3 | ||
|
|
58017044a3 | ||
|
|
c5279eeca4 | ||
|
|
f6643d1804 | ||
|
|
07fae82a8a | ||
|
|
fc91b94a86 | ||
|
|
d4e23b5b2a | ||
|
|
262787bd92 | ||
|
|
9232e8b405 | ||
|
|
dd985c3be3 | ||
|
|
4beb977f15 | ||
|
|
679e4b8f37 | ||
|
|
fc9becfdf2 | ||
|
|
6893b7e7d2 | ||
|
|
ffc82374d2 | ||
|
|
2921f6cdb1 | ||
|
|
fb66fa6f90 | ||
|
|
eda804da11 | ||
|
|
15f456651a | ||
|
|
9d244ae66b | ||
|
|
04d09cc754 | ||
|
|
5447a40719 | ||
|
|
d45ea2e5ff | ||
|
|
aeefec5f13 | ||
|
|
9a3af17560 | ||
|
|
bcec62c0ac | ||
|
|
90fb82a535 | ||
|
|
8a45fba510 | ||
|
|
079780b432 | ||
|
|
4e64807afc | ||
|
|
814c564c45 | ||
|
|
7a104e3e1d | ||
|
|
b98799557a | ||
|
|
1ac46a256d | ||
|
|
50d3c09883 | ||
|
|
508bfad55a | ||
|
|
130814342a | ||
|
|
e0ee0570be | ||
|
|
edbffda091 | ||
|
|
72ee1816a4 | ||
|
|
e875fc7bc1 | ||
|
|
524d847763 | ||
|
|
5899940156 | ||
|
|
595240f071 | ||
|
|
cada040bec | ||
|
|
1f9b2a5c41 | ||
|
|
39fa102ee8 | ||
|
|
e841ccca34 | ||
|
|
4249dbc8ea | ||
|
|
a7cc3325cd | ||
|
|
023044c1d4 | ||
|
|
22bcfbe469 | ||
|
|
47e05d70f3 | ||
|
|
c5e3b6d4bc | ||
|
|
b04de1196a | ||
|
|
d07cef244e | ||
|
|
6c68ca8e0a | ||
|
|
0e8830f3a8 | ||
|
|
4cdfee768b | ||
|
|
adbf2a15f9 | ||
|
|
ca65781132 |
@@ -1,11 +1,9 @@
|
||||
{
|
||||
"root": true,
|
||||
"extends": "babel",
|
||||
"plugins": ["prettier"],
|
||||
"plugins": ["local-rules", "prettier"],
|
||||
"rules": {
|
||||
"curly": ["error", "multi-line"],
|
||||
"prettier/prettier": "error",
|
||||
"no-case-declarations": "error"
|
||||
"prettier/prettier": "error"
|
||||
},
|
||||
"env": {
|
||||
"node": true
|
||||
@@ -14,8 +12,8 @@
|
||||
{
|
||||
"files": ["packages/*/src/**/*.js", "codemods/*/src/**/*.js"],
|
||||
"rules": {
|
||||
"no-undefined-identifier": "error",
|
||||
"no-deprecated-clone": "error"
|
||||
"local-rules/no-undefined-identifier": "error",
|
||||
"local-rules/no-deprecated-clone": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,6 +1,9 @@
|
||||
.DS_Store
|
||||
/node_modules
|
||||
/packages/*/node_modules
|
||||
/packages/*/LICENSE
|
||||
!/packages/babel-parser/LICENSE
|
||||
!/packages/babel-plugin-transform-object-assign/LICENSE
|
||||
*.log
|
||||
*.cache
|
||||
/build
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
"bracketSpacing": true,
|
||||
"jsxBracketSameLine": false,
|
||||
"tabWidth": 2,
|
||||
"parser": "babylon",
|
||||
"printWidth": 80,
|
||||
"overrides": [{
|
||||
"files": [
|
||||
@@ -16,6 +15,7 @@
|
||||
"**/packages/*/src/**/*.js",
|
||||
"**/packages/*/test/**/*.js"
|
||||
],
|
||||
"parser": "babylon",
|
||||
"options": {
|
||||
"trailingComma": "all"
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
_Note: Gaps between patch versions are faulty, broken or test releases._
|
||||
|
||||
See [CHANGELOG - v4-v6](/.github/CHANGELOG-v4-v6.md) for the v4.x-v6.x changelog.
|
||||
See [CHANGELOG - v4](/.github/CHANGELOG-v4.md), [CHANGELOG - v5](/.github/CHANGELOG-v5.md), and [CHANGELOG - v6](/.github/CHANGELOG-v6.md) for v4.x-v6.x changes.
|
||||
See [CHANGELOG - 6to5](/.github/CHANGELOG-6to5.md) for the pre-4.0.0 version changelog.
|
||||
See [Babylon's CHANGELOG](packages/babylon/CHANGELOG.md) for the Babylon pre-7.0.0-beta.29 version changelog.
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting hzoo, thejameskyle, sebastian, or loganfsmyth on [Slack](https://slack.babeljs.io/). All
|
||||
reported by contacting Henry Zhu <hi@henryzoo.com>, Logan Smyth <loganfsmyth@gmail.com> or one of the other [Babel core team members](https://babeljs.io/team). All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
|
||||
@@ -24,7 +24,7 @@ contributing, please read the
|
||||
## Not sure where to start?
|
||||
|
||||
- If you aren't just making a documentation change, you'll probably want to learn a bit about a few topics.
|
||||
- [ASTs](https://en.wikipedia.org/wiki/Abstract_syntax_tree) (Abstract Syntax Tree): The Babel AST [spec](https://github.com/babel/babel/blob/master/packages/babel-parser/ast/spec.md) is a bit different from [ESTree](https://github.com/estree/estree). The differences are listed [here](https://github.com/babel/babel/tree/master/packages/babel-parser#output).
|
||||
- [ASTs](https://en.wikipedia.org/wiki/Abstract_syntax_tree) (Abstract Syntax Tree): The Babel AST [spec](https://github.com/babel/babel/blob/master/packages/babel-parser/ast/spec.md) is a bit different from [ESTree](https://github.com/estree/estree). The differences are listed [here](https://babeljs.io/docs/en/next/babel-parser.html#output).
|
||||
- Check out [`/doc`](https://github.com/babel/babel/tree/master/doc) for information about Babel's internals
|
||||
- Check out [the Babel Plugin Handbook](https://github.com/thejameskyle/babel-handbook/blob/master/translations/en/plugin-handbook.md#babel-plugin-handbook) - core plugins are written the same way as any other plugin!
|
||||
- Check out [AST Explorer](http://astexplorer.net/#/scUfOmVOG5) to learn more about ASTs or make your own plugin in the browser
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-2018 Sebastian McKenzie <sebmck@gmail.com>
|
||||
Copyright (c) 2014-2018 Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
||||
25
Makefile
25
Makefile
@@ -47,10 +47,13 @@ flow:
|
||||
./node_modules/.bin/flow check --strip-root
|
||||
|
||||
lint:
|
||||
./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --rulesdir="./scripts/eslint_rules"
|
||||
./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe
|
||||
|
||||
fix:
|
||||
./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --fix --rulesdir="./scripts/eslint_rules"
|
||||
fix: fix-json
|
||||
./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --fix
|
||||
|
||||
fix-json:
|
||||
./node_modules/.bin/prettier "{packages,codemod}/*/test/fixtures/**/options.json" --write --loglevel warn
|
||||
|
||||
clean: test-clean
|
||||
rm -rf packages/babel-polyfill/browser*
|
||||
@@ -104,17 +107,25 @@ test-test262-ci: bootstrap test-test262
|
||||
test-test262-update-whitelist:
|
||||
node scripts/tests/test262/run_babel_parser_test262.js --update-whitelist
|
||||
|
||||
publish:
|
||||
git pull --rebase
|
||||
clone-license:
|
||||
./scripts/clone-license.sh
|
||||
|
||||
prepublish-build:
|
||||
make clean-lib
|
||||
rm -rf packages/babel-runtime/helpers
|
||||
rm -rf packages/babel-runtime-corejs2/helpers
|
||||
rm -rf packages/babel-runtime-corejs2/core-js
|
||||
BABEL_ENV=production make build-dist
|
||||
make clone-license
|
||||
|
||||
prepublish:
|
||||
git pull --rebase
|
||||
make prepublish-build
|
||||
make test
|
||||
# not using lerna independent mode atm, so only update packages that have changed since we use ^
|
||||
|
||||
publish: prepublish
|
||||
# --only-explicit-updates
|
||||
./node_modules/.bin/lerna publish --force-publish=* --exact --skip-temp-tag
|
||||
./node_modules/.bin/lerna publish
|
||||
make clean
|
||||
|
||||
bootstrap: clean-all
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<a href="https://medium.com/friendship-dot-js/i-peeked-into-my-node-modules-directory-and-you-wont-believe-what-happened-next-b89f63d21558"><img alt="Business Strategy Status" src="https://img.shields.io/badge/business%20model-flavortown-green.svg"></a>
|
||||
</p>
|
||||
|
||||
Babel is a community-driven project used by many companies and projects, and is maintained by a group of [volunteers](https://babeljs.io/team). If you'd like to help support the future of the project, please consider:
|
||||
Babel (pronounced ["babble"](https://soundcloud.com/sebmck/how-to-pronounce-babel)) is a community-driven project used by many companies and projects, and is maintained by a group of [volunteers](https://babeljs.io/team). If you'd like to help support the future of the project, please consider:
|
||||
|
||||
- Giving developer time on the project. (Message us on [Twitter](https://twitter.com/babeljs) or [Slack](https://slack.babeljs.io/) for guidance!)
|
||||
- Giving funds by becoming a sponsor (see below)!
|
||||
@@ -68,11 +68,14 @@ Become a sponsor and get your logo on our README on Github with a link to your s
|
||||
|
||||
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://www.patreon.com/henryzhu)]
|
||||
|
||||
## Silver
|
||||
|
||||
<a href="https://issue.sh/?utm_medium=github&utm_campaign=babel" target="_blank"><img src="https://user-images.githubusercontent.com/5557143/43912065-c8cdff78-9c33-11e8-829a-0b4166ccc215.png"></a>
|
||||
|
||||
## Bronze
|
||||
|
||||
<a href="http://teamextension.io/" target="_blank"><img src="https://teamextension.io/dist/img/logo/te-logo-compact.png" height="64"></a>
|
||||
<a href="https://webflow.com/" target="_blank"><img src="https://opencollective.com/proxy/images/?src=https%3A%2F%2Fopencollective-production.s3-us-west-1.amazonaws.com%2F4a5024b0-8cf2-11e7-b1a2-b30b1de1463c.png&height=64"></a>
|
||||
<a href="https://issue.sh/?utm_medium=github&utm_campaign=babel" target="_blank"><img src="https://user-images.githubusercontent.com/5557143/43912065-c8cdff78-9c33-11e8-829a-0b4166ccc215.png"></a>
|
||||
<p><a href="https://twitter.com/mikesherov">Mike Sherov</a></p>
|
||||
|
||||
## Intro
|
||||
|
||||
@@ -36,7 +36,7 @@ npm install --save-dev @babel/plugin-codemod-object-assign-to-object-spread
|
||||
|
||||
**.babelrc**
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
{
|
||||
"plugins": ["@babel/plugin-codemod-object-assign-to-object-spread"]
|
||||
}
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
{
|
||||
"name": "@babel/plugin-codemod-object-assign-to-object-spread",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.0.0",
|
||||
"description": "Transforms Object.assign into object spread syntax",
|
||||
"repository": "https://github.com/babel/babel/tree/master/codemods/babel-plugin-codemod-object-assign-to-object-spread",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "lib/index.js",
|
||||
"keywords": [
|
||||
"@babel/codemod",
|
||||
"@babel/plugin"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/plugin-syntax-object-rest-spread": "7.0.0-rc.2"
|
||||
"@babel/plugin-syntax-object-rest-spread": "^7.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.0.0-rc.2",
|
||||
"@babel/helper-plugin-test-runner": "7.0.0-rc.2"
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/helper-plugin-test-runner": "^7.0.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
||||
@@ -34,7 +34,7 @@ npm install --save-dev @babel/plugin-codemod-optional-catch-binding
|
||||
|
||||
**.babelrc**
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
{
|
||||
"plugins": ["@babel/plugin-codemod-optional-catch-binding"]
|
||||
}
|
||||
|
||||
@@ -1,22 +1,25 @@
|
||||
{
|
||||
"name": "@babel/plugin-codemod-optional-catch-binding",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.0.0",
|
||||
"description": "Remove unused catch bindings",
|
||||
"repository": "https://github.com/babel/babel/tree/master/codemods/babel-plugin-codemod-remove-unused-catch-binding",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "lib/index.js",
|
||||
"keywords": [
|
||||
"@babel/codemod",
|
||||
"@babel/plugin"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/plugin-syntax-optional-catch-binding": "7.0.0-rc.2"
|
||||
"@babel/plugin-syntax-optional-catch-binding": "^7.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.0.0-rc.2",
|
||||
"@babel/helper-plugin-test-runner": "7.0.0-rc.2"
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/helper-plugin-test-runner": "^7.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
9
eslint-local-rules.js
Normal file
9
eslint-local-rules.js
Normal file
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
const noDeprecatedClone = require("./scripts/eslint_rules/no-deprecated-clone");
|
||||
const noUndefinedIdentifier = require("./scripts/eslint_rules/no-undefined-identifier");
|
||||
|
||||
module.exports = {
|
||||
"no-deprecated-clone": noDeprecatedClone,
|
||||
"no-undefined-identifier": noUndefinedIdentifier,
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"lerna": "2.11.0",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.1.0",
|
||||
"changelog": {
|
||||
"repo": "babel/babel",
|
||||
"cacheDir": ".changelog",
|
||||
@@ -18,8 +18,11 @@
|
||||
"publish": {
|
||||
"ignore": [
|
||||
"*.md",
|
||||
"*.json",
|
||||
"*.txt",
|
||||
"test/**",
|
||||
"codemods/**"
|
||||
"codemods/**",
|
||||
"package.json"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
33
package.json
33
package.json
@@ -10,19 +10,19 @@
|
||||
"test": "make test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "7.0.0-rc.1",
|
||||
"@babel/core": "7.0.0-rc.1",
|
||||
"@babel/plugin-transform-runtime": "7.0.0-rc.1",
|
||||
"@babel/plugin-proposal-class-properties": "7.0.0-rc.1",
|
||||
"@babel/plugin-proposal-export-namespace-from": "7.0.0-rc.1",
|
||||
"@babel/plugin-proposal-numeric-separator": "7.0.0-rc.1",
|
||||
"@babel/plugin-transform-modules-commonjs": "7.0.0-rc.1",
|
||||
"@babel/preset-env": "7.0.0-rc.1",
|
||||
"@babel/preset-flow": "7.0.0-rc.1",
|
||||
"@babel/register": "7.0.0-rc.1",
|
||||
"@babel/runtime": "7.0.0-rc.1",
|
||||
"@babel/cli": "^7.0.0",
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.0.0",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.0.0",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.0.0",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.0.0",
|
||||
"@babel/plugin-transform-runtime": "^7.0.0",
|
||||
"@babel/preset-env": "^7.0.0",
|
||||
"@babel/preset-flow": "^7.0.0",
|
||||
"@babel/register": "^7.0.0",
|
||||
"@babel/runtime": "^7.0.0",
|
||||
"babel-core": "^7.0.0-0",
|
||||
"babel-eslint": "^8.2.6",
|
||||
"babel-eslint": "^9.0.0",
|
||||
"babel-jest": "^23.4.0",
|
||||
"babel-loader": "8.0.0-beta.4",
|
||||
"babel-plugin-transform-charcodes": "^0.1.0",
|
||||
@@ -33,10 +33,11 @@
|
||||
"derequire": "^2.0.2",
|
||||
"enhanced-resolve": "^3.0.0",
|
||||
"eslint": "^5.3.0",
|
||||
"eslint-config-babel": "^7.0.2",
|
||||
"eslint-config-babel": "^8.0.0",
|
||||
"eslint-plugin-flowtype": "^2.50.0",
|
||||
"eslint-plugin-local-rules": "0.1.0",
|
||||
"eslint-plugin-prettier": "^2.6.2",
|
||||
"flow-bin": "^0.79.0",
|
||||
"flow-bin": "^0.80.0",
|
||||
"graceful-fs": "^4.1.11",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-babel": "^8.0.0-beta.2",
|
||||
@@ -72,12 +73,12 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6.9.0 <= 11.0.0-0",
|
||||
"npm": ">= 2.x <= 5.x",
|
||||
"npm": ">= 3.x <= 6.x",
|
||||
"yarn": ">=0.27.5 || >=1.0.0-20170811"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.js": [
|
||||
"eslint --format=codeframe --rulesdir='./scripts/eslint_rules'"
|
||||
"eslint --format=codeframe"
|
||||
]
|
||||
},
|
||||
"jest": {
|
||||
|
||||
@@ -13,10 +13,10 @@ A monorepo, muhahahahahaha. See the [monorepo design doc](/doc/design/monorepo.m
|
||||
|
||||
| Package | Version | Dependencies |
|
||||
|--------|-------|------------|
|
||||
| [`@babel/core`](/packages/babel-core) | [](https://www.npmjs.com/package/@babel/core) | [](https://david-dm.org/babel/babel?path=packages/babel-core) |
|
||||
| [`@babel/parser`](/packages/babel-parser) | [](https://www.npmjs.com/package/@babel/parser) | [](https://david-dm.org/babel/babel?path=packages/babel-parser) |
|
||||
| [`@babel/traverse`](/packages/babel-traverse) | [](https://www.npmjs.com/package/@babel/traverse) | [](https://david-dm.org/babel/babel?path=packages/babel-traverse) |
|
||||
| [`@babel/generator`](/packages/babel-generator) | [](https://www.npmjs.com/package/@babel/generator) | [](https://david-dm.org/babel/babel?path=packages/babel-generator) |
|
||||
| [`@babel/core`](/packages/babel-core) | [](https://www.npmjs.com/package/@babel/core) | [](https://david-dm.org/babel/babel?path=packages/babel-core) |
|
||||
| [`@babel/parser`](/packages/babel-parser) | [](https://www.npmjs.com/package/@babel/parser) | [](https://david-dm.org/babel/babel?path=packages/babel-parser) |
|
||||
| [`@babel/traverse`](/packages/babel-traverse) | [](https://www.npmjs.com/package/@babel/traverse) | [](https://david-dm.org/babel/babel?path=packages/babel-traverse) |
|
||||
| [`@babel/generator`](/packages/babel-generator) | [](https://www.npmjs.com/package/@babel/generator) | [](https://david-dm.org/babel/babel?path=packages/babel-generator) |
|
||||
|
||||
[`@babel/core`](/packages/babel-core) is the Babel compiler itself; it exposes the `babel.transform` method, where `transformedCode = transform(src).code`.
|
||||
|
||||
@@ -36,14 +36,14 @@ Check out the [`babel-handbook`](https://github.com/thejameskyle/babel-handbook/
|
||||
|
||||
| Package | Version | Dependencies |
|
||||
|--------|-------|------------|
|
||||
| [`@babel/cli`](/packages/babel-cli) | [](https://www.npmjs.com/package/@babel/cli) | [](https://david-dm.org/babel/babel?path=packages/babel-cli) |
|
||||
| [`@babel/types`](/packages/babel-types) | [](https://www.npmjs.com/package/@babel/types) | [](https://david-dm.org/babel/babel?path=packages/babel-types) |
|
||||
| [`@babel/polyfill`](/packages/babel-polyfill) | [](https://www.npmjs.com/package/@babel/polyfill) | [](https://david-dm.org/babel/babel?path=packages/babel-polyfill) |
|
||||
| [`@babel/runtime`](/packages/babel-runtime) | [](https://www.npmjs.com/package/@babel/runtime) | [](https://david-dm.org/babel/babel?path=packages/babel-runtime) |
|
||||
| [`@babel/register`](/packages/babel-register) | [](https://www.npmjs.com/package/@babel/register) | [](https://david-dm.org/babel/babel?path=packages/babel-register) |
|
||||
| [`@babel/template`](/packages/babel-template) | [](https://www.npmjs.com/package/@babel/template) | [](https://david-dm.org/babel/babel?path=packages/babel-template) |
|
||||
| [`@babel/helpers`](/packages/babel-helpers) | [](https://www.npmjs.com/package/@babel/helpers) | [](https://david-dm.org/babel/babel?path=packages/babel-helpers) |
|
||||
| [`@babel/code-frame`](/packages/babel-code-frame) | [](https://www.npmjs.com/package/@babel/code-frame) | [](https://david-dm.org/babel/babel?path=packages/babel-code-frame) |
|
||||
| [`@babel/cli`](/packages/babel-cli) | [](https://www.npmjs.com/package/@babel/cli) | [](https://david-dm.org/babel/babel?path=packages/babel-cli) |
|
||||
| [`@babel/types`](/packages/babel-types) | [](https://www.npmjs.com/package/@babel/types) | [](https://david-dm.org/babel/babel?path=packages/babel-types) |
|
||||
| [`@babel/polyfill`](/packages/babel-polyfill) | [](https://www.npmjs.com/package/@babel/polyfill) | [](https://david-dm.org/babel/babel?path=packages/babel-polyfill) |
|
||||
| [`@babel/runtime`](/packages/babel-runtime) | [](https://www.npmjs.com/package/@babel/runtime) | [](https://david-dm.org/babel/babel?path=packages/babel-runtime) |
|
||||
| [`@babel/register`](/packages/babel-register) | [](https://www.npmjs.com/package/@babel/register) | [](https://david-dm.org/babel/babel?path=packages/babel-register) |
|
||||
| [`@babel/template`](/packages/babel-template) | [](https://www.npmjs.com/package/@babel/template) | [](https://david-dm.org/babel/babel?path=packages/babel-template) |
|
||||
| [`@babel/helpers`](/packages/babel-helpers) | [](https://www.npmjs.com/package/@babel/helpers) | [](https://david-dm.org/babel/babel?path=packages/babel-helpers) |
|
||||
| [`@babel/code-frame`](/packages/babel-code-frame) | [](https://www.npmjs.com/package/@babel/code-frame) | [](https://david-dm.org/babel/babel?path=packages/babel-code-frame) |
|
||||
|
||||
- [`@babel/cli`](/packages/babel-cli) is the CLI tool that runs `@babel/core` and helps with outputting to a directory, a file, stdout and more (also includes `@babel/node` cli). Check out the [docs](https://babeljs.io/docs/usage/cli/).
|
||||
- [`@babel/types`](/packages/babel-types) is used to validate, build and change AST nodes.
|
||||
@@ -62,7 +62,7 @@ The transformer[s] used in Babel are the independent pieces of code that transfo
|
||||
|
||||
| Package | Version | Dependencies | Description |
|
||||
|--------|-------|------------|---|
|
||||
| [`@babel/preset-env`](/packages/babel-preset-env) | [](https://www.npmjs.com/package/@babel/preset-env) | [](https://david-dm.org/babel/babel?path=packages/babel-preset-env) | automatically determines plugins and polyfills you need based on your supported environments |
|
||||
| [`@babel/preset-env`](/packages/babel-preset-env) | [](https://www.npmjs.com/package/@babel/preset-env) | [](https://david-dm.org/babel/babel?path=packages/babel-preset-env) | automatically determines plugins and polyfills you need based on your supported environments |
|
||||
|
||||
> You can find community maintained presets on [npm](https://www.npmjs.com/search?q=babel-preset)
|
||||
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
{
|
||||
"name": "@babel/cli",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.1.0",
|
||||
"description": "Babel command line.",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-cli",
|
||||
"keywords": [
|
||||
"6to5",
|
||||
@@ -23,7 +26,7 @@
|
||||
"lodash": "^4.17.10",
|
||||
"mkdirp": "^0.5.1",
|
||||
"output-file-sync": "^2.0.0",
|
||||
"slash": "^1.0.0",
|
||||
"slash": "^2.0.0",
|
||||
"source-map": "^0.5.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
@@ -33,8 +36,8 @@
|
||||
"@babel/core": "^7.0.0-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.0.0-rc.2",
|
||||
"@babel/helper-fixtures": "7.0.0-rc.2"
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/helper-fixtures": "^7.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"babel": "./bin/babel.js",
|
||||
|
||||
@@ -28,6 +28,11 @@ commander.option(
|
||||
"The name of the 'env' to use when loading configs and plugins. " +
|
||||
"Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'.",
|
||||
);
|
||||
commander.option(
|
||||
"--root-mode [mode]",
|
||||
"The project-root resolution mode. " +
|
||||
"One of 'root' (the default), 'upward', or 'upward-optional'.",
|
||||
);
|
||||
|
||||
// Basic file input configuration.
|
||||
commander.option("--source-type [script|module]", "");
|
||||
@@ -162,20 +167,20 @@ export default function parseArgv(args: Array<string>) {
|
||||
|
||||
filenames.forEach(function(filename) {
|
||||
if (!fs.existsSync(filename)) {
|
||||
errors.push(filename + " doesn't exist");
|
||||
errors.push(filename + " does not exist");
|
||||
}
|
||||
});
|
||||
|
||||
if (commander.outDir && !filenames.length) {
|
||||
errors.push("filenames required for --out-dir");
|
||||
errors.push("--out-dir requires filenames");
|
||||
}
|
||||
|
||||
if (commander.outFile && commander.outDir) {
|
||||
errors.push("cannot have --out-file and --out-dir");
|
||||
errors.push("--out-file and --out-dir cannot be used together");
|
||||
}
|
||||
|
||||
if (commander.relative && !commander.outDir) {
|
||||
errors.push("output directory required for --relative");
|
||||
errors.push("--relative requires --out-dir usage");
|
||||
}
|
||||
|
||||
if (commander.watch) {
|
||||
@@ -207,7 +212,10 @@ export default function parseArgv(args: Array<string>) {
|
||||
}
|
||||
|
||||
if (errors.length) {
|
||||
console.error(errors.join(". "));
|
||||
console.error("babel:");
|
||||
errors.forEach(function(e) {
|
||||
console.error(" " + e);
|
||||
});
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
@@ -217,6 +225,7 @@ export default function parseArgv(args: Array<string>) {
|
||||
babelOptions: {
|
||||
presets: opts.presets,
|
||||
plugins: opts.plugins,
|
||||
rootMode: opts.rootMode,
|
||||
configFile: opts.configFile,
|
||||
envName: opts.envName,
|
||||
sourceType: opts.sourceType,
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
"args": [
|
||||
"src",
|
||||
"--out-dir", "lib",
|
||||
"--out-dir",
|
||||
"lib",
|
||||
"--copy-files",
|
||||
"--include-dotfiles",
|
||||
"--ignore", "src/foo",
|
||||
"--ignore",
|
||||
"src/foo",
|
||||
"--verbose"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
"args": [
|
||||
"src",
|
||||
"--out-dir", "lib",
|
||||
"--out-dir",
|
||||
"lib",
|
||||
"--copy-files",
|
||||
"--include-dotfiles",
|
||||
"--only", "src/foo",
|
||||
"--only",
|
||||
"src/foo",
|
||||
"--verbose"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
{
|
||||
"args": ["src", "--out-dir", "lib", "--copy-files", "--include-dotfiles", "--verbose"]
|
||||
"args": [
|
||||
"src",
|
||||
"--out-dir",
|
||||
"lib",
|
||||
"--copy-files",
|
||||
"--include-dotfiles",
|
||||
"--verbose"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
"args": [
|
||||
"src",
|
||||
"--out-dir", "lib",
|
||||
"--out-dir",
|
||||
"lib",
|
||||
"--copy-files",
|
||||
"--ignore", "src/foo/*",
|
||||
"--ignore",
|
||||
"src/foo/*",
|
||||
"--verbose"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
"args": [
|
||||
"src",
|
||||
"--out-dir", "lib",
|
||||
"--out-dir",
|
||||
"lib",
|
||||
"--copy-files",
|
||||
"--only", "src/foo/*",
|
||||
"--only",
|
||||
"src/foo/*",
|
||||
"--verbose"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"args": ["--source-maps", "--out-file", "test.js"]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"args": ["--source-maps", "inline"]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
arr.map(function (x) {
|
||||
return x * x;
|
||||
});
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUM7U0FBSSxDQUFDLEdBQUcsQ0FBQztDQUFBLENBQUMsQ0FBQyIsImZpbGUiOiJzdGRvdXQiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIHgpOyJdfQ==
|
||||
3
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/bar/bar.js
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/bar/bar.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
class Test {
|
||||
|
||||
}
|
||||
1
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/foo.js
vendored
Normal file
1
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/in-files/src/foo.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
arr.map(x => x * MULTIPLIER);
|
||||
3
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["src", "--out-dir", "lib", "--out-file", "compiled.js"]
|
||||
}
|
||||
2
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/stderr.txt
vendored
Normal file
2
packages/babel-cli/test/fixtures/babel/dir --out-dir --out-file/stderr.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
babel:
|
||||
--out-file and --out-dir cannot be used together
|
||||
3
packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--out-dir", "lib"]
|
||||
}
|
||||
2
packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/stderr.txt
vendored
Normal file
2
packages/babel-cli/test/fixtures/babel/dir --out-dir no filenames/stderr.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
babel:
|
||||
--out-dir requires filenames
|
||||
@@ -0,0 +1,3 @@
|
||||
class Test {
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
arr.map(x => x * MULTIPLIER);
|
||||
3
packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["src", "--skip-initial-build", "--out-dir", "lib"]
|
||||
}
|
||||
2
packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/stderr.txt
vendored
Normal file
2
packages/babel-cli/test/fixtures/babel/dir --skip-initial-build no --watch/stderr.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
babel:
|
||||
--skip-initial-build requires --watch
|
||||
@@ -0,0 +1,3 @@
|
||||
class Test {
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
arr.map(x => x * MULTIPLIER);
|
||||
3
packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["src", "--watch"]
|
||||
}
|
||||
2
packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/stderr.txt
vendored
Normal file
2
packages/babel-cli/test/fixtures/babel/dir --watch no --out-dir no --out-file/stderr.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
babel:
|
||||
--watch requires --out-file or --out-dir
|
||||
@@ -1 +1 @@
|
||||
filenames required for --out-dir
|
||||
--out-dir requires filenames
|
||||
|
||||
@@ -1 +1 @@
|
||||
cannot have --out-file and --out-dir
|
||||
--out-file and --out-dir cannot be used together
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"args": ["--relative"],
|
||||
"args": ["--relative", "--no-babelrc"],
|
||||
"stderrContains": true
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
output directory required for --relative
|
||||
--relative requires --out-dir usage
|
||||
|
||||
@@ -1 +1 @@
|
||||
foo.json doesn't exist
|
||||
foo.json does not exist
|
||||
|
||||
1
packages/babel-cli/test/fixtures/babel/filename --watch no filenames/in-files/script.js
vendored
Normal file
1
packages/babel-cli/test/fixtures/babel/filename --watch no filenames/in-files/script.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
arr.map(x => x * MULTIPLIER);
|
||||
3
packages/babel-cli/test/fixtures/babel/filename --watch no filenames/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/filename --watch no filenames/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--watch", "--out-file", "out.js", "--no-babelrc"]
|
||||
}
|
||||
2
packages/babel-cli/test/fixtures/babel/filename --watch no filenames/stderr.txt
vendored
Normal file
2
packages/babel-cli/test/fixtures/babel/filename --watch no filenames/stderr.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
babel:
|
||||
--watch requires filenames
|
||||
3
packages/babel-cli/test/fixtures/babel/filename does not exist/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/filename does not exist/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["index.js"]
|
||||
}
|
||||
2
packages/babel-cli/test/fixtures/babel/filename does not exist/stderr.txt
vendored
Normal file
2
packages/babel-cli/test/fixtures/babel/filename does not exist/stderr.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
babel:
|
||||
index.js does not exist
|
||||
@@ -1,3 +1,10 @@
|
||||
{
|
||||
"args": ["script.js", "script2.js", "--source-maps", "inline", "--out-file", "script3.js"]
|
||||
"args": [
|
||||
"script.js",
|
||||
"script2.js",
|
||||
"--source-maps",
|
||||
"inline",
|
||||
"--out-file",
|
||||
"script3.js"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
{
|
||||
"args": ["script.js", "script2.js", "--source-maps", "--out-file", "script3.js"]
|
||||
"args": [
|
||||
"script.js",
|
||||
"script2.js",
|
||||
"--source-maps",
|
||||
"--out-file",
|
||||
"script3.js"
|
||||
]
|
||||
}
|
||||
|
||||
3
packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/stdin --out-file --source-maps/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--source-maps", "--out-file", "test.js", "--no-babelrc"]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["stdin"],"names":[],"mappings":";;AAAA,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC;SAAI,CAAC,GAAG,CAAC;CAAA,CAAC,CAAC","file":"test.js","sourcesContent":["arr.map(x => x * x);"]}
|
||||
{"version":3,"sources":["stdin"],"names":[],"mappings":";;AAAA,GAAG,CAAC,GAAJ,CAAQ,UAAA,CAAC;AAAA,SAAI,CAAC,GAAG,CAAR;AAAA,CAAT","file":"test.js","sourcesContent":["arr.map(x => x * x);"]}
|
||||
3
packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/options.json
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--source-maps", "inline", "--no-babelrc"]
|
||||
}
|
||||
8
packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdout.txt
vendored
Normal file
8
packages/babel-cli/test/fixtures/babel/stdin --source-maps inline/stdout.txt
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
arr.map(function (x) {
|
||||
return x * x;
|
||||
});
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbImFyciIsIm1hcCIsIngiXSwibWFwcGluZ3MiOiI7O0FBQUFBLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFVBQUFDLENBQUM7QUFBQSxTQUFJQSxDQUFDLEdBQUdBLENBQVI7QUFBQSxDQUFUIiwic291cmNlc0NvbnRlbnQiOlsiYXJyLm1hcCh4ID0+IHggKiB4KTsiXX0=
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzdGRvdXQifQ==
|
||||
@@ -1,14 +1,17 @@
|
||||
{
|
||||
"name": "@babel/code-frame",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.0.0",
|
||||
"description": "Generate errors that contain a code frame that point to source locations.",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame",
|
||||
"main": "lib/index.js",
|
||||
"dependencies": {
|
||||
"@babel/highlight": "7.0.0-rc.2"
|
||||
"@babel/highlight": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chalk": "^2.0.0",
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@babel/core",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.1.0",
|
||||
"description": "Babel compiler core.",
|
||||
"main": "lib/index.js",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-core",
|
||||
"keywords": [
|
||||
"6to5",
|
||||
@@ -30,13 +33,13 @@
|
||||
"./lib/transform-file.js": "./lib/transform-file-browser.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "7.0.0-rc.2",
|
||||
"@babel/generator": "7.0.0-rc.2",
|
||||
"@babel/helpers": "7.0.0-rc.2",
|
||||
"@babel/parser": "7.0.0-rc.2",
|
||||
"@babel/template": "7.0.0-rc.2",
|
||||
"@babel/traverse": "7.0.0-rc.2",
|
||||
"@babel/types": "7.0.0-rc.2",
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"@babel/generator": "^7.0.0",
|
||||
"@babel/helpers": "^7.1.0",
|
||||
"@babel/parser": "^7.1.0",
|
||||
"@babel/template": "^7.1.0",
|
||||
"@babel/traverse": "^7.1.0",
|
||||
"@babel/types": "^7.0.0",
|
||||
"convert-source-map": "^1.1.0",
|
||||
"debug": "^3.1.0",
|
||||
"json5": "^0.5.0",
|
||||
@@ -46,7 +49,7 @@
|
||||
"source-map": "^0.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/helper-transform-fixture-test-runner": "7.0.0-rc.2",
|
||||
"@babel/register": "7.0.0-rc.2"
|
||||
"@babel/helper-transform-fixture-test-runner": "^7.0.0",
|
||||
"@babel/register": "^7.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,6 +190,7 @@ export function buildRootChain(
|
||||
({ ignore: ignoreFile, config: babelrcFile } = findRelativeConfig(
|
||||
pkgData,
|
||||
context.envName,
|
||||
context.caller,
|
||||
));
|
||||
|
||||
if (
|
||||
@@ -541,7 +542,7 @@ function normalizeOptions(opts: ValidatedOptions): ValidatedOptions {
|
||||
|
||||
// "sourceMap" is just aliased to sourceMap, so copy it over as
|
||||
// we merge the options together.
|
||||
if (options.sourceMap) {
|
||||
if (options.hasOwnProperty("sourceMap")) {
|
||||
options.sourceMaps = options.sourceMap;
|
||||
delete options.sourceMap;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,21 @@ const BABELRC_FILENAME = ".babelrc";
|
||||
const BABELRC_JS_FILENAME = ".babelrc.js";
|
||||
const BABELIGNORE_FILENAME = ".babelignore";
|
||||
|
||||
export function findConfigUpwards(rootDir: string): string | null {
|
||||
let dirname = rootDir;
|
||||
while (true) {
|
||||
if (fs.existsSync(path.join(dirname, BABEL_CONFIG_JS_FILENAME))) {
|
||||
return dirname;
|
||||
}
|
||||
|
||||
const nextDir = path.dirname(dirname);
|
||||
if (dirname === nextDir) break;
|
||||
dirname = nextDir;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
export function findRelativeConfig(
|
||||
packageData: FilePackageData,
|
||||
envName: string,
|
||||
|
||||
@@ -11,6 +11,12 @@ import type { CallerMetadata } from "../validation/options";
|
||||
|
||||
export type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };
|
||||
|
||||
export function findConfigUpwards(
|
||||
rootDir: string, // eslint-disable-line no-unused-vars
|
||||
): string | null {
|
||||
return null;
|
||||
}
|
||||
|
||||
export function findPackageData(filepath: string): FilePackageData {
|
||||
return {
|
||||
filepath,
|
||||
|
||||
@@ -10,6 +10,7 @@ import typeof * as indexType from "./index";
|
||||
export { findPackageData } from "./package";
|
||||
|
||||
export {
|
||||
findConfigUpwards,
|
||||
findRelativeConfig,
|
||||
findRootConfig,
|
||||
loadConfig,
|
||||
|
||||
@@ -6,9 +6,43 @@ import { mergeOptions } from "./util";
|
||||
import { createItemFromDescriptor } from "./item";
|
||||
import { buildRootChain, type ConfigContext } from "./config-chain";
|
||||
import { getEnv } from "./helpers/environment";
|
||||
import { validate, type ValidatedOptions } from "./validation/options";
|
||||
import {
|
||||
validate,
|
||||
type ValidatedOptions,
|
||||
type RootMode,
|
||||
} from "./validation/options";
|
||||
|
||||
import type { ConfigFile, IgnoreFile } from "./files";
|
||||
import { findConfigUpwards, type ConfigFile, type IgnoreFile } from "./files";
|
||||
|
||||
function resolveRootMode(rootDir: string, rootMode: RootMode): string {
|
||||
switch (rootMode) {
|
||||
case "root":
|
||||
return rootDir;
|
||||
|
||||
case "upward-optional": {
|
||||
const upwardRootDir = findConfigUpwards(rootDir);
|
||||
return upwardRootDir === null ? rootDir : upwardRootDir;
|
||||
}
|
||||
|
||||
case "upward": {
|
||||
const upwardRootDir = findConfigUpwards(rootDir);
|
||||
if (upwardRootDir !== null) return upwardRootDir;
|
||||
|
||||
throw Object.assign(
|
||||
(new Error(
|
||||
`Babel was run with rootMode:"upward" but a root could not ` +
|
||||
`be found when searching upward from "${rootDir}"`,
|
||||
): any),
|
||||
{
|
||||
code: "BABEL_ROOT_NOT_FOUND",
|
||||
dirname: rootDir,
|
||||
},
|
||||
);
|
||||
}
|
||||
default:
|
||||
throw new Error(`Assertion failure - unknown rootMode value`);
|
||||
}
|
||||
}
|
||||
|
||||
export default function loadPrivatePartialConfig(
|
||||
inputOpts: mixed,
|
||||
@@ -28,9 +62,18 @@ export default function loadPrivatePartialConfig(
|
||||
|
||||
const args = inputOpts ? validate("arguments", inputOpts) : {};
|
||||
|
||||
const { envName = getEnv(), cwd = ".", root: rootDir = ".", caller } = args;
|
||||
const {
|
||||
envName = getEnv(),
|
||||
cwd = ".",
|
||||
root: rootDir = ".",
|
||||
rootMode = "root",
|
||||
caller,
|
||||
} = args;
|
||||
const absoluteCwd = path.resolve(cwd);
|
||||
const absoluteRootDir = path.resolve(absoluteCwd, rootDir);
|
||||
const absoluteRootDir = resolveRootMode(
|
||||
path.resolve(absoluteCwd, rootDir),
|
||||
rootMode,
|
||||
);
|
||||
|
||||
const context: ConfigContext = {
|
||||
filename:
|
||||
|
||||
@@ -15,6 +15,7 @@ import type {
|
||||
RootInputSourceMapOption,
|
||||
NestingPath,
|
||||
CallerMetadata,
|
||||
RootMode,
|
||||
} from "./options";
|
||||
|
||||
export type ValidatorSet = {
|
||||
@@ -60,6 +61,20 @@ type AccessPath = $ReadOnly<{
|
||||
}>;
|
||||
type GeneralPath = OptionPath | AccessPath;
|
||||
|
||||
export function assertRootMode(loc: OptionPath, value: mixed): RootMode | void {
|
||||
if (
|
||||
value !== undefined &&
|
||||
value !== "root" &&
|
||||
value !== "upward" &&
|
||||
value !== "upward-optional"
|
||||
) {
|
||||
throw new Error(
|
||||
`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`,
|
||||
);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
export function assertSourceMaps(
|
||||
loc: OptionPath,
|
||||
value: mixed,
|
||||
|
||||
@@ -19,6 +19,7 @@ import {
|
||||
assertConfigFileSearch,
|
||||
assertBabelrcSearch,
|
||||
assertFunction,
|
||||
assertRootMode,
|
||||
assertSourceMaps,
|
||||
assertCompact,
|
||||
assertSourceType,
|
||||
@@ -30,6 +31,9 @@ import {
|
||||
const ROOT_VALIDATORS: ValidatorSet = {
|
||||
cwd: (assertString: Validator<$PropertyType<ValidatedOptions, "cwd">>),
|
||||
root: (assertString: Validator<$PropertyType<ValidatedOptions, "root">>),
|
||||
rootMode: (assertRootMode: Validator<
|
||||
$PropertyType<ValidatedOptions, "rootMode">,
|
||||
>),
|
||||
configFile: (assertConfigFileSearch: Validator<
|
||||
$PropertyType<ValidatedOptions, "configFile">,
|
||||
>),
|
||||
@@ -176,6 +180,7 @@ export type ValidatedOptions = {
|
||||
babelrcRoots?: BabelrcSearch,
|
||||
configFile?: ConfigFileSearch,
|
||||
root?: string,
|
||||
rootMode?: RootMode,
|
||||
code?: boolean,
|
||||
ast?: boolean,
|
||||
inputSourceMap?: RootInputSourceMapOption,
|
||||
@@ -260,6 +265,7 @@ export type SourceMapsOption = boolean | "inline" | "both";
|
||||
export type SourceTypeOption = "module" | "script" | "unambiguous";
|
||||
export type CompactOption = boolean | "auto";
|
||||
export type RootInputSourceMapOption = {} | boolean;
|
||||
export type RootMode = "root" | "upward" | "upward-optional";
|
||||
|
||||
export type OptionsSource =
|
||||
| "arguments"
|
||||
@@ -365,7 +371,7 @@ function throwUnknownError(loc: OptionPath) {
|
||||
// eslint-disable-next-line max-len
|
||||
const unknownOptErr = `Unknown option: ${msg(
|
||||
loc,
|
||||
)}. Check out http://babeljs.io/docs/usage/options/ for more information about options.`;
|
||||
)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`;
|
||||
|
||||
throw new ReferenceError(unknownOptErr);
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ export default class File {
|
||||
* helper exists, but was not available for the full given range, it will be
|
||||
* considered unavailable.
|
||||
*/
|
||||
availableHelper(name: string, versionRange: ?string) {
|
||||
availableHelper(name: string, versionRange: ?string): boolean {
|
||||
let minVersion;
|
||||
try {
|
||||
minVersion = helpers.minVersion(name);
|
||||
@@ -166,10 +166,30 @@ export default class File {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeof versionRange !== "string") return true;
|
||||
|
||||
// semver.intersects() has some surprising behavior with comparing ranges
|
||||
// with preprelease versions. We add '^' to ensure that we are always
|
||||
// comparing ranges with ranges, which sidesteps this logic.
|
||||
// For example:
|
||||
//
|
||||
// semver.intersects(`<7.0.1`, "7.0.0-beta.0") // false - surprising
|
||||
// semver.intersects(`<7.0.1`, "^7.0.0-beta.0") // true - expected
|
||||
//
|
||||
// This is because the first falls back to
|
||||
//
|
||||
// semver.satisfies("7.0.0-beta.0", `<7.0.1`) // false - surprising
|
||||
//
|
||||
// and this fails because a prerelease version can only satisfy a range
|
||||
// if it is a prerelease within the same major/minor/patch range.
|
||||
//
|
||||
// Note: If this is found to have issues, please also revist the logic in
|
||||
// transform-runtime's definitions.js file.
|
||||
if (semver.valid(versionRange)) versionRange = `^${versionRange}`;
|
||||
|
||||
return (
|
||||
typeof versionRange !== "string" ||
|
||||
(!semver.intersects(`<${minVersion}`, versionRange) &&
|
||||
!semver.intersects(`>=8.0.0`, versionRange))
|
||||
!semver.intersects(`<${minVersion}`, versionRange) &&
|
||||
!semver.intersects(`>=8.0.0`, versionRange)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -91,14 +91,18 @@ export default function normalizeFile(
|
||||
});
|
||||
}
|
||||
|
||||
function parser(pluginPasses, options, code) {
|
||||
function parser(
|
||||
pluginPasses: PluginPasses,
|
||||
{ parserOpts, highlightCode = true, filename = "unknown" }: Object,
|
||||
code: string,
|
||||
) {
|
||||
try {
|
||||
const results = [];
|
||||
for (const plugins of pluginPasses) {
|
||||
for (const plugin of plugins) {
|
||||
const { parserOverride } = plugin;
|
||||
if (parserOverride) {
|
||||
const ast = parserOverride(code, options.parserOpts, parse);
|
||||
const ast = parserOverride(code, parserOpts, parse);
|
||||
|
||||
if (ast !== undefined) results.push(ast);
|
||||
}
|
||||
@@ -106,7 +110,7 @@ function parser(pluginPasses, options, code) {
|
||||
}
|
||||
|
||||
if (results.length === 0) {
|
||||
return parse(code, options.parserOpts);
|
||||
return parse(code, parserOpts);
|
||||
} else if (results.length === 1) {
|
||||
if (typeof results[0].then === "function") {
|
||||
throw new Error(
|
||||
@@ -136,15 +140,16 @@ function parser(pluginPasses, options, code) {
|
||||
column: loc.column + 1,
|
||||
},
|
||||
},
|
||||
options,
|
||||
{
|
||||
highlightCode,
|
||||
},
|
||||
);
|
||||
if (missingPlugin) {
|
||||
err.message =
|
||||
`${options.filename || "unknown"}: ` +
|
||||
`${filename}: ` +
|
||||
generateMissingPluginMessage(missingPlugin[0], loc, codeFrame);
|
||||
} else {
|
||||
err.message =
|
||||
`${options.filename || "unknown"}: ${err.message}\n\n` + codeFrame;
|
||||
err.message = `${filename}: ${err.message}\n\n` + codeFrame;
|
||||
}
|
||||
err.code = "BABEL_PARSE_ERROR";
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
{
|
||||
"plugins": ["transform-classes", "external-helpers", "transform-block-scoping"]
|
||||
"plugins": [
|
||||
"transform-classes",
|
||||
"external-helpers",
|
||||
"transform-block-scoping"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
{
|
||||
"plugins": ["syntax-flow", "transform-flow-strip-types", "transform-parameters", "transform-block-scoping"]
|
||||
"plugins": [
|
||||
"syntax-flow",
|
||||
"transform-flow-strip-types",
|
||||
"transform-parameters",
|
||||
"transform-block-scoping"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
{
|
||||
"plugins": ["transform-parameters", "transform-arrow-functions", "transform-block-scoping"]
|
||||
"plugins": [
|
||||
"transform-parameters",
|
||||
"transform-arrow-functions",
|
||||
"transform-block-scoping"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
{
|
||||
"compact": false,
|
||||
"presets": [
|
||||
"env"
|
||||
],
|
||||
"plugins": [
|
||||
"external-helpers",
|
||||
"proposal-object-rest-spread"
|
||||
]
|
||||
"presets": ["env"],
|
||||
"plugins": ["external-helpers", "proposal-object-rest-spread"]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
{
|
||||
"plugins": ["transform-destructuring", "transform-parameters", "transform-block-scoping", "transform-regenerator"]
|
||||
"plugins": [
|
||||
"transform-destructuring",
|
||||
"transform-parameters",
|
||||
"transform-block-scoping",
|
||||
"transform-regenerator"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
{
|
||||
"plugins": ["external-helpers", "transform-classes", "transform-block-scoping"]
|
||||
"plugins": [
|
||||
"external-helpers",
|
||||
"transform-classes",
|
||||
"transform-block-scoping"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
{
|
||||
"plugins": [
|
||||
"transform-modules-commonjs"
|
||||
]
|
||||
"plugins": ["transform-modules-commonjs"]
|
||||
}
|
||||
|
||||
@@ -1,24 +1,27 @@
|
||||
{
|
||||
"name": "@babel/generator",
|
||||
"version": "7.0.0-rc.2",
|
||||
"version": "7.0.0",
|
||||
"description": "Turns an AST into code.",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-generator",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/types": "7.0.0-rc.2",
|
||||
"@babel/types": "^7.0.0",
|
||||
"jsesc": "^2.5.1",
|
||||
"lodash": "^4.17.10",
|
||||
"source-map": "^0.5.0",
|
||||
"trim-right": "^1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/helper-fixtures": "7.0.0-rc.2",
|
||||
"@babel/parser": "7.0.0-rc.2"
|
||||
"@babel/helper-fixtures": "^7.0.0",
|
||||
"@babel/parser": "^7.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["jsx"] }
|
||||
{ "plugins": ["jsx"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["objectRestSpread"] }
|
||||
{ "plugins": ["objectRestSpread"] }
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
"plugins": [
|
||||
["decorators", { "decoratorsBeforeExport": false }]
|
||||
],
|
||||
"plugins": [["decorators", { "decoratorsBeforeExport": false }]],
|
||||
"decoratorsBeforeExport": false
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
"plugins": [
|
||||
["decorators", { "decoratorsBeforeExport": false }]
|
||||
],
|
||||
"plugins": [["decorators", { "decoratorsBeforeExport": false }]],
|
||||
"decoratorsBeforeExport": true
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
"plugins": [
|
||||
["decorators", { "decoratorsBeforeExport": true }]
|
||||
],
|
||||
"plugins": [["decorators", { "decoratorsBeforeExport": true }]],
|
||||
"decoratorsBeforeExport": false
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
"plugins": [
|
||||
["decorators", { "decoratorsBeforeExport": true }]
|
||||
],
|
||||
"plugins": [["decorators", { "decoratorsBeforeExport": true }]],
|
||||
"decoratorsBeforeExport": true
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["classProperties", "flow"] }
|
||||
{ "plugins": ["classProperties", "flow"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["flow"] }
|
||||
{ "plugins": ["flow"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["classPrivateProperties", "flow"] }
|
||||
{ "plugins": ["classPrivateProperties", "flow"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["flow"] }
|
||||
{ "plugins": ["flow"] }
|
||||
|
||||
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js
vendored
Normal file
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import foo from "foo";
|
||||
|
||||
foo: {
|
||||
break foo;
|
||||
}
|
||||
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js
vendored
Normal file
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import foo from "foo";
|
||||
|
||||
foo: {
|
||||
break foo;
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["doExpressions"] }
|
||||
{ "plugins": ["doExpressions"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["bigInt"] }
|
||||
{ "plugins": ["bigInt"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["functionBind"] }
|
||||
{ "plugins": ["functionBind"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["doExpressions"] }
|
||||
{ "plugins": ["doExpressions"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["dynamicImport"] }
|
||||
{ "plugins": ["dynamicImport"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["jsx" ] }
|
||||
{ "plugins": ["jsx"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["jsx" ] }
|
||||
{ "plugins": ["jsx"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["jsx" ] }
|
||||
{ "plugins": ["jsx"] }
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "plugins": ["jsx" ] }
|
||||
{ "plugins": ["jsx"] }
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user