nx/packages/react/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.ts

39 lines
963 B
TypeScript

import {
getProjects,
type Tree,
type ProjectConfiguration,
joinPathFragments,
formatFiles,
} from '@nx/devkit';
import { addMfEnvToTargetDefaultInputs } from '../../utils/add-mf-env-to-inputs';
export default async function (tree: Tree) {
if (!hasModuleFederationProject(tree)) {
return;
}
addMfEnvToTargetDefaultInputs(tree);
await formatFiles(tree);
}
function hasModuleFederationProject(tree: Tree) {
const projects = getProjects(tree);
for (const project of projects.values()) {
const targets = project.targets || {};
for (const [_, target] of Object.entries(targets)) {
if (
target.executor === '@nx/webpack:webpack' &&
(tree.exists(
joinPathFragments(project.root, 'module-federation.config.ts')
) ||
tree.exists(
joinPathFragments(project.root, 'module-federation.config.js')
))
) {
return true;
}
}
}
return false;
}