UNPKG

971 BJavaScriptView Raw
1const babel = require('babel-core');
2const babylon = require('babylon');
3const syntaxJsx = require('babel-plugin-syntax-jsx');
4const transformJsx = require('babel-plugin-transform-react-jsx');
5const transformObjectRestSpread = require('babel-plugin-transform-object-rest-spread');
6
7
8const basePlugins = [syntaxJsx, transformObjectRestSpread];
9const jsxTransformPlugins = [transformJsx, transformObjectRestSpread];
10const parsePlugins = ['jsx', 'objectRestSpread'];
11
12
13export default {
14 parse(code, plugins = []) {
15 return babylon.parse(code, {plugins: parsePlugins.concat(plugins)});
16 },
17
18 parseExpression(code, plugins) {
19 return this.parse(code, plugins).program.body[0].expression;
20 },
21
22 transform(code, plugins = []) {
23 return babel.transform(code, {plugins: basePlugins.concat(plugins)});
24 },
25
26 transformJsx(code, plugins = []) {
27 return babel.transform(code, {plugins: jsxTransformPlugins.concat(plugins)});
28 },
29};