From 05923aa821a05f7f5f8989b61eee87fcc4210c66 Mon Sep 17 00:00:00 2001 From: AgentEnder Date: Fri, 27 Jan 2023 12:47:02 -0500 Subject: [PATCH] feat(devkit): add method to read installed Nx version --- docs/generated/devkit/index.md | 28 +++++++++++++++++++ .../packages/devkit/documents/index.md | 28 +++++++++++++++++++ packages/devkit/index.ts | 2 ++ packages/devkit/src/utils/package-json.ts | 9 ++++++ 4 files changed, 67 insertions(+) diff --git a/docs/generated/devkit/index.md b/docs/generated/devkit/index.md index 95efb14d9e73d7..fff6e07145fa71 100644 --- a/docs/generated/devkit/index.md +++ b/docs/generated/devkit/index.md @@ -155,6 +155,7 @@ It only uses language primitives and immutable objects - [generateFiles](../../devkit/documents/index#generatefiles) - [getDependentPackagesForProject](../../devkit/documents/index#getdependentpackagesforproject) - [getImportPath](../../devkit/documents/index#getimportpath) +- [getInstalledNxVersion](../../devkit/documents/index#getinstallednxversion) - [getNpmPackageSharedConfig](../../devkit/documents/index#getnpmpackagesharedconfig) - [getOutputsForTargetAndConfiguration](../../devkit/documents/index#getoutputsfortargetandconfiguration) - [getPackageManagerCommand](../../devkit/documents/index#getpackagemanagercommand) @@ -175,6 +176,7 @@ It only uses language primitives and immutable objects - [parseTargetString](../../devkit/documents/index#parsetargetstring) - [readAllWorkspaceConfiguration](../../devkit/documents/index#readallworkspaceconfiguration) - [readCachedProjectGraph](../../devkit/documents/index#readcachedprojectgraph) +- [readInstalledPackageVersion](../../devkit/documents/index#readinstalledpackageversion) - [readJson](../../devkit/documents/index#readjson) - [readJsonFile](../../devkit/documents/index#readjsonfile) - [readNxJson](../../devkit/documents/index#readnxjson) @@ -1347,6 +1349,16 @@ Prefixes project name with npm scope --- +### getInstalledNxVersion + +▸ **getInstalledNxVersion**(): `string` \| `null` + +#### Returns + +`string` \| `null` + +--- + ### getNpmPackageSharedConfig ▸ **getNpmPackageSharedConfig**(`pkgName`, `version`): [`SharedLibraryConfig`](../../devkit/documents/index#sharedlibraryconfig) \| `undefined` @@ -1797,6 +1809,22 @@ Synchronously reads the latest cached copy of the workspace's ProjectGraph. --- +### readInstalledPackageVersion + +▸ **readInstalledPackageVersion**(`pkg`): `string` \| `null` + +#### Parameters + +| Name | Type | +| :---- | :------- | +| `pkg` | `string` | + +#### Returns + +`string` \| `null` + +--- + ### readJson ▸ **readJson**<`T`\>(`tree`, `path`, `options?`): `T` diff --git a/docs/generated/packages/devkit/documents/index.md b/docs/generated/packages/devkit/documents/index.md index 95efb14d9e73d7..fff6e07145fa71 100644 --- a/docs/generated/packages/devkit/documents/index.md +++ b/docs/generated/packages/devkit/documents/index.md @@ -155,6 +155,7 @@ It only uses language primitives and immutable objects - [generateFiles](../../devkit/documents/index#generatefiles) - [getDependentPackagesForProject](../../devkit/documents/index#getdependentpackagesforproject) - [getImportPath](../../devkit/documents/index#getimportpath) +- [getInstalledNxVersion](../../devkit/documents/index#getinstallednxversion) - [getNpmPackageSharedConfig](../../devkit/documents/index#getnpmpackagesharedconfig) - [getOutputsForTargetAndConfiguration](../../devkit/documents/index#getoutputsfortargetandconfiguration) - [getPackageManagerCommand](../../devkit/documents/index#getpackagemanagercommand) @@ -175,6 +176,7 @@ It only uses language primitives and immutable objects - [parseTargetString](../../devkit/documents/index#parsetargetstring) - [readAllWorkspaceConfiguration](../../devkit/documents/index#readallworkspaceconfiguration) - [readCachedProjectGraph](../../devkit/documents/index#readcachedprojectgraph) +- [readInstalledPackageVersion](../../devkit/documents/index#readinstalledpackageversion) - [readJson](../../devkit/documents/index#readjson) - [readJsonFile](../../devkit/documents/index#readjsonfile) - [readNxJson](../../devkit/documents/index#readnxjson) @@ -1347,6 +1349,16 @@ Prefixes project name with npm scope --- +### getInstalledNxVersion + +▸ **getInstalledNxVersion**(): `string` \| `null` + +#### Returns + +`string` \| `null` + +--- + ### getNpmPackageSharedConfig ▸ **getNpmPackageSharedConfig**(`pkgName`, `version`): [`SharedLibraryConfig`](../../devkit/documents/index#sharedlibraryconfig) \| `undefined` @@ -1797,6 +1809,22 @@ Synchronously reads the latest cached copy of the workspace's ProjectGraph. --- +### readInstalledPackageVersion + +▸ **readInstalledPackageVersion**(`pkg`): `string` \| `null` + +#### Parameters + +| Name | Type | +| :---- | :------- | +| `pkg` | `string` | + +#### Returns + +`string` \| `null` + +--- + ### readJson ▸ **readJson**<`T`\>(`tree`, `path`, `options?`): `T` diff --git a/packages/devkit/index.ts b/packages/devkit/index.ts index 462aaaae8bfc4e..04d74c1a4323a5 100644 --- a/packages/devkit/index.ts +++ b/packages/devkit/index.ts @@ -231,6 +231,8 @@ export { addDependenciesToPackageJson, ensurePackage, removeDependenciesFromPackageJson, + getInstalledNxVersion, + readInstalledPackageVersion, } from './src/utils/package-json'; /** diff --git a/packages/devkit/src/utils/package-json.ts b/packages/devkit/src/utils/package-json.ts index 411c3f7ef72f5e..abb9166d4072fd 100644 --- a/packages/devkit/src/utils/package-json.ts +++ b/packages/devkit/src/utils/package-json.ts @@ -6,6 +6,7 @@ import { clean, coerce, gt, satisfies } from 'semver'; import { getPackageManagerCommand } from 'nx/src/utils/package-manager'; import { execSync } from 'child_process'; import { readModulePackageJson } from 'nx/src/utils/package-json'; +import { workspaceRoot } from 'nx/src/utils/workspace-root'; const NON_SEMVER_TAGS = { '*': 2, @@ -381,3 +382,11 @@ export async function ensurePackage( } } } + +export function readInstalledPackageVersion(pkg: string): string | null { + return readModulePackageJson(pkg).packageJson?.version; +} + +export function getInstalledNxVersion(): string | null { + return readInstalledPackageVersion('nx'); +}