28 lines
974 B
TypeScript
28 lines
974 B
TypeScript
import { ProjectConfiguration, Workspaces } from '@nx/devkit';
|
|
import { join } from 'path';
|
|
import { tmpProjPath } from './create-project-utils';
|
|
import { readJson, updateFile } from './file-utils';
|
|
|
|
export function updateProjectConfig(
|
|
projectName: string,
|
|
callback: (c: ProjectConfiguration) => ProjectConfiguration
|
|
) {
|
|
const workspace = readResolvedConfiguration();
|
|
const root = workspace.projects[projectName].root;
|
|
const path = join(root, 'project.json');
|
|
const current = readJson(path);
|
|
updateFile(path, JSON.stringify(callback(current), null, 2));
|
|
}
|
|
|
|
export function readResolvedConfiguration() {
|
|
process.env.NX_PROJECT_GLOB_CACHE = 'false';
|
|
const ws = new Workspaces(tmpProjPath());
|
|
return ws.readProjectsConfigurations();
|
|
}
|
|
|
|
export function readProjectConfig(projectName: string): ProjectConfiguration {
|
|
const root = readResolvedConfiguration().projects[projectName].root;
|
|
const path = join(root, 'project.json');
|
|
return readJson(path);
|
|
}
|