const babel = require('@babel/core') async function plugin(bundle, { name, data, mode }) { return new Promise((resolve, reject) => { // only transform javascript files if (name.match(/\.js$|\.cjs$|\.mjs$/)) { babel.transform(data.toString(), (err, result) => { if (err) reject(err) // overwrite the old code with the transpiled code in the bundle bundle.write(name, result.code, { mode }) resolve() }) } else { resolve() } }) } module.exports = plugin