utils.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.callMethod = callMethod;
  4. exports.isCoreJSSource = isCoreJSSource;
  5. exports.coreJSModule = coreJSModule;
  6. exports.coreJSPureHelper = coreJSPureHelper;
  7. var _core = require("@babel/core");
  8. var _entries = _interopRequireDefault(require("core-js-compat/entries"));
  9. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  10. function callMethod(path, id) {
  11. const {
  12. object
  13. } = path.node;
  14. let context1, context2;
  15. if (_core.types.isIdentifier(object)) {
  16. context1 = object;
  17. context2 = _core.types.cloneNode(object);
  18. } else {
  19. context1 = path.scope.generateDeclaredUidIdentifier("context");
  20. context2 = _core.types.assignmentExpression("=", _core.types.cloneNode(context1), object);
  21. }
  22. path.replaceWith(_core.types.memberExpression(_core.types.callExpression(id, [context2]), _core.types.identifier("call")));
  23. path.parentPath.unshiftContainer("arguments", context1);
  24. }
  25. function isCoreJSSource(source) {
  26. if (typeof source === "string") {
  27. source = source.replace(/\\/g, "/").replace(/(\/(index)?)?(\.js)?$/i, "").toLowerCase();
  28. }
  29. return hasOwnProperty.call(_entries.default, source) && _entries.default[source];
  30. }
  31. function coreJSModule(name) {
  32. return `core-js/modules/${name}.js`;
  33. }
  34. function coreJSPureHelper(name, useBabelRuntime, ext) {
  35. return useBabelRuntime ? `${useBabelRuntime}/core-js/${name}${ext}` : `core-js-pure/features/${name}.js`;
  36. }