Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 12x 12x 12x 45x 45x 58x 58x 58x 58x 57x 1x 1x 1x 1x | import { Keys } from "../../Keys";
import { IResolver } from "../../interfaces/IResolver";
import { ArgResolver } from "../../definitions/helpers/ArgResolver";
import { IInitializer } from "./IInitializer";
export class RunInitMethodInitializer implements IInitializer {
argResolver: ArgResolver = new ArgResolver(this.resolver);
constructor(readonly resolver: IResolver) {
}
async run(resolvedInstance: any, definition: any): Promise<any> {
return this.runInitMethod(resolvedInstance, definition);
}
async runInitMethod(resolvedInstance: any, definition: any): Promise<any> {
const initMethodMeta = Reflect.getMetadata(Keys.INIT_METHOD_PROPERTY_DECORATOR_KEY, definition.content) || {};
const initMethod: string = initMethodMeta[Keys.INIT_METHOD_PROPERTY_DECORATOR_KEY];
if (initMethod === undefined) {
return resolvedInstance;
}
const initMethodParamsMeta = Reflect.getMetadata(initMethod, definition.content) || {};
const initFnArgs: any = await this.argResolver.resolveArguments(initMethodParamsMeta, definition.context, initMethod);
resolvedInstance[initMethod](...initFnArgs);
return resolvedInstance;
}
}
|