UNPKG

mp-lens

Version:

微信小程序分析工具 (Unused Code, Dependencies, Visualization)

39 lines (38 loc) 1.88 kB
import { AnalyzerOptions } from '../types/command-options'; import { SupportedFileType } from './filetypes'; export declare class PathResolver { private projectRoot; private options; constructor(projectRoot: string, options: AnalyzerOptions); /** * Resolves an import path (which could be relative, absolute, alias, or implicit root) * to an existing file path, considering context-specific allowed extensions. * * @param importPath The original import string (e.g., './utils', '/pages/index', '@/comp', 'image.png'). * @param sourcePath The absolute path of the file containing the import. * @param allowedExtensions An ordered array of extensions to check (e.g., ['js', 'ts'] or ['wxml']). * @returns The absolute path of the resolved existing file, or null if not found. */ resolveAnyPath(importPath: string, sourcePath: string, allowedExtensions: readonly SupportedFileType[]): string | null; /** * Given a potential absolute base path (without extension or index), finds the * actual existing file path by checking for the path itself, adding allowed * extensions, or checking for directory index files with allowed extensions. * * @param potentialPath Absolute path, possibly without extension (e.g., '/path/to/file' or '/path/to/dir') * @param allowedExtensions Ordered list of extensions to check (e.g., ['js', 'ts']) * @returns The existing absolute file path, or null. */ private findExistingPath; /** * Check if the import path looks like an alias based on the loaded configuration. */ private isAliasPath; private resolveAlias; /** * Check if the import path looks like an npm package that we shouldn't try to resolve * on the file system or with aliases. */ private isNpmPackageImport; private getAliases; }