eslint-plugin-obsidian 2.12.1 → 2.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,10 +4,12 @@ import { Method } from './method';
4
4
  export declare class Clazz {
5
5
  node: TSESTree.ClassDeclaration;
6
6
  constructor(node: TSESTree.ClassDeclaration);
7
+ get isAbstract(): boolean;
7
8
  get decoratorNames(): string[];
8
9
  get decorators(): Decorator[];
9
10
  get superClass(): string | null;
10
11
  get body(): TSESTree.ClassElement[];
12
+ mapDecoratedMethods<T>(decoratorName: string, mapper: (method: Method) => T): T[];
11
13
  getDecoratedMethods(decoratorName: string): Method[];
12
14
  requireDecorator(name: string): Decorator;
13
15
  get name(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/dto/class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,qBAAa,KAAK;IACG,IAAI,EAAE,QAAQ,CAAC,gBAAgB;gBAA/B,IAAI,EAAE,QAAQ,CAAC,gBAAgB;IAIlD,IAAI,cAAc,aAIjB;IAED,IAAI,UAAU,gBAIb;IAED,IAAI,UAAU,kBAEb;IAED,IAAI,IAAI,4BAEP;IAEM,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAOpD,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAQpC,IAAW,IAAI,uBAEd;CACF"}
1
+ {"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/dto/class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,qBAAa,KAAK;IACG,IAAI,EAAE,QAAQ,CAAC,gBAAgB;gBAA/B,IAAI,EAAE,QAAQ,CAAC,gBAAgB;IAIlD,IAAI,UAAU,YAEb;IAED,IAAI,cAAc,aAIjB;IAED,IAAI,UAAU,gBAIb;IAED,IAAI,UAAU,kBAEb;IAED,IAAI,IAAI,4BAEP;IAEM,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIjF,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAOpD,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAQpC,IAAW,IAAI,uBAEd;CACF"}
package/dist/dto/class.js CHANGED
@@ -11,6 +11,9 @@ class Clazz {
11
11
  this.node = node;
12
12
  (0, assertions_1.assertDefined)(this.node);
13
13
  }
14
+ get isAbstract() {
15
+ return this.node.abstract;
16
+ }
14
17
  get decoratorNames() {
15
18
  return this.decorators.map((decorator) => {
16
19
  return decorator.expression.callee.name;
@@ -28,6 +31,9 @@ class Clazz {
28
31
  get body() {
29
32
  return this.node.body.body;
30
33
  }
34
+ mapDecoratedMethods(decoratorName, mapper) {
35
+ return this.getDecoratedMethods(decoratorName).map(mapper);
36
+ }
31
37
  getDecoratedMethods(decoratorName) {
32
38
  return this.body
33
39
  .filter(ast_1.isMethodDefinition)
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/dto/class.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,oDAAoD;AACpD,sCAAkD;AAClD,qCAAkC;AAClC,6CAA0C;AAE1C,MAAa,KAAK;IAChB,YAAmB,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;QAChD,IAAA,0BAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAoB,EAAE,EAAE;YAClD,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,IAAI,UAAU;;QACZ,OAAO,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAA6B,EAAE,EAAE;YACxE,OAAO,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,uBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEM,mBAAmB,CAAC,aAAqB;QAC9C,OAAO,IAAI,CAAC,IAAI;aACb,MAAM,CAAC,wBAAkB,CAAC;aAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAqB,EAAE,EAAE;YAC/D,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,IAAA,0BAAa,EAAC,SAAS,EAAE,aAAa,IAAI,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,IAAI;;QACb,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,EAAE,0CAAE,IAAI,CAAC;IAC5B,CAAC;CACF;AA3CD,sBA2CC"}
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/dto/class.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,oDAAoD;AACpD,sCAAkD;AAClD,qCAAkC;AAClC,6CAA0C;AAE1C,MAAa,KAAK;IAChB,YAAmB,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;QAChD,IAAA,0BAAa,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAoB,EAAE,EAAE;YAClD,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,IAAI,UAAU;;QACZ,OAAO,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAA6B,EAAE,EAAE;YACxE,OAAO,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,uBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEM,mBAAmB,CAAI,aAAqB,EAAE,MAA6B;QAChF,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAEM,mBAAmB,CAAC,aAAqB;QAC9C,OAAO,IAAI,CAAC,IAAI;aACb,MAAM,CAAC,wBAAkB,CAAC;aAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAqB,EAAE,EAAE;YAC/D,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,IAAA,0BAAa,EAAC,SAAS,EAAE,aAAa,IAAI,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,IAAI;;QACb,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,EAAE,0CAAE,IAAI,CAAC;IAC5B,CAAC;CACF;AAnDD,sBAmDC"}
@@ -9,7 +9,7 @@ const subgraphResolver_1 = require("./subgraphResolver");
9
9
  const classResolver_1 = require("./classResolver");
10
10
  function create(context, fileReader) {
11
11
  const imports = [];
12
- const dependencyResolver = new dependencyResolver_1.DependencyResolver(new subgraphResolver_1.SubgraphResolver(fileReader), new classResolver_1.ClassResolver(fileReader));
12
+ const dependencyResolver = new dependencyResolver_1.DependencyResolver(new subgraphResolver_1.SubgraphResolver(fileReader, new classResolver_1.ClassResolver(fileReader)), new classResolver_1.ClassResolver(fileReader));
13
13
  const graphHandler = new graphHandler_1.GraphHandler(context, dependencyResolver);
14
14
  return {
15
15
  ImportDeclaration(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"createRule.js","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/createRule.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,iDAA8C;AAE9C,6DAA0D;AAC1D,6CAA0C;AAC1C,yDAAsD;AACtD,mDAAgD;AAEhD,SAAgB,MAAM,CAAC,OAAgB,EAAE,UAAsB;IAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAC/C,IAAI,mCAAgB,CAAC,UAAU,CAAC,EAChC,IAAI,6BAAa,CAAC,UAAU,CAAC,CAC9B,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEnE,OAAO;QACL,iBAAiB,CAAC,IAAgC;YAChD,OAAO,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,gBAAgB,CAAC,IAA+B;YAC9C,YAAY,CAAC,MAAM,CAAC,IAAI,aAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC;AAhBD,wBAgBC"}
1
+ {"version":3,"file":"createRule.js","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/createRule.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,iDAA8C;AAE9C,6DAA0D;AAC1D,6CAA0C;AAC1C,yDAAsD;AACtD,mDAAgD;AAEhD,SAAgB,MAAM,CAAC,OAAgB,EAAE,UAAsB;IAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAC/C,IAAI,mCAAgB,CAAC,UAAU,EAAE,IAAI,6BAAa,CAAC,UAAU,CAAC,CAAC,EAC/D,IAAI,6BAAa,CAAC,UAAU,CAAC,CAC9B,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEnE,OAAO;QACL,iBAAiB,CAAC,IAAgC;YAChD,OAAO,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,gBAAgB,CAAC,IAA+B;YAC9C,YAAY,CAAC,MAAM,CAAC,IAAI,aAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC;AAhBD,wBAgBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyResolver.d.ts","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/dependencyResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,aAAa;gBADb,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa;IAG/B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;IAShE,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,6BAA6B;CAQtC"}
1
+ {"version":3,"file":"dependencyResolver.d.ts","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/dependencyResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,aAAa;gBADb,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa;IAG/B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;IAShE,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,6BAA6B;CAOtC"}
@@ -21,16 +21,15 @@ class DependencyResolver {
21
21
  .flatMap(this.getGraphDependencies);
22
22
  }
23
23
  getGraphDependencies({ clazz }) {
24
- return clazz
25
- .getDecoratedMethods('Provides')
26
- .map((method) => method.name);
24
+ var _a;
25
+ return (_a = clazz.mapDecoratedMethods('Provides', (method) => method.name)) !== null && _a !== void 0 ? _a : [];
27
26
  }
28
27
  getDependenciesFromSuperClass(clazz) {
29
- var _a, _b, _c, _d;
28
+ var _a, _b, _c;
30
29
  if (!clazz.superClass || clazz.superClass === 'ObjectGraph')
31
30
  return [];
32
- return (_d = (_c = (_b = (_a = this.classResolver
33
- .resolve(clazz.superClass, clazz)) === null || _a === void 0 ? void 0 : _a.clazz) === null || _b === void 0 ? void 0 : _b.getDecoratedMethods('Provides')) === null || _c === void 0 ? void 0 : _c.map((method) => method.name)) !== null && _d !== void 0 ? _d : [];
31
+ return (_c = (_b = (_a = this.classResolver
32
+ .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 : [];
34
33
  }
35
34
  }
36
35
  exports.DependencyResolver = DependencyResolver;
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyResolver.js","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/dependencyResolver.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAOhD,MAAa,kBAAkB;IAC7B,YACU,gBAAkC,EAClC,aAA4B;QAD5B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,kBAAa,GAAb,aAAa,CAAe;IAClC,CAAC;IAEE,OAAO,CAAC,OAAgB,EAAE,KAAY,EAAE,OAAiB;QAC9D,MAAM,gBAAgB,GAAG,IAAI,qBAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAChF,OAAO;YACL,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;YAC9C,GAAG,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;YACtD,GAAG,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,CAAC;SACxD,CAAC;IACJ,CAAC;IAEO,4BAA4B,CAAC,KAAgB;QACnD,OAAO,IAAI,CAAC,gBAAgB;aACzB,OAAO,CAAC,KAAK,CAAC;aACd,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAEO,oBAAoB,CAAC,EAAE,KAAK,EAAa;QAC/C,OAAO,KAAK;aACT,mBAAmB,CAAC,UAAU,CAAC;aAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,6BAA6B,CAAC,KAAgB;;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa;YAAE,OAAO,EAAE,CAAC;QACvE,OAAO,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa;aACtB,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,0CAC/B,KAAK,0CACL,mBAAmB,CAAC,UAAU,CAAC,0CAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IACzC,CAAC;CACF;AAnCD,gDAmCC"}
1
+ {"version":3,"file":"dependencyResolver.js","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/dependencyResolver.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAOhD,MAAa,kBAAkB;IAC7B,YACU,gBAAkC,EAClC,aAA4B;QAD5B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,kBAAa,GAAb,aAAa,CAAe;IAClC,CAAC;IAEE,OAAO,CAAC,OAAgB,EAAE,KAAY,EAAE,OAAiB;QAC9D,MAAM,gBAAgB,GAAG,IAAI,qBAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAChF,OAAO;YACL,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;YAC9C,GAAG,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;YACtD,GAAG,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,CAAC;SACxD,CAAC;IACJ,CAAC;IAEO,4BAA4B,CAAC,KAAgB;QACnD,OAAO,IAAI,CAAC,gBAAgB;aACzB,OAAO,CAAC,KAAK,CAAC;aACd,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAEO,oBAAoB,CAAC,EAAE,KAAK,EAAa;;QAC/C,OAAO,MAAA,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IAC9E,CAAC;IAEO,6BAA6B,CAAC,KAAgB;;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa;YAAE,OAAO,EAAE,CAAC;QACvE,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa;aACtB,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,0CAC/B,KAAK,0CACL,mBAAmB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IACrE,CAAC;CACF;AAhCD,gDAgCC"}
@@ -1,12 +1,15 @@
1
1
  import { ClassFile } from '../../dto/classFile';
2
2
  import type { FileReader } from '../../framework/fileReader';
3
+ import { ClassResolver } from './classResolver';
3
4
  export declare class SubgraphResolver {
4
5
  private fileReader;
5
- constructor(fileReader: FileReader);
6
+ private classResolver;
7
+ constructor(fileReader: FileReader, classResolver: ClassResolver);
6
8
  resolve(clazz: ClassFile): ClassFile[];
7
9
  private getImportedGraphs;
8
10
  private getImportedSubgraphClasses;
9
11
  private getLocalGraphs;
12
+ private getExtendedGraphs;
10
13
  private getSubgraphsPropertyFromGraphDecorator;
11
14
  private getLocalSubgraphClasses;
12
15
  private createLocalGraphClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"subgraphResolver.d.ts","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/subgraphResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,qBAAa,gBAAgB;IACf,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEnC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;IAO7C,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,sCAAsC;IAK9C,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,qCAAqC;IAO7C,OAAO,CAAC,kBAAkB;CAO3B"}
1
+ {"version":3,"file":"subgraphResolver.d.ts","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/subgraphResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,qBAAa,gBAAgB;IACf,OAAO,CAAC,UAAU;IAAc,OAAO,CAAC,aAAa;gBAA7C,UAAU,EAAE,UAAU,EAAU,aAAa,EAAE,aAAa;IAEzE,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;IAU7C,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sCAAsC;IAM9C,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,qCAAqC;IAO7C,OAAO,CAAC,kBAAkB;CAO3B"}
@@ -4,15 +4,20 @@ exports.SubgraphResolver = void 0;
4
4
  const ast_1 = require("../../utils/ast");
5
5
  const classFile_1 = require("../../dto/classFile");
6
6
  const file_1 = require("../../dto/file");
7
+ const filter_1 = require("../../utils/filter");
7
8
  class SubgraphResolver {
8
- constructor(fileReader) {
9
+ constructor(fileReader, classResolver) {
9
10
  this.fileReader = fileReader;
11
+ this.classResolver = classResolver;
10
12
  }
11
13
  resolve(clazz) {
12
14
  return [
13
15
  ...this.getImportedGraphs(clazz),
14
16
  ...this.getLocalGraphs(clazz),
15
- ].flatMap((g) => [g, ...this.resolve(g)]);
17
+ ...this.getExtendedGraphs(clazz),
18
+ ]
19
+ .filter(filter_1.nonNull)
20
+ .flatMap((g) => [g, ...this.resolve(g)]);
16
21
  }
17
22
  getImportedGraphs(clazz) {
18
23
  const subgraphs = this.getSubgraphsPropertyFromGraphDecorator(clazz);
@@ -36,7 +41,14 @@ class SubgraphResolver {
36
41
  const subgraphs = this.getSubgraphsPropertyFromGraphDecorator(clazz);
37
42
  return this.getLocalSubgraphClasses(subgraphs, clazz);
38
43
  }
44
+ getExtendedGraphs(clazz) {
45
+ if (!clazz.superClass || clazz.superClass === 'ObjectGraph')
46
+ return [];
47
+ return [this.classResolver.resolve(clazz.superClass, clazz)];
48
+ }
39
49
  getSubgraphsPropertyFromGraphDecorator({ clazz }) {
50
+ if (clazz.isAbstract)
51
+ return undefined;
40
52
  const graphDecorator = clazz.requireDecorator('Graph');
41
53
  return graphDecorator.getProperty('subgraphs');
42
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subgraphResolver.js","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/subgraphResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subgraphResolver.js","sourceRoot":"","sources":["../../../src/rules/unresolvedProviderDependencies/subgraphResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function nonNull<T>(value: T): value is NonNullable<typeof value>;
2
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/utils/filter.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,CAEvE"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nonNull = void 0;
4
+ function nonNull(value) {
5
+ return value !== undefined;
6
+ }
7
+ exports.nonNull = nonNull;
8
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/utils/filter.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAI,KAAQ;IAC/B,OAAO,KAAK,KAAK,SAAS,CAAC;AAC/B,CAAC;AAFD,0BAEC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "eslint-plugin-obsidian",
3
3
  "description": "ESLint rules for Obsidian",
4
4
  "main": "dist/index.js",
5
- "version": "2.12.1",
5
+ "version": "2.13.1",
6
6
  "scripts": {
7
7
  "build": "npx tsc --project tsconfig.prod.json",
8
8
  "test": "npx jest",