UNPKG

@nx-dotnet/utils

Version:

This library was generated with [Nx](https://nx.dev).

94 lines 3.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProjectFileForNxProject = getProjectFileForNxProject; exports.getProjectFileForNxProjectSync = getProjectFileForNxProjectSync; exports.forEachDependantProject = forEachDependantProject; exports.getNxDotnetProjects = getNxDotnetProjects; exports.getProjectFilesForProject = getProjectFilesForProject; exports.inlineNxTokens = inlineNxTokens; exports.isNxCrystalEnabled = isNxCrystalEnabled; const devkit_1 = require("@nx/devkit"); const fs_1 = require("fs"); const semver_1 = require("semver"); const xmldoc_1 = require("xmldoc"); const glob_1 = require("./glob"); async function getProjectFileForNxProject(project, tree) { const srcDirectory = project.root; return (0, glob_1.findProjectFileInPath)(srcDirectory, tree); } function getProjectFileForNxProjectSync(project) { const srcDirectory = project.root; return (0, glob_1.findProjectFileInPathSync)(srcDirectory); } function forEachDependantProject(targetProject, graph, forEachCallback) { for (const dependant of graph.dependencies[targetProject] ?? []) { if (forEachCallback) { forEachCallback(graph.nodes[dependant.target].data, dependant.target, dependant.type === devkit_1.DependencyType.implicit); } } } async function getNxDotnetProjects(host) { const allProjects = (0, devkit_1.getProjects)(host); for (const [key, p] of allProjects) { let isNetProject = false; for (const pattern of ['*.csproj', '*.fsproj', '*.vbproj']) { const matches = await (0, glob_1.glob)(pattern, p?.root); if (matches?.length) { isNetProject = true; break; } } if (!isNetProject) { allProjects.delete(key); } } return allProjects; } function getProjectFilesForProject(host, project, projectName) { if (!project?.sourceRoot && !project?.root) { throw new Error(`Unable to read source root for project ${projectName}`); } return host .children(project.sourceRoot ?? project.root) .filter((x) => x.endsWith('proj')) .map((x) => `${project.sourceRoot ?? project.root}/${x}`); } /** * Currently @nx/devkit[normalizePath] functionality differs a bit based on OS. See */ function normalizePath(p) { return (0, devkit_1.normalizePath)(p).split('\\').join('/'); } function inlineNxTokens(value, project) { if (value.startsWith('{workspaceRoot}/')) { value = value.replace(/^\{workspaceRoot\}\//, ''); } if (value.includes('{workspaceRoot}')) { throw new Error(`[nx-dotnet] The {workspaceRoot} token is only valid at the beginning of an output.`); } value = value.replace('{projectRoot}', project.root); return value.replace('{projectName}', project.name); } function isNxCrystalEnabled(tree) { const nxJson = tree ? ((0, devkit_1.readNxJson)(tree) ?? {}) : (0, devkit_1.readJsonFile)('nx.json'); if (nxJson.useInferencePlugins === false) { return false; } // not the default if ((0, semver_1.lt)(devkit_1.NX_VERSION, '18.0.0')) { return process.env.NX_PCV3 === 'true' || process.env.NX_CRYSTAL === 'true'; } // should be on by default return !(process.env.NX_PCV3 === 'false' || process.env.NX_CRYSTAL === 'false'); } function tryGetXmlDocument(file) { try { return new xmldoc_1.XmlDocument((0, fs_1.readFileSync)(file).toString()); } catch { return null; } } //# sourceMappingURL=workspace.js.map