kktjs/markdown-react-code-preview-loader

Transcode replace `Babel` with `sucrase`

Opened this issue · 0 comments

import { transform } from '@babel/standalone';
import { PluginItem } from '@babel/core';
import removeImports from 'babel-plugin-transform-remove-imports';
import replaceExportDefault from 'babel-plugin-transform-replace-export-default';
import { Options } from '../';
export const getTransformValue = (str: string, filename: string, opts: Options) => {
const plugins: PluginItem[] = [...(opts.babelPlugins || [])];
if (opts.removeImports) {
plugins.push([removeImports, opts.removeImports]);
}
const result = transform(str, {
filename,
presets: ['env', 'es2015', 'react', 'typescript'],
plugins: [...plugins, replaceExportDefault],
});
return result.code;
};

Website: https://sucrase.io/#selectedTransforms=jsx,flow,imports,react-hot-loader,jest
Github: https://github.com/alangpierce/sucrase

import {transform} from "sucrase";
const compiledCode = transform(code, {transforms: ["typescript", "imports"]}).code;

uiwjs/react-code-preview#70 (comment)