Skip to main content
Glama
nrwl

Nx MCP Server

Official
by nrwl
get-nx-version.ts1.74 kB
import { findNxPackagePath } from '@nx-console/shared-npm'; import { NxVersion } from '@nx-console/nx-version'; import { coerce, SemVer } from 'semver'; import { readFileSync } from 'node:fs'; import { readAndParseJson } from '@nx-console/shared-file-system'; let nxWorkspacePackageJsonVersion: string | undefined; let loadedNxPackage = false; const defaultSemver = new SemVer('0.0.0'); export async function getNxVersion( workspacePath: string, reset = false, ): Promise<NxVersion> { if (!loadedNxPackage || reset) { const packagePath = await findNxPackagePath(workspacePath, 'package.json'); if (!packagePath) { return { major: defaultSemver.major, minor: defaultSemver.minor, full: defaultSemver.version, }; } nxWorkspacePackageJsonVersion = await readVersionFromPackageJson(packagePath); loadedNxPackage = true; } if (!nxWorkspacePackageJsonVersion) { return { major: defaultSemver.major, minor: defaultSemver.minor, full: defaultSemver.version, }; } const nxVersion = coerce(nxWorkspacePackageJsonVersion, { includePrerelease: true, }); if (!nxVersion) { return { major: defaultSemver.major, minor: defaultSemver.minor, full: defaultSemver.version, }; } return { major: nxVersion.major, minor: nxVersion.minor, full: nxVersion.version, }; } export async function resetNxVersionCache() { loadedNxPackage = false; nxWorkspacePackageJsonVersion = undefined; } async function readVersionFromPackageJson(packagePath: string) { try { const packageJson = await readAndParseJson(packagePath); return packageJson.version; } catch (error) { return undefined; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nrwl/nx-console'

If you have feedback or need assistance with the MCP directory API, please join our Discord server