UNPKG

eslint-plugin-obsidian

Version:

ESLint rules for Obsidian

26 lines 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InjectComponentHandler = void 0; const ast_1 = require("../../utils/ast"); const file_1 = require("../../dto/file"); class InjectComponentHandler { constructor(typeValidator, errorReporter) { this.typeValidator = typeValidator; this.errorReporter = errorReporter; } handle(callExpression) { if (callExpression.isExpression('injectComponent')) { const injectedComponent = this.getInjectedComponent(callExpression.node, callExpression.arguments); const result = this.typeValidator.validate(injectedComponent, callExpression.generics); this.errorReporter.report(result, callExpression.node); } } getInjectedComponent(node, args) { return new file_1.File((0, ast_1.requireProgram)(node)) .variables .filter((variable) => variable.isArrowFunction) .find((variable) => variable.name === args[0].name); } } exports.InjectComponentHandler = InjectComponentHandler; //# sourceMappingURL=injectComponentHandler.js.map