dependency-injection-cat
Version:
DI Cat is a truly clean DI-container, which allows you not to pollute your business logic with decorators from DI/IOC libraries!
46 lines (45 loc) • 2.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerContextLifecycleMethods = void 0;
var isContextLifecycleMethod_1 = require("./isContextLifecycleMethod");
var registerLifecycleMethod_1 = require("./registerLifecycleMethod");
var getLifecycleTypes_1 = require("./getLifecycleTypes");
var isContextLifecycleArrowFunction_1 = require("./isContextLifecycleArrowFunction");
var registerLifecycleArrowFunction_1 = require("./registerLifecycleArrowFunction");
var LifecycleMethodsRepository_1 = require("./LifecycleMethodsRepository");
var CompilationContext_1 = require("../../compilation-context/CompilationContext");
var registerContextLifecycleMethods = function (contextDescriptor) {
LifecycleMethodsRepository_1.LifecycleMethodsRepository.clearBeanInfoByContextDescriptor(contextDescriptor);
contextDescriptor.node.members.forEach(function (it) {
var _a;
var lifecycles = (0, getLifecycleTypes_1.getLifecycleTypes)((_a = it.decorators) !== null && _a !== void 0 ? _a : []);
if (lifecycles === null) {
return;
}
if ((0, isContextLifecycleMethod_1.isContextLifecycleMethod)(it)) {
if (contextDescriptor.isGlobal) {
CompilationContext_1.CompilationContext.reportError({
node: it,
filePath: contextDescriptor.absolutePath,
relatedContextPath: contextDescriptor.absolutePath,
message: 'Global Contexts does not support lifecycle methods',
});
return;
}
(0, registerLifecycleMethod_1.registerLifecycleMethod)(contextDescriptor, it, lifecycles);
}
else if ((0, isContextLifecycleArrowFunction_1.isContextLifecycleArrowFunction)(it)) {
if (contextDescriptor.isGlobal) {
CompilationContext_1.CompilationContext.reportError({
node: it,
filePath: contextDescriptor.absolutePath,
relatedContextPath: contextDescriptor.absolutePath,
message: 'Global Contexts does not support lifecycle methods',
});
return;
}
(0, registerLifecycleArrowFunction_1.registerLifecycleArrowFunction)(contextDescriptor, it, lifecycles);
}
});
};
exports.registerContextLifecycleMethods = registerContextLifecycleMethods;