@nx/next
Version:
34 lines (33 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.configureForSwc = configureForSwc;
const devkit_1 = require("@nx/devkit");
const internal_1 = require("@nx/js/internal");
function configureForSwc(tree, projectRoot, swcConfigName = '.swcrc', additonalExludes = []) {
const swcConfigPath = (0, devkit_1.joinPathFragments)(projectRoot, swcConfigName);
const rootPackageJson = (0, devkit_1.readJson)(tree, 'package.json');
const hasSwcDepedency = rootPackageJson.dependencies?.['@swc/core'] ||
rootPackageJson.devDependencies?.['@swc/core'];
const hasSwcCliDependency = rootPackageJson.dependencies?.['@swc/cli'] ||
rootPackageJson.devDependencies?.['@swc/cli'];
if (!tree.exists(swcConfigPath)) {
// We need to create a swc config file specific for custom server
(0, internal_1.addSwcConfig)(tree, projectRoot, 'commonjs', false, swcConfigName, [
...additonalExludes,
'.*.d.ts$',
]);
}
if (!hasSwcDepedency || !hasSwcCliDependency) {
addSwcDependencies(tree);
}
return () => (0, devkit_1.installPackagesTask)(tree);
}
function addSwcDependencies(tree) {
return (0, devkit_1.addDependenciesToPackageJson)(tree, {
'@swc/helpers': internal_1.swcHelpersVersion,
}, {
'@swc-node/register': internal_1.swcNodeVersion,
'@swc/cli': internal_1.swcCliVersion,
'@swc/core': internal_1.swcCoreVersion,
}, undefined, true);
}