UNPKG

eslint-plugin-obsidian

Version:

ESLint rules for Obsidian

44 lines 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GraphHandler = void 0; class GraphHandler { constructor(context, classAdapter) { this.context = context; this.classAdapter = classAdapter; } handle(clazz) { var _a, _b; try { if (clazz.isGraph) { const unresolvedDependency = this.findUnresolvedDependency(clazz); this.reportError(this.context, clazz, unresolvedDependency); } } catch (error) { const className = (_b = (_a = clazz.node.id) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '<anonymous>'; console.error(`[obsidian/unresolved-provider-dependencies] Unexpected error while checking graph "${className}":`, error); } } findUnresolvedDependency(clazz) { const graph = this.classAdapter.classToGraph(clazz.node, this.context.currentFilePath); if (!graph) return; const providers = graph.resolveProviders(); for (const provider of graph.getProviders()) { const unresolvedDep = provider.dependencies.find(dep => (dep.isNotProvided(providers) && !provider.isDependencyPrefixedWithUnderscore(dep))); if (unresolvedDep) return { provider, unresolvedDep }; } } reportError(context, clazz, providerToUnresolvedDependency) { if (providerToUnresolvedDependency) { const { provider, unresolvedDep } = providerToUnresolvedDependency; const parameter = clazz.requireMethodParameter(provider.name, unresolvedDep.name); if (!parameter) return; context.reportError(parameter.node, 'unresolved-provider-dependencies', { dependencyName: unresolvedDep.name }); } } } exports.GraphHandler = GraphHandler; //# sourceMappingURL=graphHandler.js.map