UNPKG

ngx-unused

Version:

Detect unused classes (components, pipes, services and directives) defined in Angular workspace.

27 lines (26 loc) 1 kB
import { existsSync } from 'fs'; import { globSync } from 'glob'; import path from 'path'; import { Project } from 'ts-morph'; export function createProject({ tsConfigFilePath, sourceRoots, }) { const project = new Project({ tsConfigFilePath, skipAddingFilesFromTsConfig: true, skipFileDependencyResolution: true, skipLoadingLibFiles: true, }); project.addSourceFilesAtPaths(getSourceFiles(sourceRoots)); return project; } function getSourceFiles(sourceRoots) { const existingDirectories = sourceRoots.filter(directory => existsSync(directory)); const includePatterns = existingDirectories.map(directory => `${path.resolve(directory)}/**/*.ts`); const excludePatterns = existingDirectories.flatMap(directory => [ `${directory}/**/node_modules/**`, `${directory}/**/*.spec.ts`, `${directory}/**/*.d.ts`, ]); return globSync(includePatterns, { ignore: [...excludePatterns, 'node_modules/**'], }); }