@visactor/vrender-core
Version:
```typescript import { xxx } from '@visactor/vrender-core'; ```
25 lines (24 loc) • 1.37 kB
TypeScript
import type { ServiceIdentifier } from '../common/explicit-binding';
export type LegacyNamedIdentifier = string | number | symbol;
export interface ILegacyBindingResolveContext {
container: ILegacyBindingContext;
}
export interface ILegacyBindingSyntax<T = unknown> {
to: (constructor: new (...args: any[]) => T) => ILegacyBindingSyntax<T>;
toSelf: () => ILegacyBindingSyntax<T>;
toDynamicValue: (factory: (context: ILegacyBindingResolveContext) => T) => ILegacyBindingSyntax<T>;
toConstantValue: (value: T) => ILegacyBindingSyntax<T>;
toService: (serviceIdentifier: ServiceIdentifier) => ILegacyBindingSyntax<T>;
inSingletonScope: () => ILegacyBindingSyntax<T>;
whenTargetNamed: (name: LegacyNamedIdentifier) => ILegacyBindingSyntax<T>;
}
export interface ILegacyBindContext {
bind: <T>(serviceIdentifier: ServiceIdentifier<T>) => ILegacyBindingSyntax<T>;
}
export interface ILegacyBindingContext extends ILegacyBindContext {
rebind: <T>(serviceIdentifier: ServiceIdentifier<T>) => ILegacyBindingSyntax<T>;
isBound: <T>(serviceIdentifier: ServiceIdentifier<T>) => boolean;
getAll: <T>(serviceIdentifier: ServiceIdentifier<T>) => T[];
getNamed: <T>(serviceIdentifier: ServiceIdentifier<T>, name: LegacyNamedIdentifier) => T | undefined;
}
export declare function createLegacyBindingContext(): ILegacyBindingContext;