UNPKG

import-essex

Version:

Import JSX as essex components in NodeJS

40 lines (35 loc) 789 B
// Only load these if compiled source is not already cached let babel, reactPreset; const transform = async (source, filename) => { if (!babel) { babel = await import('@babel/core'); reactPreset = await import('@babel/preset-react'); } const presets = [ [ reactPreset.default, { runtime: 'automatic', importSource: 'essex', development: true, pure: false, useBuiltIns: true, useSpread: true, }, ], ]; try { const result = await babel.transformAsync(source, { presets, filename, sourceMaps: 'inline', babelrc: false, configFile: false, }); return result.code; } catch (e) { console.error(e.message); throw e; } }; export default transform;