##// END OF EJS Templates
Refactoring, working on services lifetime
Refactoring, working on services lifetime

File last commit:

r128:882b53b2ba5b ioc ts support
r131:674555892e14 ioc ts support
Show More
RegistrationBuilder.ts
36 lines | 1.3 KiB | video/mp2t | TypeScriptLexer
/ src / main / ts / di / fluent / RegistrationBuilder.ts
import { ServiceRecordBuilder, ExtractDependency, RegistrationVisitor } from "./interfaces";
import { ActivationType } from "../interfaces";
export class RegistrationBuilder<T, S extends object> {
private _activationType: ActivationType = "call";
private _overrides: { [m in keyof S]?: (...args: any) => void } | undefined;
override<K extends keyof S>(name: K, builder: S[K], raw: true): this;
override<K extends keyof S>(name: K, builder: (t: ServiceRecordBuilder<S[K], S>) => void): this;
override<K extends keyof S, V>(name: S[K] extends ExtractDependency<V, S> ? K : never, value: V): this;
override<K extends keyof S>(name: K, builder: S[K] | ((t: ServiceRecordBuilder<S[K], S>) => void), raw: boolean = false) {
if (!this._overrides)
this._overrides = {};
if (raw) {
} else if (builder instanceof Function) {
} else {
}
return this;
}
activate(activation: ActivationType) {
this._activationType = activation;
return this;
}
inject<M extends keyof T, P extends any[]>(member: T[M] extends (...params: ExtractDependency<P, S>) => any ? M : never, ...params: P) {
return this;
}
visit(visitor: RegistrationVisitor<S>) {
}
}