UNPKG

eslint-plugin-obsidian

Version:

ESLint rules for Obsidian

36 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DependencyResolver = void 0; const classFile_1 = require("../../dto/classFile"); class DependencyResolver { constructor(subgraphResolver, classResolver) { this.subgraphResolver = subgraphResolver; this.classResolver = classResolver; } resolve(context, clazz, imports) { const classWithImports = new classFile_1.ClassFile(clazz, imports, context.currentFilePath); return [ ...this.getGraphDependencies(classWithImports), ...this.getDependenciesFromSubgraphs(classWithImports), ...this.getDependenciesFromSuperClass(classWithImports), ]; } getDependenciesFromSubgraphs(clazz) { return this.subgraphResolver .resolve(clazz) .flatMap(this.getGraphDependencies); } getGraphDependencies({ clazz }) { var _a; return (_a = clazz.mapDecoratedMethods('Provides', (method) => method.name)) !== null && _a !== void 0 ? _a : []; } getDependenciesFromSuperClass(clazz) { var _a, _b, _c; if (!clazz.superClass || clazz.superClass === 'ObjectGraph') return []; return (_c = (_b = (_a = this.classResolver .resolve(clazz.superClass, clazz)) === null || _a === void 0 ? void 0 : _a.clazz) === null || _b === void 0 ? void 0 : _b.mapDecoratedMethods('Provides', (method) => method.name)) !== null && _c !== void 0 ? _c : []; } } exports.DependencyResolver = DependencyResolver; //# sourceMappingURL=dependencyResolver.js.map