handle-message.cjs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const babel = require("./babel-core.cjs");
  2. const maybeParse = require("./maybeParse.cjs");
  3. const {
  4. getVisitorKeys,
  5. getTokLabels
  6. } = require("./ast-info.cjs");
  7. const {
  8. normalizeBabelParseConfig,
  9. normalizeBabelParseConfigSync
  10. } = require("./configuration.cjs");
  11. module.exports = function handleMessage(action, payload) {
  12. switch (action) {
  13. case "GET_VERSION":
  14. return babel.version;
  15. case "GET_TYPES_INFO":
  16. return {
  17. FLOW_FLIPPED_ALIAS_KEYS: babel.types.FLIPPED_ALIAS_KEYS.Flow,
  18. VISITOR_KEYS: babel.types.VISITOR_KEYS
  19. };
  20. case "GET_TOKEN_LABELS":
  21. return getTokLabels();
  22. case "GET_VISITOR_KEYS":
  23. return getVisitorKeys();
  24. case "MAYBE_PARSE":
  25. return normalizeBabelParseConfig(payload.options).then(options => maybeParse(payload.code, options));
  26. case "MAYBE_PARSE_SYNC":
  27. {
  28. return maybeParse(payload.code, normalizeBabelParseConfigSync(payload.options));
  29. }
  30. }
  31. throw new Error(`Unknown internal parser worker action: ${action}`);
  32. };