You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.0 KiB
42 lines
1.0 KiB
const babel = require("./babel-core.cjs"); |
|
|
|
const maybeParse = require("./maybeParse.cjs"); |
|
|
|
const { |
|
getVisitorKeys, |
|
getTokLabels |
|
} = require("./ast-info.cjs"); |
|
|
|
const { |
|
normalizeBabelParseConfig, |
|
normalizeBabelParseConfigSync |
|
} = require("./configuration.cjs"); |
|
|
|
module.exports = function handleMessage(action, payload) { |
|
switch (action) { |
|
case "GET_VERSION": |
|
return babel.version; |
|
|
|
case "GET_TYPES_INFO": |
|
return { |
|
FLOW_FLIPPED_ALIAS_KEYS: babel.types.FLIPPED_ALIAS_KEYS.Flow, |
|
VISITOR_KEYS: babel.types.VISITOR_KEYS |
|
}; |
|
|
|
case "GET_TOKEN_LABELS": |
|
return getTokLabels(); |
|
|
|
case "GET_VISITOR_KEYS": |
|
return getVisitorKeys(); |
|
|
|
case "MAYBE_PARSE": |
|
return normalizeBabelParseConfig(payload.options).then(options => maybeParse(payload.code, options)); |
|
|
|
case "MAYBE_PARSE_SYNC": |
|
{ |
|
return maybeParse(payload.code, normalizeBabelParseConfigSync(payload.options)); |
|
} |
|
} |
|
|
|
throw new Error(`Unknown internal parser worker action: ${action}`); |
|
}; |