32 lines
922 B
JavaScript
32 lines
922 B
JavaScript
import babel from '@babel/core';
|
|
|
|
import unpkgRewrite from '../plugins/unpkgRewrite.js';
|
|
|
|
const origin = process.env.ORIGIN || 'https://unpkg.com';
|
|
|
|
export default function rewriteBareModuleIdentifiers(code, packageConfig) {
|
|
const dependencies = Object.assign(
|
|
{},
|
|
packageConfig.peerDependencies,
|
|
packageConfig.dependencies
|
|
);
|
|
|
|
const options = {
|
|
// Ignore .babelrc and package.json babel config
|
|
// because we haven't installed dependencies so
|
|
// we can't load plugins; see #84
|
|
babelrc: false,
|
|
// Make a reasonable attempt to preserve whitespace
|
|
// from the original file. This ensures minified
|
|
// .mjs stays minified; see #149
|
|
retainLines: true,
|
|
plugins: [
|
|
unpkgRewrite(origin, dependencies),
|
|
'@babel/plugin-proposal-optional-chaining',
|
|
'@babel/plugin-proposal-nullish-coalescing-operator'
|
|
]
|
|
};
|
|
|
|
return babel.transform(code, options).code;
|
|
}
|