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!
34 lines (33 loc) • 1.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEmbeddedBean = void 0;
var typescript_1 = __importDefault(require("typescript"));
var isClassPropertyBean_1 = require("./isClassPropertyBean");
var CompilationContext_1 = require("../../../compilation-context/CompilationContext");
var isExpressionBean_1 = require("./isExpressionBean");
var isEmbeddedBeanDecorator_1 = require("./isEmbeddedBeanDecorator");
var isEmbeddedBean = function (node) {
var _a;
if ((0, isClassPropertyBean_1.isClassPropertyBean)(node) || (0, isExpressionBean_1.isExpressionBean)(node)) {
return false;
}
if (!typescript_1.default.isPropertyDeclaration(node)) {
return false;
}
if (!((_a = node.decorators) === null || _a === void 0 ? void 0 : _a.some(isEmbeddedBeanDecorator_1.isEmbeddedBeanDecorator))) {
return false;
}
if (node.initializer === undefined) {
CompilationContext_1.CompilationContext.reportError({
node: node,
message: 'Embedded Bean should hold value',
filePath: node.getSourceFile().fileName,
});
return false;
}
return !typescript_1.default.isArrowFunction(node.initializer);
};
exports.isEmbeddedBean = isEmbeddedBean;