feat(core): move runtime-lint-utils to eslint plugin (#13222)
This commit is contained in:
parent
e971ffba71
commit
ab6f62a9b5
@ -21,7 +21,7 @@ import {
|
||||
stripIndents,
|
||||
workspaceRoot,
|
||||
} from '@nrwl/devkit';
|
||||
import { mapProjectGraphFiles } from '@nrwl/workspace/src/utils/runtime-lint-utils';
|
||||
import { mapProjectGraphFiles } from 'nx/src/utils/target-project-locator';
|
||||
import { lstatSync, mkdirSync, writeFileSync } from 'fs';
|
||||
import { dirname, join, relative } from 'path';
|
||||
import type { BrowserBuilderSchema } from '../src/builders/webpack-browser/webpack-browser.impl';
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
import type { Tree } from '@nrwl/devkit';
|
||||
import {
|
||||
findNodes,
|
||||
getSourceNodes,
|
||||
} from '@nrwl/workspace/src/utilities/typescript';
|
||||
import { getSourceNodes } from '@nrwl/workspace/src/utilities/typescript';
|
||||
import { findNodes } from 'nx/src/utils/typescript';
|
||||
|
||||
import type { PropertyDeclaration } from 'typescript';
|
||||
import { SyntaxKind } from 'typescript';
|
||||
import { getTsSourceFile } from '../../../utils/nx-devkit/ast-utils';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -8,8 +8,8 @@ import {
|
||||
TargetConfiguration,
|
||||
workspaceRoot,
|
||||
} from '@nrwl/devkit';
|
||||
import { mapProjectGraphFiles } from '@nrwl/workspace/src/utils/runtime-lint-utils';
|
||||
import { readProjectsConfigurationFromProjectGraph } from 'nx/src/project-graph/project-graph';
|
||||
import { mapProjectGraphFiles } from 'nx/src/utils/target-project-locator';
|
||||
import { dirname, extname, join, relative } from 'path';
|
||||
import { lstatSync } from 'fs';
|
||||
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
"rules": {
|
||||
"no-restricted-imports": [
|
||||
"error",
|
||||
"@nrwl/workspace",
|
||||
"@angular-devkit/core",
|
||||
"@angular-devkit/architect",
|
||||
"@angular-devkit/schematics"
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
import type { FileData, ProjectGraph } from '@nrwl/devkit';
|
||||
import { DependencyType } from '@nrwl/devkit';
|
||||
import { mapProjectGraphFiles } from '@nrwl/workspace/src/utils/runtime-lint-utils';
|
||||
import * as parser from '@typescript-eslint/parser';
|
||||
import { TSESLint } from '@typescript-eslint/utils';
|
||||
import { vol } from 'memfs';
|
||||
import { TargetProjectLocator } from 'nx/src/utils/target-project-locator';
|
||||
import {
|
||||
TargetProjectLocator,
|
||||
mapProjectGraphFiles,
|
||||
} from 'nx/src/utils/target-project-locator';
|
||||
import enforceModuleBoundaries, {
|
||||
RULE_NAME as enforceModuleBoundariesRuleName,
|
||||
} from '../../src/rules/enforce-module-boundaries';
|
||||
} from './enforce-module-boundaries';
|
||||
|
||||
jest.mock('fs', () => require('memfs').fs);
|
||||
|
||||
|
||||
@ -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,
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { readCachedProjectGraph, readNxJson } from '@nrwl/devkit';
|
||||
import {
|
||||
isTerminalRun,
|
||||
MappedProjectGraph,
|
||||
mapProjectGraphFiles,
|
||||
} from '@nrwl/workspace/src/utils/runtime-lint-utils';
|
||||
MappedProjectGraph,
|
||||
} from 'nx/src/utils/target-project-locator';
|
||||
import { isTerminalRun } from './runtime-lint-utils';
|
||||
import * as chalk from 'chalk';
|
||||
|
||||
export function ensureGlobalProjectGraph(ruleName: string) {
|
||||
|
||||
@ -14,11 +14,11 @@ import { join } from 'path';
|
||||
import { getPath, pathExists } from './graph-utils';
|
||||
import { existsSync } from 'fs';
|
||||
import { readFileIfExisting } from 'nx/src/project-graph/file-utils';
|
||||
import { TargetProjectLocator } from 'nx/src/utils/target-project-locator';
|
||||
|
||||
export type MappedProjectGraph<T = any> = ProjectGraph<T> & {
|
||||
allFiles: Record<string, string>;
|
||||
};
|
||||
import {
|
||||
TargetProjectLocator,
|
||||
MappedProjectGraph,
|
||||
removeExt,
|
||||
} from 'nx/src/utils/target-project-locator';
|
||||
|
||||
export type Deps = { [projectName: string]: ProjectGraphDependency[] };
|
||||
export type DepConstraint = {
|
||||
@ -70,10 +70,6 @@ function hasTag(proj: ProjectGraphProjectNode, tag: string) {
|
||||
return tag === '*' || (proj.data.tags || []).indexOf(tag) > -1;
|
||||
}
|
||||
|
||||
export function removeExt(file: string): string {
|
||||
return file.replace(/(?<!(^|\/))\.[^/.]+$/, '');
|
||||
}
|
||||
|
||||
export function matchImportWithWildcard(
|
||||
// This may or may not contain wildcards ("*")
|
||||
allowableImport: string,
|
||||
@ -353,28 +349,6 @@ export function hasBuildExecutor(
|
||||
);
|
||||
}
|
||||
|
||||
export function mapProjectGraphFiles<T>(
|
||||
projectGraph: ProjectGraph<T>
|
||||
): MappedProjectGraph | null {
|
||||
if (!projectGraph) {
|
||||
return null;
|
||||
}
|
||||
const allFiles: Record<string, string> = {};
|
||||
Object.entries(
|
||||
projectGraph.nodes as Record<string, ProjectGraphProjectNode>
|
||||
).forEach(([name, node]) => {
|
||||
node.data.files.forEach(({ file }) => {
|
||||
const fileName = removeExt(file);
|
||||
allFiles[fileName] = name;
|
||||
});
|
||||
});
|
||||
|
||||
return {
|
||||
...projectGraph,
|
||||
allFiles,
|
||||
};
|
||||
}
|
||||
|
||||
const ESLINT_REGEX = /node_modules.*[\/\\]eslint$/;
|
||||
const JEST_REGEX = /node_modules\/.bin\/jest$/; // when we run unit tests in jest
|
||||
const NRWL_CLI_REGEX = /nx[\/\\]bin[\/\\]run-executor\.js$/;
|
||||
@ -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';
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -3,6 +3,7 @@ import { isRelativePath, readJsonFile } from './fileutils';
|
||||
import { dirname, join, posix } from 'path';
|
||||
import { workspaceRoot } from './workspace-root';
|
||||
import {
|
||||
ProjectGraph,
|
||||
ProjectGraphExternalNode,
|
||||
ProjectGraphProjectNode,
|
||||
} from '../config/project-graph';
|
||||
@ -198,6 +199,11 @@ function filterRootExternalDependencies(
|
||||
return nodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mapps the project root paths to the project name
|
||||
* @param nodes
|
||||
* @returns
|
||||
*/
|
||||
export function createProjectRootMappings(
|
||||
nodes: Record<string, ProjectGraphProjectNode>
|
||||
) {
|
||||
@ -212,6 +218,47 @@ export function createProjectRootMappings(
|
||||
return projectRootMappings;
|
||||
}
|
||||
|
||||
export type MappedProjectGraph<T = any> = ProjectGraph<T> & {
|
||||
allFiles: Record<string, string>;
|
||||
};
|
||||
|
||||
/**
|
||||
* Strips the file extension from the file path
|
||||
* @param file
|
||||
* @returns
|
||||
*/
|
||||
export function removeExt(file: string): string {
|
||||
return file.replace(/(?<!(^|\/))\.[^/.]+$/, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps the project graph to a format that makes it easier to find the project
|
||||
* based on the file path.
|
||||
* @param projectGraph
|
||||
* @returns
|
||||
*/
|
||||
export function mapProjectGraphFiles<T>(
|
||||
projectGraph: ProjectGraph<T>
|
||||
): MappedProjectGraph | null {
|
||||
if (!projectGraph) {
|
||||
return null;
|
||||
}
|
||||
const allFiles: Record<string, string> = {};
|
||||
Object.entries(
|
||||
projectGraph.nodes as Record<string, ProjectGraphProjectNode>
|
||||
).forEach(([name, node]) => {
|
||||
node.data.files.forEach(({ file }) => {
|
||||
const fileName = removeExt(file);
|
||||
allFiles[fileName] = name;
|
||||
});
|
||||
});
|
||||
|
||||
return {
|
||||
...projectGraph,
|
||||
allFiles,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Locates a project in projectRootMap based on a file within it
|
||||
* @param filePath path that is inside of projectName
|
||||
|
||||
@ -104,3 +104,38 @@ export function getRootTsConfigPath(): string | null {
|
||||
|
||||
return tsConfigFileName ? join(workspaceRoot, tsConfigFileName) : null;
|
||||
}
|
||||
|
||||
export function findNodes(
|
||||
node: ts.Node,
|
||||
kind: ts.SyntaxKind | ts.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;
|
||||
}
|
||||
|
||||
@ -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';
|
||||
|
||||
|
||||
@ -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) => {
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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');
|
||||
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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 = {
|
||||
|
||||
@ -21,6 +21,7 @@ export {
|
||||
readPackageJson,
|
||||
} from 'nx/src/project-graph/file-utils';
|
||||
export { ProjectGraphCache } from 'nx/src/project-graph/nx-deps-cache';
|
||||
export { findNodes } from 'nx/src/utils/typescript';
|
||||
export {
|
||||
readJsonInTree,
|
||||
updateJsonInTree,
|
||||
@ -34,7 +35,6 @@ export {
|
||||
getProjectConfig,
|
||||
addParameterToConstructor,
|
||||
createOrUpdate,
|
||||
findNodes,
|
||||
updatePackageJsonDependencies,
|
||||
readWorkspace,
|
||||
renameSyncInTree,
|
||||
|
||||
@ -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';
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -5,7 +5,6 @@ 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 { getSourceNodes } from './typescript/get-source-nodes';
|
||||
|
||||
const normalizedAppRoot = workspaceRoot.replace(/\\/g, '/');
|
||||
|
||||
@ -1,36 +0,0 @@
|
||||
import * as ts from 'typescript';
|
||||
|
||||
export function findNodes(
|
||||
node: ts.Node,
|
||||
kind: ts.SyntaxKind | ts.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;
|
||||
}
|
||||
@ -18,17 +18,12 @@ import {
|
||||
Tree,
|
||||
} from '@angular-devkit/schematics';
|
||||
import * as ts from 'typescript';
|
||||
import {
|
||||
parseJson,
|
||||
ProjectConfiguration,
|
||||
serializeJson,
|
||||
FileData,
|
||||
} from '@nrwl/devkit';
|
||||
import { parseJson, serializeJson, FileData } from '@nrwl/devkit';
|
||||
import { getWorkspacePath } from './cli-config-utils';
|
||||
import { extname, join, normalize, Path } from '@angular-devkit/core';
|
||||
import type { NxJsonConfiguration, ProjectsConfigurations } from '@nrwl/devkit';
|
||||
import type { NxJsonConfiguration } 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 {
|
||||
@ -71,7 +66,6 @@ export function sortObjectByKeys(obj: unknown) {
|
||||
}, {});
|
||||
}
|
||||
|
||||
export { findNodes } from '../utilities/typescript/find-nodes';
|
||||
export { getSourceNodes } from '../utilities/typescript/get-source-nodes';
|
||||
|
||||
export interface Change {
|
||||
|
||||
@ -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 { insert, ReplaceChange } from '../ast-utils';
|
||||
import { findNodes } from 'nx/src/utils/typescript';
|
||||
import { normalize } from '@angular-devkit/core';
|
||||
|
||||
export interface PackageNameMapping {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user