UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

82 lines 2.53 kB
/** * Example usage of the DependencyScanner * This file demonstrates how to use the scanner to analyze TypeScript files for DI metadata */ import { createDependencyScanner } from "./scanner"; export declare class DatabaseService { constructor(); query(sql: string): { result: string; }; } export declare class UserService { private db; private logger; constructor(db: DatabaseService, logger: any); getUser(id: string): Promise<{ result: string; }>; } export declare class EmailService { private userService; constructor(userService: UserService); sendEmail(userId: string, message: string): Promise<{ sent: boolean; messageId: string; }>; } export declare function demonstrateScanner(): Promise<void>; export declare class ScannerUsageExample { /** * Scan and analyze a specific project structure */ static analyzeProject(projectPath: string): Promise<{ providers: import("./scanner").ScannedProvider[]; modules: import("./scanner").ScannedModule[]; stats: { totalProviders: number; totalModules: number; scannedFiles: number; providersByScope: { singleton: number; transient: number; request: number; }; }; validation: { valid: boolean; errors: string[]; }; }>; /** * Incremental scanning (useful for watch mode) */ static incrementalScan(scanner: ReturnType<typeof createDependencyScanner>, changedFiles: string[]): Promise<{ newProviders: any[]; validation: { valid: boolean; errors: string[]; }; stats: { totalProviders: number; totalModules: number; scannedFiles: number; providersByScope: { singleton: number; transient: number; request: number; }; }; }>; /** * Filter providers by criteria */ static filterProviders(scanner: ReturnType<typeof createDependencyScanner>): { singletons: import("./scanner").ScannedProvider[]; requestScoped: import("./scanner").ScannedProvider[]; transients: import("./scanner").ScannedProvider[]; withDependencies: import("./scanner").ScannedProvider[]; isolated: import("./scanner").ScannedProvider[]; }; } //# sourceMappingURL=scanner.example.d.ts.map