@babel/plugin-transform-runtime
Advanced tools
Comparing version 7.0.0-beta.42 to 7.0.0-beta.43
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
@@ -5,0 +7,0 @@ var _default = { |
165
lib/index.js
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
Object.defineProperty(exports, "definitions", { | ||
enumerable: true, | ||
get: function () { | ||
return _definitions.default; | ||
} | ||
}); | ||
exports.default = void 0; | ||
var _helperPluginUtils = require("@babel/helper-plugin-utils"); | ||
function _helperPluginUtils() { | ||
const data = require("@babel/helper-plugin-utils"); | ||
var _helperModuleImports = require("@babel/helper-module-imports"); | ||
_helperPluginUtils = function () { | ||
return data; | ||
}; | ||
var _core = require("@babel/core"); | ||
return data; | ||
} | ||
function _helperModuleImports() { | ||
const data = require("@babel/helper-module-imports"); | ||
_helperModuleImports = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _core() { | ||
const data = require("@babel/core"); | ||
_core = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
var _definitions = _interopRequireDefault(require("./definitions")); | ||
exports.definitions = _definitions.default; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _default = (0, _helperPluginUtils.declare)(function (api, options) { | ||
var _default = (0, _helperPluginUtils().declare)((api, options) => { | ||
api.assertVersion(7); | ||
var helpers = options.helpers, | ||
_options$moduleName = options.moduleName, | ||
moduleName = _options$moduleName === void 0 ? "@babel/runtime" : _options$moduleName, | ||
polyfill = options.polyfill, | ||
regenerator = options.regenerator, | ||
useBuiltIns = options.useBuiltIns, | ||
useESModules = options.useESModules; | ||
var regeneratorEnabled = regenerator !== false; | ||
var notPolyfillOrDoesUseBuiltIns = polyfill === false || useBuiltIns; | ||
var isPolyfillAndUseBuiltIns = polyfill && useBuiltIns; | ||
var baseHelpersDir = useBuiltIns ? "helpers/builtin" : "helpers"; | ||
var helpersDir = useESModules ? baseHelpersDir + "/es6" : baseHelpersDir; | ||
const { | ||
helpers, | ||
moduleName = "@babel/runtime", | ||
polyfill, | ||
regenerator, | ||
useBuiltIns, | ||
useESModules | ||
} = options; | ||
const regeneratorEnabled = regenerator !== false; | ||
const notPolyfillOrDoesUseBuiltIns = polyfill === false || useBuiltIns; | ||
const isPolyfillAndUseBuiltIns = polyfill && useBuiltIns; | ||
const baseHelpersDir = useBuiltIns ? "helpers/builtin" : "helpers"; | ||
const helpersDir = useESModules ? `${baseHelpersDir}/es6` : baseHelpersDir; | ||
@@ -37,12 +68,10 @@ function has(obj, key) { | ||
var HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"]; | ||
const HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"]; | ||
return { | ||
pre: function pre(file) { | ||
var _this = this; | ||
pre(file) { | ||
if (helpers !== false) { | ||
file.set("helperGenerator", function (name) { | ||
var isInteropHelper = HEADER_HELPERS.indexOf(name) !== -1; | ||
var blockHoist = isInteropHelper && !(0, _helperModuleImports.isModule)(file.path) ? 4 : undefined; | ||
return _this.addDefaultImport(moduleName + "/" + helpersDir + "/" + name, name, blockHoist); | ||
file.set("helperGenerator", name => { | ||
const isInteropHelper = HEADER_HELPERS.indexOf(name) !== -1; | ||
const blockHoist = isInteropHelper && !(0, _helperModuleImports().isModule)(file.path) ? 4 : undefined; | ||
return this.addDefaultImport(`${moduleName}/${helpersDir}/${name}`, name, blockHoist); | ||
}); | ||
@@ -56,16 +85,16 @@ } | ||
this.moduleName = moduleName; | ||
var cache = new Map(); | ||
const cache = new Map(); | ||
this.addDefaultImport = function (source, nameHint, blockHoist) { | ||
var cacheKey = (0, _helperModuleImports.isModule)(file.path); | ||
var key = source + ":" + nameHint + ":" + (cacheKey || ""); | ||
var cached = cache.get(key); | ||
this.addDefaultImport = (source, nameHint, blockHoist) => { | ||
const cacheKey = (0, _helperModuleImports().isModule)(file.path); | ||
const key = `${source}:${nameHint}:${cacheKey || ""}`; | ||
let cached = cache.get(key); | ||
if (cached) { | ||
cached = _core.types.cloneNode(cached); | ||
cached = _core().types.cloneNode(cached); | ||
} else { | ||
cached = (0, _helperModuleImports.addDefault)(file.path, source, { | ||
cached = (0, _helperModuleImports().addDefault)(file.path, source, { | ||
importedInterop: "uncompiled", | ||
nameHint: nameHint, | ||
blockHoist: blockHoist | ||
nameHint, | ||
blockHoist | ||
}); | ||
@@ -78,10 +107,13 @@ cache.set(key, cached); | ||
}, | ||
visitor: { | ||
ReferencedIdentifier: function ReferencedIdentifier(path) { | ||
var node = path.node, | ||
parent = path.parent, | ||
scope = path.scope; | ||
ReferencedIdentifier(path) { | ||
const { | ||
node, | ||
parent, | ||
scope | ||
} = path; | ||
if (node.name === "regeneratorRuntime" && regeneratorEnabled) { | ||
path.replaceWith(this.addDefaultImport(this.moduleName + "/regenerator", "regeneratorRuntime")); | ||
path.replaceWith(this.addDefaultImport(`${this.moduleName}/regenerator`, "regeneratorRuntime")); | ||
return; | ||
@@ -91,12 +123,13 @@ } | ||
if (notPolyfillOrDoesUseBuiltIns) return; | ||
if (_core.types.isMemberExpression(parent)) return; | ||
if (_core().types.isMemberExpression(parent)) return; | ||
if (!has(_definitions.default.builtins, node.name)) return; | ||
if (scope.getBindingIdentifier(node.name)) return; | ||
path.replaceWith(this.addDefaultImport(moduleName + "/core-js/" + _definitions.default.builtins[node.name], node.name)); | ||
path.replaceWith(this.addDefaultImport(`${moduleName}/core-js/${_definitions.default.builtins[node.name]}`, node.name)); | ||
}, | ||
CallExpression: function CallExpression(path) { | ||
CallExpression(path) { | ||
if (notPolyfillOrDoesUseBuiltIns) return; | ||
if (path.node.arguments.length) return; | ||
var callee = path.node.callee; | ||
if (!_core.types.isMemberExpression(callee)) return; | ||
const callee = path.node.callee; | ||
if (!_core().types.isMemberExpression(callee)) return; | ||
if (!callee.computed) return; | ||
@@ -108,21 +141,25 @@ | ||
path.replaceWith(_core.types.callExpression(this.addDefaultImport(moduleName + "/core-js/get-iterator", "getIterator"), [callee.object])); | ||
path.replaceWith(_core().types.callExpression(this.addDefaultImport(`${moduleName}/core-js/get-iterator`, "getIterator"), [callee.object])); | ||
}, | ||
BinaryExpression: function BinaryExpression(path) { | ||
BinaryExpression(path) { | ||
if (notPolyfillOrDoesUseBuiltIns) return; | ||
if (path.node.operator !== "in") return; | ||
if (!path.get("left").matchesPattern("Symbol.iterator")) return; | ||
path.replaceWith(_core.types.callExpression(this.addDefaultImport(moduleName + "/core-js/is-iterable", "isIterable"), [path.node.right])); | ||
path.replaceWith(_core().types.callExpression(this.addDefaultImport(`${moduleName}/core-js/is-iterable`, "isIterable"), [path.node.right])); | ||
}, | ||
MemberExpression: { | ||
enter: function enter(path) { | ||
enter(path) { | ||
if (notPolyfillOrDoesUseBuiltIns) return; | ||
if (!path.isReferenced()) return; | ||
var node = path.node; | ||
var obj = node.object; | ||
var prop = node.property; | ||
if (!_core.types.isReferenced(obj, node)) return; | ||
const { | ||
node | ||
} = path; | ||
const obj = node.object; | ||
const prop = node.property; | ||
if (!_core().types.isReferenced(obj, node)) return; | ||
if (node.computed) return; | ||
if (!has(_definitions.default.methods, obj.name)) return; | ||
var methods = _definitions.default.methods[obj.name]; | ||
const methods = _definitions.default.methods[obj.name]; | ||
if (!has(methods, prop.name)) return; | ||
@@ -132,5 +169,5 @@ if (path.scope.getBindingIdentifier(obj.name)) return; | ||
if (obj.name === "Object" && prop.name === "defineProperty" && path.parentPath.isCallExpression()) { | ||
var call = path.parentPath.node; | ||
const call = path.parentPath.node; | ||
if (call.arguments.length === 3 && _core.types.isLiteral(call.arguments[1])) { | ||
if (call.arguments.length === 3 && _core().types.isLiteral(call.arguments[1])) { | ||
return; | ||
@@ -140,13 +177,17 @@ } | ||
path.replaceWith(this.addDefaultImport(moduleName + "/core-js/" + methods[prop.name], obj.name + "$" + prop.name)); | ||
path.replaceWith(this.addDefaultImport(`${moduleName}/core-js/${methods[prop.name]}`, `${obj.name}$${prop.name}`)); | ||
}, | ||
exit: function exit(path) { | ||
exit(path) { | ||
if (notPolyfillOrDoesUseBuiltIns) return; | ||
if (!path.isReferenced()) return; | ||
var node = path.node; | ||
var obj = node.object; | ||
const { | ||
node | ||
} = path; | ||
const obj = node.object; | ||
if (!has(_definitions.default.builtins, obj.name)) return; | ||
if (path.scope.getBindingIdentifier(obj.name)) return; | ||
path.replaceWith(_core.types.memberExpression(this.addDefaultImport(moduleName + "/core-js/" + _definitions.default.builtins[obj.name], obj.name), node.property, node.computed)); | ||
path.replaceWith(_core().types.memberExpression(this.addDefaultImport(`${moduleName}/core-js/${_definitions.default.builtins[obj.name]}`, obj.name), node.property, node.computed)); | ||
} | ||
} | ||
@@ -153,0 +194,0 @@ } |
{ | ||
"name": "@babel/plugin-transform-runtime", | ||
"version": "7.0.0-beta.42", | ||
"version": "7.0.0-beta.43", | ||
"description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", | ||
@@ -12,12 +12,12 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime", | ||
"dependencies": { | ||
"@babel/helper-module-imports": "7.0.0-beta.42", | ||
"@babel/helper-plugin-utils": "7.0.0-beta.42" | ||
"@babel/helper-module-imports": "7.0.0-beta.43", | ||
"@babel/helper-plugin-utils": "7.0.0-beta.43" | ||
}, | ||
"peerDependencies": { | ||
"@babel/core": "7.0.0-beta.42" | ||
"@babel/core": "7.0.0-beta.43" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "7.0.0-beta.42", | ||
"@babel/helper-plugin-test-runner": "7.0.0-beta.42" | ||
"@babel/core": "7.0.0-beta.43", | ||
"@babel/helper-plugin-test-runner": "7.0.0-beta.43" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
21863
322
+ Added@babel/code-frame@7.0.0-beta.43(transitive)
+ Added@babel/core@7.0.0-beta.43(transitive)
+ Added@babel/generator@7.0.0-beta.43(transitive)
+ Added@babel/helper-function-name@7.0.0-beta.43(transitive)
+ Added@babel/helper-get-function-arity@7.0.0-beta.43(transitive)
+ Added@babel/helper-module-imports@7.0.0-beta.43(transitive)
+ Added@babel/helper-plugin-utils@7.0.0-beta.43(transitive)
+ Added@babel/helper-split-export-declaration@7.0.0-beta.43(transitive)
+ Added@babel/helpers@7.0.0-beta.43(transitive)
+ Added@babel/highlight@7.0.0-beta.43(transitive)
+ Added@babel/template@7.0.0-beta.43(transitive)
+ Added@babel/traverse@7.0.0-beta.43(transitive)
+ Added@babel/types@7.0.0-beta.43(transitive)
+ Addedbabylon@7.0.0-beta.43(transitive)
- Removed@babel/code-frame@7.0.0-beta.42(transitive)
- Removed@babel/core@7.0.0-beta.42(transitive)
- Removed@babel/generator@7.0.0-beta.42(transitive)
- Removed@babel/helper-function-name@7.0.0-beta.42(transitive)
- Removed@babel/helper-get-function-arity@7.0.0-beta.42(transitive)
- Removed@babel/helper-module-imports@7.0.0-beta.42(transitive)
- Removed@babel/helper-plugin-utils@7.0.0-beta.42(transitive)
- Removed@babel/helper-split-export-declaration@7.0.0-beta.42(transitive)
- Removed@babel/helpers@7.0.0-beta.42(transitive)
- Removed@babel/highlight@7.0.0-beta.42(transitive)
- Removed@babel/template@7.0.0-beta.42(transitive)
- Removed@babel/traverse@7.0.0-beta.42(transitive)
- Removed@babel/types@7.0.0-beta.42(transitive)
- Removedbabylon@7.0.0-beta.42(transitive)