crapifyme
Version:
Ultra-fast developer productivity CLI tools - remove comments, logs, and more
85 lines • 2.2 kB
TypeScript
export interface ImportStatement {
source: string;
specifiers: ImportSpecifier[];
importKind: 'value' | 'type' | 'typeof';
startPos: number;
endPos: number;
leadingComments?: string[];
trailingComments?: string[];
}
export interface ImportSpecifier {
type: 'default' | 'namespace' | 'named';
imported?: string;
local: string;
importKind?: 'value' | 'type' | 'typeof';
}
export interface ImportGroup {
type: 'external' | 'internal' | 'relative';
imports: ImportStatement[];
priority: number;
}
export interface PathAlias {
pattern: string;
replacement: string;
regex: RegExp;
}
export interface ImportAnalysisResult {
imports: ImportStatement[];
unusedImports: ImportStatement[];
duplicateGroups: ImportStatement[][];
usedIdentifiers: Set<string>;
scopeChain: string[][];
}
export interface ImportTransformOptions {
style?: 'absolute' | 'relative' | 'mixed';
sort?: boolean;
group?: boolean;
removeUnused?: boolean;
mergeDuplicates?: boolean;
multilineThreshold?: number;
aliases?: PathAlias[];
preserveComments?: boolean;
}
export interface FrameworkConfig {
name: string;
aliases: PathAlias[];
importExtensions: string[];
specialPatterns: RegExp[];
}
export interface ImportsStats {
filesProcessed: number;
importsOptimized: number;
unusedRemoved: number;
duplicatesMerged: number;
pathsConverted: number;
errors: Array<{
file: string;
error: string;
}>;
}
export interface ImportsProcessorOptions extends ImportTransformOptions {
framework?: string;
extensions?: string[];
verbose?: boolean;
}
export interface ImportTransformResult {
content: string;
modified: boolean;
optimized: number;
unusedRemoved: number;
duplicatesMerged: number;
pathsConverted: number;
errors?: string[];
warnings?: string[];
}
export declare enum ImportGroupType {
EXTERNAL = "external",
INTERNAL = "internal",
RELATIVE = "relative"
}
export declare enum ImportStyle {
ABSOLUTE = "absolute",
RELATIVE = "relative",
MIXED = "mixed"
}
//# sourceMappingURL=types.d.ts.map