From 6f4959e6efe05cb6cb2097c024160f25a4331805 Mon Sep 17 00:00:00 2001 From: FrozenPandaz Date: Tue, 1 Oct 2024 17:54:31 -0400 Subject: [PATCH] fix(core): remove axios import from main code loading --- packages/nx/.eslintrc.json | 14 ++++++++++++-- .../release/config/filter-release-groups.spec.ts | 2 +- .../command-line/release/utils/print-changes.ts | 8 +++----- .../release/utils/resolve-nx-json-error-message.ts | 3 ++- packages/nx/src/nx-cloud/utilities/axios.ts | 6 ++---- packages/nx/src/nx-cloud/utilities/onboarding.ts | 2 +- packages/nx/src/nx-cloud/utilities/url-shorten.ts | 2 +- packages/nx/src/project-graph/file-utils.ts | 2 +- packages/nx/src/tasks-runner/create-task-graph.ts | 2 +- packages/nx/src/utils/git-utils.ts | 2 +- 10 files changed, 25 insertions(+), 18 deletions(-) diff --git a/packages/nx/.eslintrc.json b/packages/nx/.eslintrc.json index f3132262034ac..040a6956efd77 100644 --- a/packages/nx/.eslintrc.json +++ b/packages/nx/.eslintrc.json @@ -9,8 +9,18 @@ "no-restricted-imports": [ "error", { - "name": "fs-extra", - "message": "Please use equivalent utilities from `node:fs` instead." + "paths": [ + { + "name": "fs-extra", + "message": "Please use equivalent utilities from `node:fs` instead." + } + ], + "patterns": [ + { + "group": ["**/devkit-exports"], + "message": "Do not import from devkit-exports from the nx package" + } + ] } ] } diff --git a/packages/nx/src/command-line/release/config/filter-release-groups.spec.ts b/packages/nx/src/command-line/release/config/filter-release-groups.spec.ts index 97d1a63669353..12d0ec341e7b6 100644 --- a/packages/nx/src/command-line/release/config/filter-release-groups.spec.ts +++ b/packages/nx/src/command-line/release/config/filter-release-groups.spec.ts @@ -1,7 +1,7 @@ -import { type ProjectGraph } from '../../../devkit-exports'; import { IMPLICIT_DEFAULT_RELEASE_GROUP, NxReleaseConfig } from './config'; import { DEFAULT_CONVENTIONAL_COMMITS_CONFIG } from './conventional-commits'; import { filterReleaseGroups } from './filter-release-groups'; +import type { ProjectGraph } from '../../../config/project-graph'; describe('filterReleaseGroups()', () => { let projectGraph: ProjectGraph; diff --git a/packages/nx/src/command-line/release/utils/print-changes.ts b/packages/nx/src/command-line/release/utils/print-changes.ts index 28febcb993517..f27d0941d1a93 100644 --- a/packages/nx/src/command-line/release/utils/print-changes.ts +++ b/packages/nx/src/command-line/release/utils/print-changes.ts @@ -1,12 +1,10 @@ import * as chalk from 'chalk'; import { diff } from 'jest-diff'; import { readFileSync } from 'node:fs'; -import { - joinPathFragments, - logger, - workspaceRoot, -} from '../../../devkit-exports'; import { Tree, flushChanges } from '../../../generators/tree'; +import { workspaceRoot } from '../../../utils/workspace-root'; +import { joinPathFragments } from '../../../utils/path'; +import { logger } from '../../../utils/logger'; // jest-diff does not export this constant const NO_DIFF_MESSAGE = 'Compared values have no visual difference.'; diff --git a/packages/nx/src/command-line/release/utils/resolve-nx-json-error-message.ts b/packages/nx/src/command-line/release/utils/resolve-nx-json-error-message.ts index dd6d04bf89757..d9d9d5f5dc035 100644 --- a/packages/nx/src/command-line/release/utils/resolve-nx-json-error-message.ts +++ b/packages/nx/src/command-line/release/utils/resolve-nx-json-error-message.ts @@ -1,6 +1,7 @@ import { readFileSync } from 'node:fs'; import { relative } from 'node:path'; -import { joinPathFragments, workspaceRoot } from '../../../devkit-exports'; +import { joinPathFragments } from '../../../utils/path'; +import { workspaceRoot } from '../../../utils/workspace-root'; export async function resolveNxJsonConfigErrorMessage( propPath: string[] diff --git a/packages/nx/src/nx-cloud/utilities/axios.ts b/packages/nx/src/nx-cloud/utilities/axios.ts index 7954ca282235d..ae8d31b539399 100644 --- a/packages/nx/src/nx-cloud/utilities/axios.ts +++ b/packages/nx/src/nx-cloud/utilities/axios.ts @@ -1,4 +1,4 @@ -import { AxiosRequestConfig } from 'axios'; +import type { AxiosRequestConfig } from 'axios'; import { join } from 'path'; import { ACCESS_TOKEN, @@ -7,8 +7,6 @@ import { } from './environment'; import { CloudTaskRunnerOptions } from '../nx-cloud-tasks-runner-shell'; -const axios = require('axios'); - export function createApiAxiosInstance(options: CloudTaskRunnerOptions) { let axiosConfigBuilder = (axiosConfig: AxiosRequestConfig) => axiosConfig; const baseUrl = @@ -31,7 +29,7 @@ export function createApiAxiosInstance(options: CloudTaskRunnerOptions) { axiosConfigBuilder = nxCloudProxyConfig ?? axiosConfigBuilder; } - return axios.create( + return require('axios').create( axiosConfigBuilder({ baseURL: baseUrl, timeout: NX_CLOUD_NO_TIMEOUTS ? UNLIMITED_TIMEOUT : 10000, diff --git a/packages/nx/src/nx-cloud/utilities/onboarding.ts b/packages/nx/src/nx-cloud/utilities/onboarding.ts index 114202a3b9146..30c9ed8f75dda 100644 --- a/packages/nx/src/nx-cloud/utilities/onboarding.ts +++ b/packages/nx/src/nx-cloud/utilities/onboarding.ts @@ -1,9 +1,9 @@ -import { readNxJson } from '../../devkit-exports'; import type { Tree } from '../../generators/tree'; import { NxCloudOnBoardingStatus } from '../models/onboarding-status'; import { isWorkspaceClaimed } from './is-workspace-claimed'; import { createNxCloudOnboardingURL } from './url-shorten'; import { getRunnerOptions } from '../../tasks-runner/run-command'; +import { readNxJson } from '../../generators/utils/nx-json'; export async function createNxCloudOnboardingURLForWelcomeApp( tree: Tree, diff --git a/packages/nx/src/nx-cloud/utilities/url-shorten.ts b/packages/nx/src/nx-cloud/utilities/url-shorten.ts index fac7532ee5432..ffb698a3aee27 100644 --- a/packages/nx/src/nx-cloud/utilities/url-shorten.ts +++ b/packages/nx/src/nx-cloud/utilities/url-shorten.ts @@ -1,4 +1,4 @@ -import { logger } from '../../devkit-exports'; +import { logger } from '../../utils/logger'; import { getGithubSlugOrNull } from '../../utils/git-utils'; import { getCloudUrl } from './get-cloud-options'; diff --git a/packages/nx/src/project-graph/file-utils.ts b/packages/nx/src/project-graph/file-utils.ts index 6f609ae6f22e7..05a5f352f8e11 100644 --- a/packages/nx/src/project-graph/file-utils.ts +++ b/packages/nx/src/project-graph/file-utils.ts @@ -28,7 +28,7 @@ import { import { globWithWorkspaceContextSync } from '../utils/workspace-context'; import { buildProjectFromProjectJson } from '../plugins/project-json/build-nodes/project-json'; import { PackageJson } from '../utils/package-json'; -import { NxJsonConfiguration } from '../devkit-exports'; +import { NxJsonConfiguration } from '../config/nx-json'; export interface Change { type: string; diff --git a/packages/nx/src/tasks-runner/create-task-graph.ts b/packages/nx/src/tasks-runner/create-task-graph.ts index 909fc411beba1..596ea1580d6e7 100644 --- a/packages/nx/src/tasks-runner/create-task-graph.ts +++ b/packages/nx/src/tasks-runner/create-task-graph.ts @@ -6,8 +6,8 @@ import { } from '../utils/project-graph-utils'; import { Task, TaskGraph } from '../config/task-graph'; import { TargetDefaults, TargetDependencies } from '../config/nx-json'; -import { TargetDependencyConfig } from '../devkit-exports'; import { output } from '../utils/output'; +import { TargetDependencyConfig } from '../config/workspace-json-project-json'; export class ProcessTasks { private readonly seen = new Set(); diff --git a/packages/nx/src/utils/git-utils.ts b/packages/nx/src/utils/git-utils.ts index fe457e939f33c..1a931f45d3840 100644 --- a/packages/nx/src/utils/git-utils.ts +++ b/packages/nx/src/utils/git-utils.ts @@ -1,6 +1,6 @@ import { exec, ExecOptions, execSync } from 'child_process'; import { dirname, join, posix, sep } from 'path'; -import { logger } from '../devkit-exports'; +import { logger } from './logger'; function execAsync(command: string, execOptions: ExecOptions) { return new Promise((res, rej) => {