@pulzar/core
Version:
Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support
38 lines • 1.22 kB
TypeScript
import { Token } from "./tokens";
export interface ModuleDefinition {
name: string;
imports: string[];
exports: Token[];
namespace?: string;
providers?: Token[];
}
export interface ModuleGraph {
modules: Map<string, ModuleDefinition>;
dependencies: Map<string, string[]>;
exports: Map<string, Token[]>;
}
export declare class ModuleRegistry {
private modules;
private resolved;
register(module: ModuleDefinition): void;
getModule(name: string): ModuleDefinition | undefined;
getAllModules(): ModuleDefinition[];
hasModule(name: string): boolean;
resolve(): ModuleGraph;
private validateDependencies;
private hasCircularDependency;
private topologicalSort;
getExportedProviders(moduleName: string): Token[];
resolveImport(moduleName: string, providerToken: Token): boolean;
getModuleNamespace(moduleName: string): string | undefined;
clear(): void;
getStats(): {
totalModules: number;
resolved: boolean;
moduleNames: string[];
totalExports: number;
};
}
export declare function createModuleRegistry(): ModuleRegistry;
export default ModuleRegistry;
//# sourceMappingURL=module-registry.d.ts.map