index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _helperPluginUtils = require("@babel/helper-plugin-utils");
  7. var _core = require("@babel/core");
  8. var _default = (0, _helperPluginUtils.declare)((api, options) => {
  9. api.assertVersion(7);
  10. const {
  11. helperVersion = "7.0.0-beta.0",
  12. whitelist = false
  13. } = options;
  14. if (whitelist !== false && (!Array.isArray(whitelist) || whitelist.some(w => typeof w !== "string"))) {
  15. throw new Error(".whitelist must be undefined, false, or an array of strings");
  16. }
  17. const helperWhitelist = whitelist ? new Set(whitelist) : null;
  18. return {
  19. name: "external-helpers",
  20. pre(file) {
  21. file.set("helperGenerator", name => {
  22. if (file.availableHelper && !file.availableHelper(name, helperVersion)) {
  23. return;
  24. }
  25. if (helperWhitelist && !helperWhitelist.has(name)) return;
  26. return _core.types.memberExpression(_core.types.identifier("babelHelpers"), _core.types.identifier(name));
  27. });
  28. }
  29. };
  30. });
  31. exports.default = _default;