@nxworker/workspace
Version:
Nx plugin providing generators for managing workspace files, including the move-file generator for safely moving files between projects while updating all imports
56 lines (55 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
default: function() {
return _default;
},
initGenerator: function() {
return initGenerator;
}
});
const _devkit = require("@nx/devkit");
/**
* Gets the installed version of a package from package.json
*/ function getInstalledPackageVersion(tree, packageName) {
const packageJson = (0, _devkit.readJson)(tree, 'package.json');
return packageJson.devDependencies?.[packageName] || packageJson.dependencies?.[packageName] || null;
}
async function initGenerator(tree, options) {
const tasks = [];
// Determine the version to use for @nx/devkit and @nx/workspace
// Use NX_VERSION from @nx/devkit or fallback to the installed nx package version
let nxVersion = _devkit.NX_VERSION;
if (!nxVersion) {
const installedNxVersion = getInstalledPackageVersion(tree, 'nx');
if (!installedNxVersion) {
throw new Error('Could not determine Nx version. Please ensure nx is installed in your workspace.');
}
nxVersion = installedNxVersion;
}
// Add dependencies to package.json
// addDependenciesToPackageJson is a no-op if packages are already installed
// We pass keepExistingVersions: true to prevent version mismatches
if (!options.skipPackageJson) {
const installTask = (0, _devkit.addDependenciesToPackageJson)(tree, {}, {
'@nx/devkit': nxVersion,
'@nx/workspace': nxVersion
}, undefined, true);
tasks.push(installTask);
}
// Format files unless skipFormat is true
if (!options.skipFormat) {
await (0, _devkit.formatFiles)(tree);
}
return (0, _devkit.runTasksInSerial)(...tasks);
}
const _default = initGenerator;
//# sourceMappingURL=generator.js.map