Skip to content

Commit

Permalink
chore(linter): remove dependency on @nrwl/workspace
Browse files Browse the repository at this point in the history
  • Loading branch information
FrozenPandaz committed Nov 23, 2022
1 parent d847ee1 commit f90fb30
Show file tree
Hide file tree
Showing 35 changed files with 82 additions and 67 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Tree } from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';
import type { PropertyAssignment } from 'typescript';
import { SyntaxKind } from 'typescript';
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
stripIndents,
visitNotIgnoredFiles,
} from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';
import { tsquery } from '@phenomnomnominal/tsquery';
import { extname } from 'path';
import type {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import type { Tree } from '@nrwl/devkit';
import {
findNodes,
getSourceNodes,
} from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';
import { getSourceNodes } from '@nrwl/workspace/src/utilities/typescript';
import type { PropertyDeclaration } from 'typescript';
import { SyntaxKind } from 'typescript';
import { getTsSourceFile } from '../../../utils/nx-devkit/ast-utils';
Expand Down
2 changes: 1 addition & 1 deletion packages/angular/src/utils/nx-devkit/ast-utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as ts from 'typescript';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import { getSourceNodes } from '@nrwl/workspace/src/utilities/typescript/get-source-nodes';
import * as path from 'path';
import { names, readProjectConfiguration, Tree } from '@nrwl/devkit';
Expand Down
1 change: 0 additions & 1 deletion packages/eslint-plugin-nx/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
},
"dependencies": {
"@nrwl/devkit": "file:../devkit",
"@nrwl/workspace": "file:../workspace",
"@typescript-eslint/utils": "^5.36.1",
"chalk": "4.1.0",
"confusing-browser-globals": "^1.0.9",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { FileData, ProjectGraph } from '@nrwl/devkit';
import { DependencyType } from '@nrwl/devkit';
import { mapProjectGraphFiles } from '@nrwl/workspace/src/utils/runtime-lint-utils';
import { mapProjectGraphFiles } from '../utils/runtime-lint-utils';
import * as parser from '@typescript-eslint/parser';
import { TSESLint } from '@typescript-eslint/utils';
import { vol } from 'memfs';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import {
ProjectGraphProjectNode,
workspaceRoot,
} from '@nrwl/devkit';
import { isRelativePath } from '@nrwl/workspace/src/utilities/fileutils';
import { isRelativePath } from 'nx/src/utils/fileutils';
import {
checkCircularPath,
findFilesInCircularPath,
} from '@nrwl/workspace/src/utils/graph-utils';
} from '../utils/graph-utils';
import {
DepConstraint,
findConstraintsFor,
Expand All @@ -31,7 +31,7 @@ import {
matchImportWithWildcard,
onlyLoadChildren,
stringifyTags,
} from '@nrwl/workspace/src/utils/runtime-lint-utils';
} from '../utils/runtime-lint-utils';
import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils';
import { TargetProjectLocator } from 'nx/src/utils/target-project-locator';
import { basename, dirname, relative } from 'path';
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-nx/src/rules/nx-plugin-checks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
import {
findSourceProject,
getSourceFilePath,
} from '@nrwl/workspace/src/utils/runtime-lint-utils';
} from '../utils/runtime-lint-utils';
import { existsSync } from 'fs';
import { registerTsProject } from 'nx/src/utils/register';
import * as path from 'path';
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-nx/src/utils/ast-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
ProjectGraphProjectNode,
readJsonFile,
} from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';
import { existsSync, readFileSync } from 'fs';
import { dirname } from 'path';
import ts = require('typescript');
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion packages/eslint-plugin-nx/src/utils/project-graph-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
isTerminalRun,
MappedProjectGraph,
mapProjectGraphFiles,
} from '@nrwl/workspace/src/utils/runtime-lint-utils';
} from './runtime-lint-utils';
import * as chalk from 'chalk';

export function ensureGlobalProjectGraph(ruleName: string) {
Expand Down
2 changes: 1 addition & 1 deletion packages/expo/src/generators/component/lib/add-import.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { findNodes } from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';
import * as ts from 'typescript';
import { ChangeType, StringChange } from '@nrwl/devkit';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as ts from 'typescript';
import { findNodes, InsertChange, ReplaceChange } from '@nrwl/workspace';
import { InsertChange, ReplaceChange } from '@nrwl/workspace';
import { findNodes } from 'nx/src/utils/typescript';
import { Tree } from '@angular-devkit/schematics';
import { stripJsonComments } from '@nrwl/devkit';
import { Config } from '@jest/types';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { existsSync, readFileSync, writeFileSync } from 'fs';
import { join } from 'path';

import type { NextBuildBuilderOptions } from '../../../utils/types';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';

export function createNextConfigFile(
options: NextBuildBuilderOptions,
Expand Down
36 changes: 36 additions & 0 deletions packages/nx/src/utils/typescript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { workspaceRoot } from './workspace-root';
import { existsSync } from 'fs';
import { dirname, join } from 'path';
import type * as ts from 'typescript';
import type { Node, SyntaxKind } from 'typescript';

const normalizedAppRoot = workspaceRoot.replace(/\\/g, '/');

Expand Down Expand Up @@ -104,3 +105,38 @@ export function getRootTsConfigPath(): string | null {

return tsConfigFileName ? join(workspaceRoot, tsConfigFileName) : null;
}

export function findNodes(
node: Node,
kind: SyntaxKind | SyntaxKind[],
max = Infinity
): Node[] {
if (!node || max == 0) {
return [];
}

const arr: Node[] = [];
const hasMatch = Array.isArray(kind)
? kind.includes(node.kind)
: node.kind === kind;
if (hasMatch) {
arr.push(node);
max--;
}
if (max > 0) {
for (const child of node.getChildren()) {
findNodes(child, kind, max).forEach((node) => {
if (max > 0) {
arr.push(node);
}
max--;
});

if (max <= 0) {
break;
}
}
}

return arr;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { findNodes } from '@nrwl/workspace/src/utilities/typescript';
import { findNodes } from 'nx/src/utils/typescript';
import * as ts from 'typescript';
import { ChangeType, StringChange } from '@nrwl/devkit';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from '@nrwl/devkit';

import ts = require('typescript');
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';

export async function migrateToWebPack5(tree: Tree) {
allReactProjectsWithStorybookConfiguration(tree).forEach((project) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
Tree,
formatFiles,
} from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import * as ts from 'typescript';

export async function update(tree: Tree) {
Expand Down
2 changes: 1 addition & 1 deletion packages/react/src/module-federation/ast-utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as ts from 'typescript';
import { ChangeType, StringChange } from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import {
addImport,
findClosestOpening,
Expand Down
2 changes: 1 addition & 1 deletion packages/react/src/utils/ast-utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as ts from 'typescript';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import {
ChangeType,
logger,
Expand Down
2 changes: 1 addition & 1 deletion packages/storybook/src/executors/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ExecutorContext, joinPathFragments, logger } from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import 'dotenv/config';
import { existsSync, readFileSync } from 'fs';
import { join } from 'path';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
applyChangesToString,
ChangeType,
} from '@nrwl/devkit';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import { getTsSourceFile } from '../../utils/utilities';
import ts = require('typescript');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
import { joinPathFragments, writeJson } from '@nrwl/devkit';
import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
import { storybookVersion } from '@nrwl/storybook';
import { findNodes } from '@nrwl/workspace/src/utils/ast-utils';
import { findNodes } from 'nx/src/utils/typescript';
import * as ts from 'typescript';
import { SyntaxKind } from 'typescript';
import { nxVersion } from '../../../utils/versions';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
visitNotIgnoredFiles,
} from '@nrwl/devkit';
import { fileExists } from '@nrwl/workspace/src/utilities/fileutils';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import { join, normalize } from 'path';
import { SyntaxKind } from 'typescript';
import { getTsSourceFile } from '../../../utils/utilities';
Expand Down
2 changes: 1 addition & 1 deletion packages/storybook/src/utils/utilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { StorybookConfig } from '../executors/models';
import { constants, copyFileSync, mkdtempSync, statSync } from 'fs';
import { tmpdir } from 'os';
import { basename, join, sep } from 'path';
import { findNodes } from '@nrwl/workspace/src/utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import ts = require('typescript');

export const Constants = {
Expand Down
2 changes: 1 addition & 1 deletion packages/workspace/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export {
getProjectConfig,
addParameterToConstructor,
createOrUpdate,
findNodes,
findNodes, // TODO(v16): remove this
updatePackageJsonDependencies,
readWorkspace,
renameSyncInTree,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
import { getImportPath } from 'nx/src/utils/path';
import * as ts from 'typescript';
import { getRootTsConfigPathInTree } from '../../../utilities/typescript';
import { findNodes } from '../../../utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import { NormalizedSchema } from '../schema';
import { normalizeSlashes } from './utils';

Expand Down
2 changes: 1 addition & 1 deletion packages/workspace/src/utilities/ast-utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Tree } from '@nrwl/devkit';
import * as ts from 'typescript';
import { getSourceNodes } from './typescript';
import { findNodes } from './typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';

function nodesByPosition(first: ts.Node, second: ts.Node): number {
return first.getStart() - second.getStart();
Expand Down
2 changes: 1 addition & 1 deletion packages/workspace/src/utilities/typescript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { dirname, join } from 'path';
import type * as ts from 'typescript';
export { compileTypeScript } from './typescript/compilation';
export type { TypeScriptCompilationOptions } from './typescript/compilation';
export { findNodes } from './typescript/find-nodes';
export { findNodes } from './typescript/find-nodes'; // TODO(v16): remove this
export { getSourceNodes } from './typescript/get-source-nodes';

const normalizedAppRoot = workspaceRoot.replace(/\\/g, '/');
Expand Down
44 changes: 12 additions & 32 deletions packages/workspace/src/utilities/typescript/find-nodes.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,16 @@
import * as ts from 'typescript';
import { findNodes as _findNodes } from 'nx/src/utils/typescript';
import type { Node, SyntaxKind } from 'typescript';

// TODO(v16): This should be removed.

/**
* @deprecated This function is deprecated and no longer supported.
*/
export function findNodes(
node: ts.Node,
kind: ts.SyntaxKind | ts.SyntaxKind[],
node: Node,
kind: SyntaxKind | SyntaxKind[],
max = Infinity
): ts.Node[] {
if (!node || max == 0) {
return [];
}

const arr: ts.Node[] = [];
const hasMatch = Array.isArray(kind)
? kind.includes(node.kind)
: node.kind === kind;
if (hasMatch) {
arr.push(node);
max--;
}
if (max > 0) {
for (const child of node.getChildren()) {
findNodes(child, kind, max).forEach((node) => {
if (max > 0) {
arr.push(node);
}
max--;
});

if (max <= 0) {
break;
}
}
}

return arr;
) {
console.warn('"findNodes" is deprecated and no longer supported.');
_findNodes(node, kind, max);
}
4 changes: 2 additions & 2 deletions packages/workspace/src/utils/ast-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import { getWorkspacePath } from './cli-config-utils';
import { extname, join, normalize, Path } from '@angular-devkit/core';
import type { NxJsonConfiguration, ProjectsConfigurations } from '@nrwl/devkit';
import { addInstallTask } from './rules/add-install-task';
import { findNodes } from '../utilities/typescript/find-nodes';
import { findNodes } from 'nx/src/utils/typescript';
import { getSourceNodes } from '../utilities/typescript/get-source-nodes';

function nodesByPosition(first: ts.Node, second: ts.Node): number {
Expand Down Expand Up @@ -71,7 +71,7 @@ export function sortObjectByKeys(obj: unknown) {
}, {});
}

export { findNodes } from '../utilities/typescript/find-nodes';
export { findNodes } from '../utilities/typescript/find-nodes'; // TODO(v16): remove this
export { getSourceNodes } from '../utilities/typescript/get-source-nodes';

export interface Change {
Expand Down
3 changes: 2 additions & 1 deletion packages/workspace/src/utils/rules/rename-package-imports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import {
} from '@angular-devkit/schematics';
import { getWorkspace } from '../workspace';
import { visitNotIgnoredFiles } from './visit-not-ignored-files';
import { findNodes, insert, ReplaceChange } from '../ast-utils';
import { findNodes } from 'nx/src/utils/typescript';
import { insert, ReplaceChange } from '../ast-utils';
import { normalize } from '@angular-devkit/core';

export interface PackageNameMapping {
Expand Down

0 comments on commit f90fb30

Please sign in to comment.