UNPKG

@xcons/widget

Version:

XCon Studio widget utilities with advanced template rendering, reactive binding system and registry pattern support

70 lines (69 loc) 1.86 kB
import { ServiceScope, ServiceToken, ServiceConstructor, ServiceConfig, ServiceProvider, IServiceRegistry } from './service-types'; export declare class ServiceRegistry implements IServiceRegistry { private static instance; private services; private providers; private instances; private dependencyChain; static getInstance(): ServiceRegistry; /** * Register a service class with configuration */ registerService<T>(target: ServiceConstructor<T>, config?: ServiceConfig): void; /** * Register a service provider */ registerProvider<T>(provider: ServiceProvider<T>): void; /** * Check if service is registered */ hasService(token: ServiceToken): boolean; /** * Get service instance */ getService<T>(token: ServiceToken<T>): T; /** * Create new instance without caching */ createInstance<T>(target: ServiceConstructor<T>): T; /** * Clear instances by scope */ clearScope(scope: ServiceScope): void; /** * Clear all services and instances */ clear(): void; /** * Resolve service with dependency injection */ private resolveService; /** * Create service instance from metadata */ private createServiceInstance; /** * Create service instance from provider */ private createProviderInstance; /** * Extract dependencies from constructor metadata */ private extractDependencies; /** * Get all registered services info */ getRegisteredServices(): Array<{ token: string; scope: ServiceScope; hasInstance: boolean; }>; /** * Call onServiceInit lifecycle hook */ private callOnServiceInit; /** * Call onServiceDestroy lifecycle hook */ private callOnServiceDestroy; }