UNPKG

tap

Version:

A Test-Anything-Protocol library for JavaScript

40 lines (33 loc) 756 B
'use strict'; // Only load these if compiled source is not already cached let babel; let jsxTransform; const transform = (source, options, modulePath) => { if (!babel) { babel = require('@babel/core'); jsxTransform = require('@babel/plugin-transform-react-jsx'); } if (source.includes('React')) { options.pragma = 'React.createElement'; options.pragmaFrag = 'React.Fragment'; } const plugins = [ [ jsxTransform, { pragma: options.pragma, pragmaFrag: options.pragmaFrag, useBuiltIns: true } ] ].filter(Boolean); const result = babel.transformSync(source, { plugins, filename: modulePath, sourceMaps: 'inline', babelrc: false, configFile: false }); return result.code; }; module.exports = transform;