eslint-plugin-obsidian
Version:
ESLint rules for Obsidian
26 lines • 1.13 kB
JavaScript
;
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