diff --git a/CODEOWNERS b/CODEOWNERS index 47a640578d..5975b70359 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -131,8 +131,7 @@ rust-toolchain @nrwl/nx-native-reviewers /docs/generated/devkit/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers /docs/generated/packages/devkit/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers /packages/devkit/** @nrwl/nx-devkit-reviewers -/packages/devkit/index.js @FrozenPandaz @vsavkin -/packages/devkit/index.d.ts @FrozenPandaz @vsavkin +/packages/devkit/index.ts @FrozenPandaz @vsavkin /packages/devkit/public-api.ts @FrozenPandaz @vsavkin /packages/devkit/nx.ts @FrozenPandaz @vsavkin diff --git a/packages/angular/src/migrations/update-15-2-0/remove-platform-server-exports.spec.ts b/packages/angular/src/migrations/update-15-2-0/remove-platform-server-exports.spec.ts index fee53ae4fa..8ba66afa05 100644 --- a/packages/angular/src/migrations/update-15-2-0/remove-platform-server-exports.spec.ts +++ b/packages/angular/src/migrations/update-15-2-0/remove-platform-server-exports.spec.ts @@ -1,5 +1,5 @@ import type { Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing-pre16'; +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; import removePlatformServerExports from './remove-platform-server-exports'; diff --git a/packages/angular/src/migrations/update-15-2-0/update-karma-main-file.spec.ts b/packages/angular/src/migrations/update-15-2-0/update-karma-main-file.spec.ts index aa003a5138..c12eeaee58 100644 --- a/packages/angular/src/migrations/update-15-2-0/update-karma-main-file.spec.ts +++ b/packages/angular/src/migrations/update-15-2-0/update-karma-main-file.spec.ts @@ -1,6 +1,6 @@ import type { Tree } from '@nx/devkit'; import { addProjectConfiguration, stripIndents } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing-pre16'; +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; import { Builders } from '@schematics/angular/utility/workspace-models'; import updateKarmaMainFile from './update-karma-main-file'; diff --git a/packages/angular/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.spec.ts b/packages/angular/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.spec.ts index 7b8b168687..c77927cec5 100644 --- a/packages/angular/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.spec.ts +++ b/packages/angular/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.spec.ts @@ -1,5 +1,5 @@ import type { Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing-pre16'; +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; import migration from './remove-render-module-platform-server-exports'; describe('remove-render-module-platform-server-exports migration', () => { diff --git a/packages/devkit/index.js b/packages/devkit/index.js deleted file mode 100644 index 605517a688..0000000000 --- a/packages/devkit/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * The Nx Devkit is the underlying technology used to customize Nx to support - * different technologies and custom use-cases. It contains many utility - * functions for reading and writing files, updating configuration, - * working with Abstract Syntax Trees(ASTs), and more. - * - * As with most things in Nx, the core of Nx Devkit is very simple. - * It only uses language primitives and immutable objects - * (the tree being the only exception). - * - * @module @nx/devkit - */ - -try { - // TODO(v17): We will not need to maintain this file anymore, change this to a regular export statement - // This file was introduced in the nx package in v15.7 but devkit is compatible down to v14.1 which doesn't have this file. - module.exports = require('nx/src/devkit-exports'); -} catch { - // These are the nx-reexports from before v16 - // TODO(v17): This can be removed once the above is done. - module.exports = require('./nx-reexports-pre16'); -} - -module.exports = { - ...module.exports, - ...require('./public-api'), -}; diff --git a/packages/devkit/index.d.ts b/packages/devkit/index.ts similarity index 77% rename from packages/devkit/index.d.ts rename to packages/devkit/index.ts index 56dd794870..b7564ee0be 100644 --- a/packages/devkit/index.d.ts +++ b/packages/devkit/index.ts @@ -11,9 +11,6 @@ * @module @nx/devkit */ -// TODO(v17): remove this file, we can use the normally generated index.d.ts from index.ts - -/* eslint-disable @typescript-eslint/no-restricted-imports */ +// eslint-disable-next-line @typescript-eslint/no-restricted-imports export * from 'nx/src/devkit-exports'; - export * from './public-api'; diff --git a/packages/devkit/nx-reexports-pre16.ts b/packages/devkit/nx-reexports-pre16.ts deleted file mode 100644 index f3ffe1e2ae..0000000000 --- a/packages/devkit/nx-reexports-pre16.ts +++ /dev/null @@ -1,225 +0,0 @@ -/** - * STOP! Do not change this file! - * - * If you need to export something from nx, it should go into nx/src/devkit-exports - */ - -// TODO(v17): Remove this file - -/* eslint-disable @typescript-eslint/no-restricted-imports */ - -/** - * @category Tree - */ -export type { Tree, FileChange } from 'nx/src/generators/tree'; - -/** - * @category Workspace - */ -export type { - WorkspaceJsonConfiguration, - ProjectsConfigurations, - TargetDependencyConfig, - TargetConfiguration, - ProjectConfiguration, - ProjectType, - Workspace, -} from 'nx/src/config/workspace-json-project-json'; - -/** - * @category Workspace - */ -export type { - Generator, - GeneratorCallback, - Executor, - ExecutorContext, - TaskGraphExecutor, - GeneratorsJson, - ExecutorsJson, - MigrationsJson, - CustomHasher, - HasherContext, -} from 'nx/src/config/misc-interfaces'; - -/** - * @category Workspace - */ -export { Workspaces } from 'nx/src/config/workspaces'; - -export { workspaceLayout } from 'nx/src/config/configuration'; - -export type { - NxPlugin, - ProjectTargetConfigurator, -} from 'nx/src/utils/nx-plugin'; - -/** - * @category Workspace - */ -export type { Task, TaskGraph } from 'nx/src/config/task-graph'; - -/** - * @category Workspace - */ -export type { - ImplicitDependencyEntry, - ImplicitJsonSubsetDependency, - NxJsonConfiguration, - NxAffectedConfig, -} from 'nx/src/config/nx-json'; - -/** - * @category Logger - */ -export { logger } from 'nx/src/utils/logger'; - -/** - * @category Utils - */ -export { output } from 'nx/src/utils/output'; - -/** - * @category Package Manager - */ -export type { PackageManager } from 'nx/src/utils/package-manager'; - -/** - * @category Package Manager - */ -export { - getPackageManagerCommand, - detectPackageManager, - getPackageManagerVersion, -} from 'nx/src/utils/package-manager'; - -/** - * @category Commands - */ -export type { Target } from 'nx/src/command-line/run'; -/** - * @category Commands - */ -export { runExecutor } from 'nx/src/command-line/run'; - -/** - * @category Generators - */ -export { - addProjectConfiguration, - readProjectConfiguration, - removeProjectConfiguration, - updateProjectConfiguration, - getProjects, -} from 'nx/src/generators/utils/project-configuration'; - -/** - * @category Generators - */ -export { - readNxJson, - updateNxJson, - readWorkspaceConfiguration, - updateWorkspaceConfiguration, - isStandaloneProject, - WorkspaceConfiguration, - getWorkspacePath, -} from 'nx/src/generators/utils/project-configuration'; - -/** - * @category Project Graph - */ -export type { - ProjectFileMap, - FileData, - ProjectGraph, - ProjectGraphDependency, - ProjectGraphNode, - ProjectGraphProjectNode, - ProjectGraphExternalNode, - ProjectGraphProcessorContext, -} from 'nx/src/config/project-graph'; - -/** - * @category Project Graph - */ -export { DependencyType } from 'nx/src/config/project-graph'; - -/** - * @category Project Graph - */ -export { ProjectGraphBuilder } from 'nx/src/project-graph/project-graph-builder'; - -/** - * @category Utils - */ -export { readJson, writeJson, updateJson } from 'nx/src/generators/utils/json'; - -/** - * @category Utils - */ -export { parseJson, serializeJson, stripJsonComments } from 'nx/src/utils/json'; - -/** - * @category Utils - */ -export type { JsonParseOptions, JsonSerializeOptions } from 'nx/src/utils/json'; - -/** - * @category Utils - */ -export { readJsonFile, writeJsonFile } from 'nx/src/utils/fileutils'; - -/** - * @category Utils - */ -export { stripIndents } from 'nx/src/utils/strip-indents'; - -/** - * @category Utils - */ -export { joinPathFragments, normalizePath } from 'nx/src/utils/path'; - -// TODO(v16): Change this to export from 'nx/src/utils/workspace-root' -/** - * @category Utils - */ -export { workspaceRoot, appRootPath } from 'nx/src/utils/app-root'; - -/** - * @category Utils - */ -export { reverse } from 'nx/src/project-graph/operators'; -/** - * @category Utils - */ -export { - createProjectGraphAsync, - readCachedProjectGraph, -} from 'nx/src/project-graph/project-graph'; - -/** - * @category Utils - */ -export { getOutputsForTargetAndConfiguration } from 'nx/src/tasks-runner/utils'; - -/** - * @category Utils - */ -export { - defaultTasksRunner, - DefaultTasksRunnerOptions, - RemoteCache, -} from 'nx/src/tasks-runner/default-tasks-runner'; - -/** - * @category Utils - */ -export { Hash, TaskHasher, Hasher } from 'nx/src/hasher/task-hasher'; - -/** - * @category Utils - */ -export { cacheDir } from 'nx/src/utils/cache-directory'; - -// STOP! Do not export any new things from the nx package diff --git a/packages/devkit/nx.ts b/packages/devkit/nx.ts index 9507d85076..fd978a398b 100644 --- a/packages/devkit/nx.ts +++ b/packages/devkit/nx.ts @@ -3,18 +3,13 @@ // - import {} from 'nx/src/devkit-internals' export function requireNx(): typeof import('nx/src/devkit-exports') & Partial { + let result = { ...require('nx/src/devkit-exports') }; try { - let result = { ...require('nx/src/devkit-exports') }; - try { - result = { - ...result, - // Remove in Nx v18, devkit should not support Nx v16.0.2 at that point. - ...require('nx/src/devkit-internals'), - }; - } catch {} - return result; - } catch { - // Remove in Nx V17, devkit should not support Nx < 16 at that point. - return require('./nx-reexports-pre16'); - } + result = { + ...result, + // Remove in Nx v18, devkit should not support Nx v16.0.2 at that point. + ...require('nx/src/devkit-internals'), + }; + } catch {} + return result; } diff --git a/packages/devkit/package.json b/packages/devkit/package.json index 9e33c35b60..9096ba40f4 100644 --- a/packages/devkit/package.json +++ b/packages/devkit/package.json @@ -36,7 +36,7 @@ "semver": "7.5.3" }, "peerDependencies": { - "nx": ">= 15 <= 17" + "nx": ">= 16 <= 18" }, "publishConfig": { "access": "public" diff --git a/packages/devkit/testing-pre16.ts b/packages/devkit/testing-pre16.ts deleted file mode 100644 index 3f0649d18f..0000000000 --- a/packages/devkit/testing-pre16.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable @typescript-eslint/no-restricted-imports */ -export { - createTreeWithEmptyWorkspace, - createTreeWithEmptyV1Workspace, -} from 'nx/src/generators/testing-utils/create-tree-with-empty-workspace'; -export { createTree } from 'nx/src/generators/testing-utils/create-tree'; diff --git a/packages/devkit/testing.js b/packages/devkit/testing.js deleted file mode 100644 index c2865973dc..0000000000 --- a/packages/devkit/testing.js +++ /dev/null @@ -1,9 +0,0 @@ -try { - // TODO(v17): We will not need to maintain this file anymore, change this to a regular export statement - // This file was introduced in the nx package in v15.7 but devkit is compatible down to v14.1 which doesn't have this file. - module.exports = require('nx/src/devkit-testing-exports'); -} catch { - // These are the nx-reexports from before v16 - // TODO(v17): This can be removed once the above is done. - module.exports = require('./testing-pre16'); -} diff --git a/packages/devkit/testing.d.ts b/packages/devkit/testing.ts similarity index 100% rename from packages/devkit/testing.d.ts rename to packages/devkit/testing.ts diff --git a/packages/devkit/tsconfig.lib.json b/packages/devkit/tsconfig.lib.json index 3537587770..435fef7713 100644 --- a/packages/devkit/tsconfig.lib.json +++ b/packages/devkit/tsconfig.lib.json @@ -14,6 +14,5 @@ "internal-testing-utils.ts", "jest.config.ts" ], - "files": ["./index.d.ts"], "include": ["**/*.ts"] } diff --git a/packages/js/src/utils/get-import-path.spec.ts b/packages/js/src/utils/get-import-path.spec.ts index ab03cd4d3b..ccada4f137 100644 --- a/packages/js/src/utils/get-import-path.spec.ts +++ b/packages/js/src/utils/get-import-path.spec.ts @@ -1,6 +1,6 @@ import { getImportPath } from './get-import-path'; import { Tree, writeJson } from '@nx/devkit'; -import { createTree } from '@nx/devkit/testing-pre16'; +import { createTree } from '@nx/devkit/testing'; describe('getImportPath', () => { let tree: Tree; diff --git a/packages/next/src/migrations/update-16-3-0/remove-root-build-option.spec.ts b/packages/next/src/migrations/update-16-3-0/remove-root-build-option.spec.ts index 04cd9a5525..7454b4406e 100644 --- a/packages/next/src/migrations/update-16-3-0/remove-root-build-option.spec.ts +++ b/packages/next/src/migrations/update-16-3-0/remove-root-build-option.spec.ts @@ -1,5 +1,5 @@ import update from './remove-root-build-option'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing-pre16'; +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; import { addProjectConfiguration, readProjectConfiguration, diff --git a/scripts/patched-jest-resolver.js b/scripts/patched-jest-resolver.js index 9dd03bf3c1..fa62845a45 100644 --- a/scripts/patched-jest-resolver.js +++ b/scripts/patched-jest-resolver.js @@ -82,14 +82,6 @@ module.exports = function (path, options) { // Fallback to using typescript compilerSetup = compilerSetup || getCompilerSetup(options.rootDir); const { compilerOptions, host } = compilerSetup; - - // TODO(v17): Remove this workaround - // We have some weird d.ts + .js business going on for these 2 imports so this is a workaround - if (path === '@nx/devkit') { - return join(__dirname, '../', './packages/devkit/index.js'); - } else if (path === '@nx/devkit/testing') { - return join(__dirname, '../', './packages/devkit/testing.js'); - } return ts.resolveModuleName( path, join(options.basedir, 'fake-placeholder.ts'),