Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9a7f4e690 | ||
|
|
fa5ec75c43 | ||
|
|
b961d39a4d | ||
|
|
759ff4d6df | ||
|
|
9e65472377 | ||
|
|
25f040caa4 | ||
|
|
0dbf99bedb | ||
|
|
f48b47c1f7 | ||
|
|
406a65c894 | ||
|
|
075a50242d | ||
|
|
c777e81e06 | ||
|
|
d0519fa907 | ||
|
|
019fbca3f6 | ||
|
|
24dde2e8e8 | ||
|
|
bff79e198a | ||
|
|
106bb41d47 |
24
CHANGELOG.md
24
CHANGELOG.md
@@ -18,6 +18,30 @@ See [Babylon's CHANGELOG](packages/babylon/CHANGELOG.md) for the Babylon pre-7.0
|
||||
<!-- DO NOT CHANGE THESE COMMENTS - See .github/actions/trigger-github-release/update-changelog.js -->
|
||||
<!-- insert-new-changelog-here -->
|
||||
|
||||
## v7.5.3 (2019-07-09)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-helpers`, `babel-plugin-proposal-object-rest-spread`, `babel-preset-env`
|
||||
* [#10180](https://github.com/babel/babel/pull/10180) [_objectSpread2] Do not use hoisted var from prev iteration ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
## v7.5.2 (2019-07-08)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#10174](https://github.com/babel/babel/pull/10174) Do not trust Scope when removing TypeScript types ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-helpers`, `babel-plugin-proposal-object-rest-spread`, `babel-preset-env`
|
||||
* [#10171](https://github.com/babel/babel/pull/10171) Don't rely on getOwnPropertyDescriptors in objectSpread2 ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-export-default-from`, `babel-plugin-proposal-export-namespace-from`
|
||||
* [#10172](https://github.com/babel/babel/pull/10172) fix: register injected importDeclaration ([@JLHwung](https://github.com/JLHwung))
|
||||
|
||||
## v7.5.1 (2019-07-06)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-helpers`, `babel-plugin-proposal-object-rest-spread`
|
||||
* [#10170](https://github.com/babel/babel/pull/10170) Fix objectSpread2 backward compatibility ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#10167](https://github.com/babel/babel/pull/10167) Retain typescript export-from-source ([@Wolvereness](https://github.com/Wolvereness))
|
||||
|
||||
## v7.5.0 (2019-07-04)
|
||||
|
||||
#### :eyeglasses: Spec Compliance
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"changelog": {
|
||||
"repo": "babel/babel",
|
||||
"cacheDir": ".changelog",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "babel-core",
|
||||
"name": "babel",
|
||||
"private": true,
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
@@ -50,7 +50,7 @@
|
||||
"gulp-watch": "^5.0.1",
|
||||
"husky": "^2.3.0",
|
||||
"jest": "^24.8.0",
|
||||
"lerna": "^3.14.0",
|
||||
"lerna": "^3.14.2",
|
||||
"lerna-changelog": "^0.5.0",
|
||||
"lint-staged": "^8.1.7",
|
||||
"lodash": "^4.17.11",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/core",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "Babel compiler core.",
|
||||
"main": "lib/index.js",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
@@ -35,7 +35,7 @@
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"@babel/generator": "^7.5.0",
|
||||
"@babel/helpers": "^7.5.0",
|
||||
"@babel/helpers": "^7.5.4",
|
||||
"@babel/parser": "^7.5.0",
|
||||
"@babel/template": "^7.4.4",
|
||||
"@babel/traverse": "^7.5.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/helpers",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "Collection of helper functions used by Babel transforms.",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
|
||||
@@ -406,24 +406,37 @@ helpers.objectSpread = helper("7.0.0-beta.0")`
|
||||
}
|
||||
`;
|
||||
|
||||
helpers.objectSpread2 = helper("7.0.0-beta.0")`
|
||||
helpers.objectSpread2 = helper("7.5.0")`
|
||||
import defineProperty from "defineProperty";
|
||||
|
||||
function ownKeys(object, enumerableOnly) {
|
||||
var keys = Object.keys(object);
|
||||
if (Object.getOwnPropertySymbols) {
|
||||
keys.push.apply(keys, Object.getOwnPropertySymbols(object));
|
||||
}
|
||||
if (enumerableOnly) keys = keys.filter(function (sym) {
|
||||
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
||||
});
|
||||
return keys;
|
||||
}
|
||||
|
||||
export default function _objectSpread2(target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = (arguments[i] != null) ? arguments[i] : {};
|
||||
if (i % 2) {
|
||||
var source = (arguments[i] != null) ? arguments[i] : {};
|
||||
var ownKeys = Object.keys(source);
|
||||
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
||||
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||
}));
|
||||
}
|
||||
ownKeys.forEach(function(key) {
|
||||
ownKeys(source, true).forEach(function (key) {
|
||||
defineProperty(target, key, source[key]);
|
||||
});
|
||||
} else if (Object.getOwnPropertyDescriptors) {
|
||||
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
||||
} else {
|
||||
Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i]));
|
||||
ownKeys(source).forEach(function (key) {
|
||||
Object.defineProperty(
|
||||
target,
|
||||
key,
|
||||
Object.getOwnPropertyDescriptor(source, key)
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
return target;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/plugin-proposal-export-default-from",
|
||||
"version": "7.2.0",
|
||||
"version": "7.5.2",
|
||||
"description": "Compile export default to ES2015",
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-default-from",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -33,7 +33,8 @@ export default declare(api => {
|
||||
nodes.push(node);
|
||||
}
|
||||
|
||||
path.replaceWithMultiple(nodes);
|
||||
const [importDeclaration] = path.replaceWithMultiple(nodes);
|
||||
path.scope.registerDeclaration(importDeclaration);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export foo from "bar";
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["proposal-export-default-from", "transform-typescript"]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
import _foo from "bar";
|
||||
export { _foo as foo };
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/plugin-proposal-export-namespace-from",
|
||||
"version": "7.2.0",
|
||||
"version": "7.5.2",
|
||||
"description": "Compile export namespace to ES2015",
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-namespace-from",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -43,7 +43,8 @@ export default declare(api => {
|
||||
nodes.push(node);
|
||||
}
|
||||
|
||||
path.replaceWithMultiple(nodes);
|
||||
const [importDeclaration] = path.replaceWithMultiple(nodes);
|
||||
path.scope.registerDeclaration(importDeclaration);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export * as foo from "bar";
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["proposal-export-namespace-from", "transform-typescript"]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
import * as _foo from "bar";
|
||||
export { _foo as foo };
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/plugin-proposal-object-rest-spread",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "Compile object rest and spread to ES5",
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-object-rest-spread",
|
||||
"license": "MIT",
|
||||
@@ -19,7 +19,7 @@
|
||||
"@babel/core": "^7.0.0-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.5.0",
|
||||
"@babel/core": "^7.5.4",
|
||||
"@babel/helper-plugin-test-runner": "^7.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,7 +452,13 @@ export default declare((api, opts) => {
|
||||
if (loose) {
|
||||
helper = getExtendsHelper(file);
|
||||
} else {
|
||||
helper = file.addHelper("objectSpread2");
|
||||
try {
|
||||
helper = file.addHelper("objectSpread2");
|
||||
} catch {
|
||||
// objectSpread2 has been introduced in v7.5.0
|
||||
// We have to maintain backward compatibility.
|
||||
helper = file.addHelper("objectSpread");
|
||||
}
|
||||
}
|
||||
|
||||
path.replaceWith(t.callExpression(helper, args));
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
const oldGOPDs = Object.getOwnPropertyDescriptors;
|
||||
Object.getOwnPropertyDescriptors = null;
|
||||
|
||||
({ ...{ a: 1 }, b: 1, ...{} });
|
||||
|
||||
Object.getOwnPropertyDescriptors = oldGOPDs;
|
||||
@@ -1,4 +1,6 @@
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/plugin-transform-typescript",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.2",
|
||||
"description": "Transform TypeScript into ES.next",
|
||||
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-typescript",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -19,6 +19,29 @@ function isInType(path) {
|
||||
}
|
||||
|
||||
const PARSED_PARAMS = new WeakSet();
|
||||
const GLOBAL_TYPES = new WeakMap();
|
||||
|
||||
function isGlobalType(path, name) {
|
||||
const program = path.find(path => path.isProgram()).node;
|
||||
if (path.scope.hasOwnBinding(name)) return false;
|
||||
if (GLOBAL_TYPES.get(program).has(name)) return true;
|
||||
|
||||
console.warn(
|
||||
`The exported identifier "${name}" is not declared in Babel's scope tracker\n` +
|
||||
`as a JavaScript value binding, and "@babel/plugin-transform-typescript"\n` +
|
||||
`never encountered it as a TypeScript type declaration.\n` +
|
||||
`It will be treated as a JavaScript value.\n\n` +
|
||||
`This problem is likely caused by another plugin injecting\n` +
|
||||
`"${name}" without registering it in the scope tracker. If you are the author\n` +
|
||||
` of that plugin, please use "scope.registerDeclaration(declarationPath)".`,
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function registerGlobalType(programScope, name) {
|
||||
GLOBAL_TYPES.get(programScope.path.node).add(name);
|
||||
}
|
||||
|
||||
export default declare(
|
||||
(api, { jsxPragma = "React", allowNamespaces = false }) => {
|
||||
@@ -40,6 +63,10 @@ export default declare(
|
||||
const { file } = state;
|
||||
let fileJsxPragma = null;
|
||||
|
||||
if (!GLOBAL_TYPES.has(path.node)) {
|
||||
GLOBAL_TYPES.set(path.node, new Set());
|
||||
}
|
||||
|
||||
if (file.ast.comments) {
|
||||
for (const comment of (file.ast.comments: Array<Object>)) {
|
||||
const jsxMatches = JSX_ANNOTATION_REGEX.exec(comment.value);
|
||||
@@ -50,7 +77,7 @@ export default declare(
|
||||
}
|
||||
|
||||
// remove type imports
|
||||
for (const stmt of path.get("body")) {
|
||||
for (let stmt of path.get("body")) {
|
||||
if (t.isImportDeclaration(stmt)) {
|
||||
// Note: this will allow both `import { } from "m"` and `import "m";`.
|
||||
// In TypeScript, the former would be elided.
|
||||
@@ -91,6 +118,28 @@ export default declare(
|
||||
importPath.remove();
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (stmt.isExportDeclaration()) {
|
||||
stmt = stmt.get("declaration");
|
||||
}
|
||||
|
||||
if (stmt.isVariableDeclaration({ declare: true })) {
|
||||
for (const name of Object.keys(stmt.getBindingIdentifiers())) {
|
||||
registerGlobalType(path.scope, name);
|
||||
}
|
||||
} else if (
|
||||
stmt.isTSTypeAliasDeclaration() ||
|
||||
stmt.isTSDeclareFunction() ||
|
||||
stmt.isTSInterfaceDeclaration() ||
|
||||
stmt.isClassDeclaration({ declare: true }) ||
|
||||
stmt.isTSEnumDeclaration({ declare: true }) ||
|
||||
(stmt.isTSModuleDeclaration({ declare: true }) &&
|
||||
stmt.get("id").isIdentifier())
|
||||
) {
|
||||
registerGlobalType(path.scope, stmt.node.id.name);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -98,9 +147,10 @@ export default declare(
|
||||
ExportNamedDeclaration(path) {
|
||||
// remove export declaration if it's exporting only types
|
||||
if (
|
||||
!path.node.source &&
|
||||
path.node.specifiers.length > 0 &&
|
||||
!path.node.specifiers.find(exportSpecifier =>
|
||||
path.scope.hasOwnBinding(exportSpecifier.local.name),
|
||||
path.node.specifiers.every(({ local }) =>
|
||||
isGlobalType(path, local.name),
|
||||
)
|
||||
) {
|
||||
path.remove();
|
||||
@@ -109,7 +159,7 @@ export default declare(
|
||||
|
||||
ExportSpecifier(path) {
|
||||
// remove type exports
|
||||
if (!path.scope.hasOwnBinding(path.node.local.name)) {
|
||||
if (!path.parent.source && isGlobalType(path, path.node.local.name)) {
|
||||
path.remove();
|
||||
}
|
||||
},
|
||||
@@ -118,7 +168,7 @@ export default declare(
|
||||
// remove whole declaration if it's exporting a TS type
|
||||
if (
|
||||
t.isIdentifier(path.node.declaration) &&
|
||||
!path.scope.hasOwnBinding(path.node.declaration.name)
|
||||
isGlobalType(path, path.node.declaration.name)
|
||||
) {
|
||||
path.remove();
|
||||
}
|
||||
@@ -133,7 +183,9 @@ export default declare(
|
||||
},
|
||||
|
||||
VariableDeclaration(path) {
|
||||
if (path.node.declare) path.remove();
|
||||
if (path.node.declare) {
|
||||
path.remove();
|
||||
}
|
||||
},
|
||||
|
||||
VariableDeclarator({ node }) {
|
||||
|
||||
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/input.mjs
vendored
Normal file
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/input.mjs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export default "foo";
|
||||
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/output.mjs
vendored
Normal file
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/default-literal/output.mjs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export default "foo";
|
||||
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/input.mjs
vendored
Normal file
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/input.mjs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export { bar } from './bar';
|
||||
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/output.mjs
vendored
Normal file
1
packages/babel-plugin-transform-typescript/test/fixtures/exports/export-from/output.mjs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export { bar } from './bar';
|
||||
1
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/input.mjs
vendored
Normal file
1
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/input.mjs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export default 2;
|
||||
3
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/options.json
vendored
Normal file
3
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["./plugin.js", "transform-typescript"]
|
||||
}
|
||||
3
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/output.mjs
vendored
Normal file
3
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/output.mjs
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
const foo = 2;
|
||||
export default foo;
|
||||
["The exported identifier \"foo\" is not declared in Babel's scope tracker\nas a JavaScript value binding, and \"@babel/plugin-transform-typescript\"\nnever encountered it as a TypeScript type declaration.\nIt will be treated as a JavaScript value.\n\nThis problem is likely caused by another plugin injecting\n\"foo\" without registering it in the scope tracker. If you are the author\n of that plugin, please use \"scope.registerDeclaration(declarationPath)\"."];
|
||||
30
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/plugin.js
vendored
Normal file
30
packages/babel-plugin-transform-typescript/test/fixtures/regression/10162/plugin.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function({ template, types: t }) {
|
||||
const warnings = [];
|
||||
let consoleWarn;
|
||||
|
||||
return {
|
||||
pre() {
|
||||
consoleWarn = console.warn;
|
||||
console.warn = msg => warnings.push(msg);
|
||||
},
|
||||
|
||||
post({ path }) {
|
||||
console.warn = consoleWarn;
|
||||
|
||||
const stmt = t.expressionStatement(t.valueToNode(warnings));
|
||||
path.pushContainer("body", stmt);
|
||||
},
|
||||
|
||||
visitor: {
|
||||
ExportDefaultDeclaration(path) {
|
||||
path.insertBefore(template.statement.ast`
|
||||
const foo = ${path.node.declaration};
|
||||
`);
|
||||
|
||||
path.node.declaration = t.identifier("foo");
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/preset-env-standalone",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "Standalone build of babel-prest-env for use in non-Node.js environments.",
|
||||
"main": "babel-preset-env.js",
|
||||
"files": [
|
||||
@@ -13,8 +13,8 @@
|
||||
"@babel/plugin-proposal-json-strings": "^7.0.0",
|
||||
"@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5",
|
||||
"@babel/plugin-transform-new-target": "^7.4.4",
|
||||
"@babel/preset-env": "^7.5.0",
|
||||
"@babel/standalone": "^7.5.0"
|
||||
"@babel/preset-env": "^7.5.4",
|
||||
"@babel/standalone": "^7.5.4"
|
||||
},
|
||||
"keywords": [
|
||||
"babel",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/preset-env",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "A Babel preset for each environment.",
|
||||
"author": "Henry Zhu <hi@henryzoo.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
@@ -19,7 +19,7 @@
|
||||
"@babel/plugin-proposal-async-generator-functions": "^7.2.0",
|
||||
"@babel/plugin-proposal-dynamic-import": "^7.5.0",
|
||||
"@babel/plugin-proposal-json-strings": "^7.2.0",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.5.0",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.5.4",
|
||||
"@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
|
||||
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
|
||||
"@babel/plugin-syntax-async-generators": "^7.2.0",
|
||||
@@ -70,7 +70,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.5.0",
|
||||
"@babel/core": "^7.5.0",
|
||||
"@babel/core": "^7.5.4",
|
||||
"@babel/helper-fixtures": "^7.4.4",
|
||||
"@babel/helper-plugin-test-runner": "^7.0.0",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||
|
||||
@@ -296,7 +296,9 @@ require("core-js/modules/web.dom.iterable");
|
||||
|
||||
require("regenerator-runtime/runtime");
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
require("core-js/modules/es7.object.get-own-property-descriptors");
|
||||
|
||||
require("core-js/modules/es6.object.define-properties");
|
||||
|
||||
require("core-js/modules/es7.object.get-own-property-descriptors");
|
||||
|
||||
require("core-js/modules/es6.array.for-each");
|
||||
|
||||
require("core-js/modules/es6.array.filter");
|
||||
@@ -28,7 +28,9 @@ require("core-js/modules/es6.promise");
|
||||
|
||||
require("core-js/modules/es6.object.to-string");
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
|
||||
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/runtime-corejs2",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "babel's modular runtime helpers with core-js@2 polyfilling",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
@@ -13,6 +13,6 @@
|
||||
"regenerator-runtime": "^0.13.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/helpers": "^7.5.0"
|
||||
"@babel/helpers": "^7.5.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/runtime-corejs3",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "babel's modular runtime helpers with core-js@3 polyfilling",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/runtime",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "babel's modular runtime helpers",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
@@ -12,6 +12,6 @@
|
||||
"regenerator-runtime": "^0.13.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/helpers": "^7.5.0"
|
||||
"@babel/helpers": "^7.5.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/standalone",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.4",
|
||||
"description": "Standalone build of Babel for use in non-Node.js environments.",
|
||||
"main": "babel.js",
|
||||
"files": [
|
||||
@@ -9,22 +9,22 @@
|
||||
"src"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.5.0",
|
||||
"@babel/core": "^7.5.4",
|
||||
"@babel/helper-plugin-utils": "^7.0.0",
|
||||
"@babel/plugin-external-helpers": "^7.2.0",
|
||||
"@babel/plugin-proposal-async-generator-functions": "^7.2.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.5.0",
|
||||
"@babel/plugin-proposal-decorators": "^7.4.4",
|
||||
"@babel/plugin-proposal-do-expressions": "^7.5.0",
|
||||
"@babel/plugin-proposal-export-default-from": "^7.2.0",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.2.0",
|
||||
"@babel/plugin-proposal-export-default-from": "^7.5.2",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.5.2",
|
||||
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
||||
"@babel/plugin-proposal-function-sent": "^7.5.0",
|
||||
"@babel/plugin-proposal-json-strings": "^7.2.0",
|
||||
"@babel/plugin-proposal-logical-assignment-operators": "^7.2.0",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.4.4",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.2.0",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.5.0",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.5.4",
|
||||
"@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
|
||||
"@babel/plugin-proposal-pipeline-operator": "^7.5.0",
|
||||
@@ -93,7 +93,7 @@
|
||||
"@babel/plugin-transform-strict-mode": "^7.2.0",
|
||||
"@babel/plugin-transform-template-literals": "^7.4.4",
|
||||
"@babel/plugin-transform-typeof-symbol": "^7.2.0",
|
||||
"@babel/plugin-transform-typescript": "^7.5.0",
|
||||
"@babel/plugin-transform-typescript": "^7.5.2",
|
||||
"@babel/plugin-transform-unicode-regex": "^7.4.4",
|
||||
"@babel/preset-flow": "^7.0.0",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
|
||||
Reference in New Issue
Block a user