@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
TypeScript
/**
* 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