export type DepCheckParser = (content: string, filePath: string, deps: ReadonlyArray, rootDir: string) => Node; export type DepCheckDetector = (node: Node) => ReadonlyArray | string; export interface DepCheckOptions { withoutDev?: boolean; ignoreBinPackage?: boolean; ignoreDirs?: ReadonlyArray; ignoreMatches?: ReadonlyArray; parsers?: { [match: string]: DepCheckParser; }; detectors?: ReadonlyArray; specials?: ReadonlyArray; } export interface DepCheckResults { dependencies: string[]; devDependencies: string[]; missing: string[]; using: string[]; invalidFiles: string[]; invalidDirs: string[]; } export const depcheck = async (rootDir: string, options: DepCheckOptions = {}): Promise => { // options.parsers = { // '*.ts.d': parseTypescript, // '*.ts': parseTypescript, // '*.js': depchecklib.parser.es6, // '*.jsx': depchecklib.parser.jsx // }; // tslint:disable-next-line no-any const depCheckLib = (await import('depcheck')) as any; // tslint:disable-next-line no-any return depCheckLib(rootDir, options) as any; };