1 |
|
2 |
|
3 | import {
|
4 | transformSync,
|
5 | transformFromAst
|
6 | } from '@babel/core';
|
7 |
|
8 | export default (codeOrAst, needRuntime = true, astOpts = {}) => {
|
9 | var code, options, transform;
|
10 | transform = typeof codeOrAst === 'string' ? transformSync : (ast, options) => {
|
11 | return transformFromAst(ast, '', options);
|
12 | };
|
13 | options = {
|
14 | presets: ["@babel/preset-env"],
|
15 | plugins: [...((needRuntime != null) === true ? ['@babel/plugin-transform-runtime'] : [])]
|
16 | };
|
17 | ({code} = transform(codeOrAst, {...options, ...astOpts}));
|
18 | return code;
|
19 | };
|