API REFERENCE
Container
import { Container, Provider, type ContainerView, type ProviderDefinition, } from '@rasenganjs/server';
Lightweight dependency-injection container with module-scoped visibility. See Providers & Tokens and Module Scoping for usage and semantics.
Container
class Container { register( provider: ProviderLike | ProviderDefinition, owner?: ScopeOwner ): void; setScope(owner: ScopeOwner, visible: Set<any>): void; forModule(owner: ScopeOwner): ContainerView; resolve<T>(token: new (...args: any[]) => T): T; // root scope — sees every registration initAll(): Promise<void>; destroyAll(): Promise<void>; }
ContainerView
interface ContainerView { resolve<T>(token: new (...args: any[]) => T): T; }
The resolution surface handed to controllers and ModulePlugin.register() during compile — a module-scoped view of the container. Container itself satisfies this interface (root scope sees everything).
ProviderDefinition
interface ProviderDefinition { provide: any; useClass?: new (...args: any[]) => any; // defaults to `provide` useValue?: any; deps?: any[]; }
ProviderLike
type ProviderLike = new (...args: any[]) => any;
Any class is a valid provider — extending Provider is purely opt-in, for lifecycle hooks (onInit/onDestroy). See the dedicated Provider reference page for its full API.
Controller
Provider
