Files

20 lines
524 B
JavaScript

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