babel-plugin-polyfill-corejs3 0.1.0 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -19,6 +19,10 @@ var _helperDefinePolyfillProvider = _interopRequireDefault(require("@babel/helpe
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+
24
+ const runtimeCompat = "#__secret_key__@babel/runtime__compatibility";
25
+
22
26
  const esnextFallback = (name, cb) => {
23
27
  if (cb(name)) return true;
24
28
  if (!name.startsWith("es.")) return false;
@@ -37,7 +41,11 @@ var _default = (0, _helperDefinePolyfillProvider.default)(function ({
37
41
  }, {
38
42
  version = 3,
39
43
  proposals,
40
- shippedProposals
44
+ shippedProposals,
45
+ [runtimeCompat]: {
46
+ useBabelRuntime,
47
+ ext = ".js"
48
+ } = {}
41
49
  }) {
42
50
  const isWebpack = babel.caller(caller => (caller == null ? void 0 : caller.name) === "babel-loader");
43
51
  const resolve = createMetaResolver({
@@ -46,7 +54,7 @@ var _default = (0, _helperDefinePolyfillProvider.default)(function ({
46
54
  instance: _builtInDefinitions.InstanceProperties
47
55
  });
48
56
  const available = new Set((0, _getModulesListForTargetVersion.default)(version));
49
- const coreJSPureBase = proposals ? "core-js-pure/features" : "core-js-pure/stable";
57
+ const coreJSPureBase = useBabelRuntime ? proposals ? `${useBabelRuntime}/core-js` : `${useBabelRuntime}/core-js-stable` : proposals ? "core-js-pure/features" : "core-js-pure/stable";
50
58
 
51
59
  function maybeInjectGlobalImpl(name, utils) {
52
60
  if (shouldInjectPolyfill(name)) {
@@ -70,7 +78,7 @@ var _default = (0, _helperDefinePolyfillProvider.default)(function ({
70
78
 
71
79
  function maybeInjectPure(desc, hint, utils, object) {
72
80
  if (desc.pure && !(object && desc.exclude && desc.exclude.includes(object)) && esnextFallback(desc.name, shouldInjectPolyfill)) {
73
- return utils.injectDefaultImport(`${coreJSPureBase}/${desc.pure}.js`, hint);
81
+ return utils.injectDefaultImport(`${coreJSPureBase}/${desc.pure}${ext}`, hint);
74
82
  }
75
83
  }
76
84
 
@@ -121,12 +129,15 @@ var _default = (0, _helperDefinePolyfillProvider.default)(function ({
121
129
  usagePure(meta, utils, path) {
122
130
  if (meta.kind === "in") {
123
131
  if (meta.key === "Symbol.iterator") {
124
- path.replaceWith(_core.types.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)("is-iterable"), "isIterable"), [path.node.right]));
132
+ path.replaceWith(_core.types.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)("is-iterable", useBabelRuntime, ext), "isIterable"), [path.node.right]));
125
133
  }
126
134
 
127
135
  return;
128
136
  }
129
137
 
138
+ if (path.parentPath.isUnaryExpression({
139
+ operator: "delete"
140
+ })) return;
130
141
  let isCall;
131
142
 
132
143
  if (meta.kind === "property") {
@@ -142,22 +153,31 @@ var _default = (0, _helperDefinePolyfillProvider.default)(function ({
142
153
 
143
154
  if (isCall) {
144
155
  if (path.parent.arguments.length === 0) {
145
- path.parentPath.replaceWith(_core.types.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)("get-iterator"), "getIterator"), [path.node.object]));
156
+ path.parentPath.replaceWith(_core.types.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)("get-iterator", useBabelRuntime, ext), "getIterator"), [path.node.object]));
146
157
  path.skip();
147
158
  } else {
148
- (0, _utils.callMethod)(path, utils.injectDefaultImport((0, _utils.coreJSPureHelper)("get-iterator-method"), "getIteratorMethod"));
159
+ (0, _utils.callMethod)(path, utils.injectDefaultImport((0, _utils.coreJSPureHelper)("get-iterator-method", useBabelRuntime, ext), "getIteratorMethod"));
149
160
  }
150
161
  } else {
151
- path.replaceWith(_core.types.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)("get-iterator-method"), "getIteratorMethod"), [path.node.object]));
162
+ path.replaceWith(_core.types.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)("get-iterator-method", useBabelRuntime, ext), "getIteratorMethod"), [path.node.object]));
152
163
  }
153
164
 
154
165
  return;
155
166
  }
156
167
  }
157
168
 
158
- const resolved = resolve(meta);
169
+ let resolved = resolve(meta);
159
170
  if (!resolved) return;
160
171
 
172
+ if (useBabelRuntime && resolved.desc.pure && resolved.desc.pure.slice(-6) === "/index") {
173
+ // Remove /index, since it doesn't exist in @babel/runtime-corejs3s
174
+ resolved = _extends({}, resolved, {
175
+ desc: _extends({}, resolved.desc, {
176
+ pure: resolved.desc.pure.slice(0, -6)
177
+ })
178
+ });
179
+ }
180
+
161
181
  if (resolved.kind === "global") {
162
182
  const id = maybeInjectPure(resolved.desc, resolved.name, utils);
163
183
  if (id) path.replaceWith(id);
package/lib/utils.js CHANGED
@@ -42,6 +42,6 @@ function coreJSModule(name) {
42
42
  return `core-js/modules/${name}.js`;
43
43
  }
44
44
 
45
- function coreJSPureHelper(name) {
46
- return `core-js-pure/features/${name}.js`;
45
+ function coreJSPureHelper(name, useBabelRuntime, ext) {
46
+ return useBabelRuntime ? `${useBabelRuntime}/core-js/${name}${ext}` : `core-js-pure/features/${name}.js`;
47
47
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babel-plugin-polyfill-corejs3",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "description": "A Babel plugin to inject imports to core-js@3 polyfills",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,19 +16,21 @@
16
16
  "babel-plugin"
17
17
  ],
18
18
  "dependencies": {
19
- "@babel/helper-define-polyfill-provider": "^0.1.0",
19
+ "@babel/helper-define-polyfill-provider": "^0.1.2",
20
20
  "core-js-compat": "^3.8.1"
21
21
  },
22
22
  "devDependencies": {
23
- "@babel/core": "^7.11.5",
23
+ "@babel/core": "^7.13.0",
24
24
  "@babel/helper-plugin-test-runner": "^7.10.4",
25
25
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
26
+ "@babel/plugin-transform-classes": "^7.13.0",
26
27
  "@babel/plugin-transform-for-of": "^7.10.4",
27
28
  "@babel/plugin-transform-modules-commonjs": "^7.10.4",
29
+ "@babel/plugin-transform-spread": "^7.13.0",
28
30
  "core-js-pure": "^3.8.1"
29
31
  },
30
32
  "peerDependencies": {
31
33
  "@babel/core": "^7.0.0-0"
32
34
  },
33
- "gitHead": "440228dfbaff5d0632a02f295002579fe862e614"
35
+ "gitHead": "55f582c8ebc4b8a181a51fecaa92c89158cc7ac9"
34
36
  }