UNPKG

ts-ioc-container

Version:
31 lines (30 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hookMetaKey = exports.createHookContext = exports.HookContext = void 0; const inject_1 = require("../injector/inject"); class HookContext { instance; scope; methodName; constructor(instance, scope, methodName) { this.instance = instance; this.scope = scope; this.methodName = methodName; } resolveArgs(...args) { return (0, inject_1.resolveArgs)(this.instance.constructor, this.methodName)(this.scope, ...args); } invokeMethod({ args = this.resolveArgs() }) { // @ts-ignore return this.instance[this.methodName](...args); } setProperty(fn) { // @ts-ignore this.instance[this.methodName] = fn(this.scope); } } exports.HookContext = HookContext; const createHookContext = (Target, scope, methodName = 'constructor') => new HookContext(Target, scope, methodName); exports.createHookContext = createHookContext; const hookMetaKey = (methodName = 'constructor') => `inject:${methodName}`; exports.hookMetaKey = hookMetaKey;