2019-01-18 22:00:15 +01:00
|
|
|
// taskr babel plugin with Babel 7 support
|
|
|
|
// https://github.com/lukeed/taskr/pull/305
|
|
|
|
'use strict'
|
|
|
|
|
2019-04-23 09:05:49 +02:00
|
|
|
const extname = require('path').extname
|
2019-01-18 22:00:15 +01:00
|
|
|
const transform = require('@babel/core').transform
|
|
|
|
|
|
|
|
module.exports = function (task) {
|
2019-04-23 09:05:49 +02:00
|
|
|
task.plugin('babel', {}, function * (file, babelOpts, { stripExtension } = {}) {
|
2019-01-18 22:00:15 +01:00
|
|
|
const options = {
|
2019-04-23 09:05:49 +02:00
|
|
|
...babelOpts,
|
|
|
|
compact: true,
|
|
|
|
babelrc: false,
|
|
|
|
configFile: false,
|
|
|
|
filename: file.base
|
2019-01-18 22:00:15 +01:00
|
|
|
}
|
|
|
|
const output = transform(file.data, options)
|
2019-04-23 09:05:49 +02:00
|
|
|
const ext = extname(file.base)
|
|
|
|
|
2019-05-03 18:57:47 +02:00
|
|
|
// Include declaration files as they are
|
|
|
|
if (file.base.endsWith('.d.ts')) return
|
|
|
|
|
2019-04-23 09:05:49 +02:00
|
|
|
// Replace `.ts|.tsx` with `.js` in files with an extension
|
|
|
|
if (ext) {
|
|
|
|
const extRegex = new RegExp(ext.replace('.', '\\.') + '$', 'i')
|
|
|
|
// Remove the extension if stripExtension is enabled or replace it with `.js`
|
|
|
|
file.base = file.base.replace(extRegex, stripExtension ? '' : '.js')
|
|
|
|
}
|
|
|
|
|
|
|
|
// Workaround for noop.js loading
|
2019-05-29 13:57:26 +02:00
|
|
|
if (file.base === 'next-dev.js') {
|
|
|
|
output.code = output.code.replace(
|
|
|
|
'// REPLACE_NOOP_IMPORT',
|
2019-06-05 20:15:42 +02:00
|
|
|
`import('./dev/noop');`
|
2019-05-29 13:57:26 +02:00
|
|
|
)
|
|
|
|
}
|
2019-04-23 09:05:49 +02:00
|
|
|
|
|
|
|
file.data = Buffer.from(setNextVersion(output.code))
|
2019-01-18 22:00:15 +01:00
|
|
|
})
|
|
|
|
}
|
2019-04-23 09:05:49 +02:00
|
|
|
|
|
|
|
function setNextVersion (code) {
|
2019-05-29 13:57:26 +02:00
|
|
|
return code.replace(
|
2019-08-12 22:53:11 +02:00
|
|
|
/process\.env\.__NEXT_VERSION/g,
|
2019-05-29 13:57:26 +02:00
|
|
|
`"${require('./package.json').version}"`
|
|
|
|
)
|
2019-04-23 09:05:49 +02:00
|
|
|
}
|