Skip to main content
Glama
nrwl

Nx MCP Server

Official
by nrwl
nx-workspace-lerna.test.ts2.83 kB
import { join } from 'path'; import { NxlsWrapper } from '../nxls-wrapper'; import { e2eCwd, uniq, waitFor } from '@nx-console/shared-e2e-utils'; import { mkdirSync, writeFileSync } from 'fs'; import { execSync } from 'child_process'; import { NxWorkspaceRequest } from '@nx-console/language-server-types'; import { NxWorkspace } from '@nx-console/shared-types'; let nxlsWrapper: NxlsWrapper; const workspaceName = uniq('workspace'); const workspacePath = join(e2eCwd, workspaceName); xdescribe('nx/workspace - lerna.json only repo', () => { beforeAll(async () => { mkdirSync(workspacePath, { recursive: true }); execSync('npx lerna init', { cwd: workspacePath, }); const packagesDir = join(workspacePath, 'packages'); mkdirSync(packagesDir); mkdirSync(join(packagesDir, 'project-1')); writeFileSync( join(packagesDir, 'project-1', 'package.json'), ` { "scripts": { "echo-1": "echo 1" } }`, ); mkdirSync(join(packagesDir, 'project-2')); writeFileSync( join(packagesDir, 'project-2', 'package.json'), ` { "scripts": { "echo-2": "echo 2" } }`, ); mkdirSync(join(packagesDir, 'project-3')); writeFileSync( join(packagesDir, 'project-3', 'package.json'), ` { "scripts": { "echo-3": "echo 3" } }`, ); await waitFor(11000); nxlsWrapper = new NxlsWrapper(); await nxlsWrapper.startNxls(workspacePath); }); afterAll(async () => { await nxlsWrapper.stopNxls(); }); it('should return correct projects for lerna workspace', async () => { const workspaceResponse = await nxlsWrapper.sendRequest({ ...NxWorkspaceRequest, params: { reset: false, }, }); expect( Object.keys((workspaceResponse.result as NxWorkspace).projectGraph.nodes), ).toEqual(['project-1', 'project-2', 'project-3']); }); it('should return correct targets for lerna workspace', async () => { const workspaceResponse = await nxlsWrapper.sendRequest({ ...NxWorkspaceRequest, params: { reset: false, }, }); const projects = (workspaceResponse.result as NxWorkspace).projectGraph .nodes; expect(Object.keys(projects['project-1']?.data.targets ?? {})) .toMatchInlineSnapshot(` Array [ "echo-1", "nx-release-publish", ] `); expect(Object.keys(projects['project-2']?.data.targets ?? {})) .toMatchInlineSnapshot(` Array [ "echo-2", "nx-release-publish", ] `); expect(Object.keys(projects['project-3']?.data.targets ?? {})) .toMatchInlineSnapshot(` Array [ "echo-3", "nx-release-publish", ] `); }); });

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