UNPKG

@stacksjs/dtsx

Version:

A modern, fast .d.ts generation tool, powered by Bun.

64 lines (63 loc) 2.05 kB
import type { DtsGenerationConfig } from './types'; /** * Build dependency graph from source files */ export declare function buildProcessingGraph(files: string[], rootDir?: string): Promise<Map<string, ProcessingNode>>; /** * Process files in parallel respecting dependencies */ export declare function processInParallel(files: string[], options?: ParallelProcessorConfig): Promise<ParallelProcessingResult>; /** * Get topological processing order (respects dependencies) */ export declare function getTopologicalOrder(graph: Map<string, ProcessingNode>): string[]; /** * Find files that can be processed independently (no dependencies on other files in the set) */ export declare function findIndependentFiles(graph: Map<string, ProcessingNode>): string[]; /** * Get processing levels (files at same level can be processed in parallel) */ export declare function getProcessingLevels(graph: Map<string, ProcessingNode>): string[][]; /** * Analyze graph for parallelization potential */ export declare function analyzeParallelizationPotential(graph: Map<string, ProcessingNode>): { totalFiles: number independentFiles: number maxParallelism: number levels: number estimatedSpeedup: number }; /** * Node in the processing dependency graph */ export declare interface ProcessingNode { path: string dependencies: Set<string> dependents: Set<string> state: 'pending' | 'processing' | 'completed' | 'failed' result?: string error?: Error duration?: number } /** * Configuration for parallel processing */ export declare interface ParallelProcessorConfig { maxConcurrency?: number rootDir?: string config?: Partial<DtsGenerationConfig> onProgress?: (completed: number, total: number, current: string) => void onError?: (path: string, error: Error) => boolean } /** * Result of parallel processing */ export declare interface ParallelProcessingResult { success: Map<string, string> failed: Map<string, Error> totalTimeMs: number maxConcurrent: number processingOrder: string[] }