react-obsidian 2.27.0-alpha.0 → 2.28.0

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.
Files changed (42) hide show
  1. package/dist/src/graph/Graph.d.ts +1 -1
  2. package/dist/src/graph/Graph.d.ts.map +1 -1
  3. package/dist/src/graph/ObjectGraph.d.ts +2 -1
  4. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  5. package/dist/src/graph/ObjectGraph.js +6 -3
  6. package/dist/src/graph/ObjectGraph.js.map +1 -1
  7. package/dist/src/graph/properties/PropertyRetriever.d.ts +12 -0
  8. package/dist/src/graph/properties/PropertyRetriever.d.ts.map +1 -0
  9. package/dist/src/graph/{PropertyRetriever.js → properties/PropertyRetriever.js} +16 -24
  10. package/dist/src/graph/properties/PropertyRetriever.js.map +1 -0
  11. package/dist/src/graph/properties/PropertyRetrieverDelegate.d.ts +7 -0
  12. package/dist/src/graph/properties/PropertyRetrieverDelegate.d.ts.map +1 -0
  13. package/dist/src/graph/properties/PropertyRetrieverDelegate.js.map +1 -0
  14. package/dist/src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.d.ts +9 -0
  15. package/dist/src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.d.ts.map +1 -0
  16. package/dist/src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.js +29 -0
  17. package/dist/src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.js.map +1 -0
  18. package/dist/src/graph/properties/retrieveFromPublicSubgraphs.d.ts +9 -0
  19. package/dist/src/graph/properties/retrieveFromPublicSubgraphs.d.ts.map +1 -0
  20. package/dist/src/graph/properties/retrieveFromPublicSubgraphs.js +22 -0
  21. package/dist/src/graph/properties/retrieveFromPublicSubgraphs.js.map +1 -0
  22. package/dist/src/graph/properties/retrieveStrategy.d.ts +5 -0
  23. package/dist/src/graph/properties/retrieveStrategy.d.ts.map +1 -0
  24. package/dist/src/graph/properties/retrieveStrategy.js +3 -0
  25. package/dist/src/graph/properties/retrieveStrategy.js.map +1 -0
  26. package/package.json +1 -1
  27. package/src/graph/Graph.ts +1 -1
  28. package/src/graph/ObjectGraph.ts +13 -3
  29. package/src/graph/properties/PropertyRetriever.ts +68 -0
  30. package/src/graph/properties/PropertyRetrieverDelegate.ts +17 -0
  31. package/src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.ts +27 -0
  32. package/src/graph/properties/retrieveFromPublicSubgraphs.ts +20 -0
  33. package/src/graph/properties/retrieveStrategy.ts +9 -0
  34. package/dist/src/graph/PropertyRetriever.d.ts +0 -9
  35. package/dist/src/graph/PropertyRetriever.d.ts.map +0 -1
  36. package/dist/src/graph/PropertyRetriever.js.map +0 -1
  37. package/dist/src/graph/PropertyRetrieverDelegate.d.ts +0 -6
  38. package/dist/src/graph/PropertyRetrieverDelegate.d.ts.map +0 -1
  39. package/dist/src/graph/PropertyRetrieverDelegate.js.map +0 -1
  40. package/src/graph/PropertyRetriever.ts +0 -68
  41. package/src/graph/PropertyRetrieverDelegate.ts +0 -12
  42. /package/dist/src/graph/{PropertyRetrieverDelegate.js → properties/PropertyRetrieverDelegate.js} +0 -0
@@ -1,4 +1,4 @@
1
- import PropertyRetrieverDelegate from './PropertyRetrieverDelegate';
1
+ import PropertyRetrieverDelegate from './properties/PropertyRetrieverDelegate';
2
2
  export interface Graph extends PropertyRetrieverDelegate {
3
3
  get name(): string;
4
4
  onBind(target: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/graph/Graph.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,KAAM,SAAQ,yBAAyB;IACtD,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/graph/Graph.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,wCAAwC,CAAC;AAE/E,MAAM,WAAW,KAAM,SAAQ,yBAAyB;IACtD,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3B"}
@@ -6,7 +6,8 @@ export declare abstract class ObjectGraph<T = unknown> implements Graph {
6
6
  private propertyRetriever;
7
7
  get name(): string;
8
8
  constructor(_props?: T | undefined);
9
- retrieve<Dependency>(property: string, receiver?: unknown, detector?: CircularDependenciesDetector, includePrivate?: boolean): Dependency | undefined;
9
+ retrieve<Dependency>(property: string, receiver?: unknown, detector?: CircularDependenciesDetector): Dependency | undefined;
10
+ retrieveAll<Dependency>(property: string, receiver?: unknown, detector?: CircularDependenciesDetector): Dependency | undefined;
10
11
  onBind(_target: any): void;
11
12
  }
12
13
  export declare function isGraph(object: Constructable<ObjectGraph> | any): object is Constructable<ObjectGraph>;
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAI9E,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAajD,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAZhC,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IAAI,IAAI,IAAI,MAAM,CAQjB;gBAEqB,MAAM,CAAC,EAAE,CAAC,YAAA;IAIhC,QAAQ,CAAC,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,4BAA4B,EACvC,cAAc,GAAE,OAAe,GAC9B,UAAU,GAAG,SAAS;IASzB,MAAM,CAAC,OAAO,EAAE,GAAG;CAGpB;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
1
+ {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAI9E,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAajD,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAZhC,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IAAI,IAAI,IAAI,MAAM,CAQjB;gBAEqB,MAAM,CAAC,EAAE,CAAC,YAAA;IAIhC,QAAQ,CAAC,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,4BAA4B,GACtC,UAAU,GAAG,SAAS;IAQzB,WAAW,CAAC,UAAU,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,4BAA4B,GACtC,UAAU,GAAG,SAAS;IAQzB,MAAM,CAAC,OAAO,EAAE,GAAG;CAGpB;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
@@ -7,7 +7,7 @@ exports.ObjectGraph = void 0;
7
7
  exports.isGraph = isGraph;
8
8
  const uniqueId_1 = require("../utils/uniqueId");
9
9
  const ProviderBinder_1 = require("./ProviderBinder");
10
- const PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
10
+ const PropertyRetriever_1 = __importDefault(require("./properties/PropertyRetriever"));
11
11
  const reflect_1 = require("../utils/reflect");
12
12
  const object_1 = require("../utils/object");
13
13
  class ObjectGraph {
@@ -25,8 +25,11 @@ class ObjectGraph {
25
25
  this.propertyRetriever = new PropertyRetriever_1.default(this);
26
26
  (0, ProviderBinder_1.bindProviders)(this);
27
27
  }
28
- retrieve(property, receiver, detector, includePrivate = false) {
29
- return this.propertyRetriever.retrieve(property, receiver, detector, includePrivate);
28
+ retrieve(property, receiver, detector) {
29
+ return this.propertyRetriever.retrieve(property, receiver, detector);
30
+ }
31
+ retrieveAll(property, receiver, detector) {
32
+ return this.propertyRetriever.retrieveAll(property, receiver, detector);
30
33
  }
31
34
  onBind(_target) {
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;AA+CA,0BAEC;AAjDD,gDAA6C;AAC7C,qDAAiD;AAEjD,4EAAoD;AAGpD,8CAA2C;AAC3C,4CAAoE;AAEpE,MAAsB,WAAW;IAG/B,IAAI,IAAI;QACN,MAAM,MAAM,GAAG,IAAA,0CAAiC,EAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,iBAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;YAChD,OAAO,iBAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,iBAAO,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAZxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAatD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,QAAuC,EACvC,iBAA0B,KAAK;QAE/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CACpC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,CACW,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,OAAY;IAEnB,CAAC;CACF;AAlCD,kCAkCC;AAED,iBAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,iBAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;AAyDA,0BAEC;AA3DD,gDAA6C;AAC7C,qDAAiD;AAEjD,uFAA+D;AAG/D,8CAA2C;AAC3C,4CAAoE;AAEpE,MAAsB,WAAW;IAG/B,IAAI,IAAI;QACN,MAAM,MAAM,GAAG,IAAA,0CAAiC,EAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,iBAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;YAChD,OAAO,iBAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,iBAAO,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAZxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAatD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,QAAuC;QAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CACpC,QAAQ,EACR,QAAQ,EACR,QAAQ,CACiB,CAAC;IAC9B,CAAC;IAED,WAAW,CACT,QAAgB,EAChB,QAAkB,EAClB,QAAuC;QAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACvC,QAAQ,EACR,QAAQ,EACR,QAAQ,CACiB,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,OAAY;IAEnB,CAAC;CACF;AA5CD,kCA4CC;AAED,iBAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,iBAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Graph } from '../Graph';
2
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
3
+ export default class PropertyRetriever {
4
+ private graph;
5
+ private readonly retrieveFromPublicSubgraphs;
6
+ private readonly retrieveFromPublicAndPrivateSubgraphs;
7
+ constructor(graph: Graph);
8
+ retrieve(property: string, receiver?: unknown, maybeDetector?: CircularDependenciesDetector): unknown | undefined;
9
+ retrieveAll(property: string, receiver?: unknown, maybeDetector?: CircularDependenciesDetector): unknown | undefined;
10
+ private retrieveInternal;
11
+ }
12
+ //# sourceMappingURL=PropertyRetriever.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyRetriever.d.ts","sourceRoot":"","sources":["../../../../src/graph/properties/PropertyRetriever.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAM/E,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAIvB,OAAO,CAAC,KAAK;IAH1B,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAmB;gBAEpD,KAAK,EAAE,KAAK;IAKjC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,aAAa,CAAC,EAAE,4BAA4B,GAC3C,OAAO,GAAG,SAAS;IAItB,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,aAAa,CAAC,EAAE,4BAA4B,GAC3C,OAAO,GAAG,SAAS;IAItB,OAAO,CAAC,gBAAgB;CAkCzB"}
@@ -3,15 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const GraphRegistry_1 = __importDefault(require("./registry/GraphRegistry"));
7
- const ProvidedPropertiesStore_1 = __importDefault(require("../ProvidedPropertiesStore"));
8
- const CircularDependenciesDetector_1 = require("./CircularDependenciesDetector");
9
- const reflect_1 = require("../utils/reflect");
6
+ const ProvidedPropertiesStore_1 = __importDefault(require("../../ProvidedPropertiesStore"));
7
+ const CircularDependenciesDetector_1 = require("../CircularDependenciesDetector");
8
+ const reflect_1 = require("../../utils/reflect");
9
+ const retrieveFromPublicSubgraphs_1 = require("./retrieveFromPublicSubgraphs");
10
+ const retrieveFromPublicAndPrivateSubgraphs_1 = require("./retrieveFromPublicAndPrivateSubgraphs");
10
11
  class PropertyRetriever {
11
12
  constructor(graph) {
12
13
  this.graph = graph;
14
+ this.retrieveFromPublicSubgraphs = new retrieveFromPublicSubgraphs_1.RetrieveFromPublicSubgraphs(this.graph);
15
+ this.retrieveFromPublicAndPrivateSubgraphs = new retrieveFromPublicAndPrivateSubgraphs_1.RetrieveFromPublicAndPrivateSubgraphs(this.graph);
13
16
  }
14
- retrieve(property, receiver, maybeDetector, includePrivate = false) {
17
+ retrieve(property, receiver, maybeDetector) {
18
+ return this.retrieveInternal(property, this.retrieveFromPublicSubgraphs, receiver, maybeDetector);
19
+ }
20
+ retrieveAll(property, receiver, maybeDetector) {
21
+ return this.retrieveInternal(property, this.retrieveFromPublicAndPrivateSubgraphs, receiver, maybeDetector);
22
+ }
23
+ retrieveInternal(property, retrieveStrategy, receiver, maybeDetector) {
15
24
  const mangledPropertyKey = ProvidedPropertiesStore_1.default.getMangledProperty(this.graph, property);
16
25
  const circularDependenciesDetector = maybeDetector !== null && maybeDetector !== void 0 ? maybeDetector : new CircularDependenciesDetector_1.CircularDependenciesDetector(this.graph.name);
17
26
  if (mangledPropertyKey
@@ -19,7 +28,7 @@ class PropertyRetriever {
19
28
  && circularDependenciesDetector.visit(this.graph.name, property)) {
20
29
  const proxiedGraph = new Proxy(this.graph, {
21
30
  get(graph, dependencyName) {
22
- return graph.retrieve(dependencyName, receiver, circularDependenciesDetector, true);
31
+ return graph.retrieveAll(dependencyName, receiver, circularDependenciesDetector);
23
32
  },
24
33
  });
25
34
  const resolved = reflect_1.Reflect.get(this.graph, mangledPropertyKey, receiver)(proxiedGraph);
@@ -31,24 +40,7 @@ class PropertyRetriever {
31
40
  + ` from ${circularDependenciesDetector.graphName} because of a circular dependency:`
32
41
  + ` ${circularDependenciesDetector.getDependencies().join(' -> ')}`);
33
42
  }
34
- return this.getFromSubgraphs(property, circularDependenciesDetector, receiver, includePrivate);
35
- }
36
- getFromSubgraphs(property, circularDependenciesDetector, receiver, includePrivate) {
37
- // First search public subgraphs
38
- for (const subgraph of GraphRegistry_1.default.getSubgraphs(this.graph)) {
39
- const result = subgraph.retrieve(property, receiver, circularDependenciesDetector, includePrivate);
40
- if (result)
41
- return result;
42
- }
43
- // If includePrivate is true, also search private subgraphs
44
- if (includePrivate) {
45
- for (const subgraph of GraphRegistry_1.default.getPrivateSubgraphs(this.graph)) {
46
- const result = subgraph.retrieve(property, receiver, circularDependenciesDetector, includePrivate);
47
- if (result)
48
- return result;
49
- }
50
- }
51
- return undefined;
43
+ return retrieveStrategy.retrieve(property, circularDependenciesDetector, receiver);
52
44
  }
53
45
  }
54
46
  exports.default = PropertyRetriever;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../../src/graph/properties/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AACA,4FAAoE;AACpE,kFAA+E;AAC/E,iDAA8C;AAE9C,+EAA4E;AAC5E,mGAAgG;AAEhG,MAAqB,iBAAiB;IAIpC,YAAqB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAC/B,IAAI,CAAC,2BAA2B,GAAG,IAAI,yDAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,qCAAqC,GAAG,IAAI,6EAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrG,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,aAA4C;QAE5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpG,CAAC;IAED,WAAW,CACT,QAAgB,EAChB,QAAkB,EAClB,aAA4C;QAE5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qCAAqC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC9G,CAAC;IAEO,gBAAgB,CACtB,QAAgB,EAChB,gBAAkC,EAClC,QAAkB,EAClB,aAA4C;QAE5C,MAAM,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5F,MAAM,4BAA4B,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,2DAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExG,IACE,kBAAkB;eACf,kBAAkB,IAAI,IAAI,CAAC,KAAK;eAChC,4BAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChE,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzC,GAAG,CAAC,KAAY,EAAE,cAAsB;oBACtC,OAAO,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;gBACnF,CAAC;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;YACrF,4BAA4B,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,4BAA4B,CAAC,uBAAuB,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,qBAAqB,4BAA4B,CAAC,mBAAmB,EAAE;kBACrE,SAAS,4BAA4B,CAAC,SAAS,oCAAoC;kBACnF,IAAI,4BAA4B,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACpE,CAAC;QACJ,CAAC;QAED,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAC;IACrF,CAAC;CACF;AA3DD,oCA2DC"}
@@ -0,0 +1,7 @@
1
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
2
+ interface PropertyRetrieverDelegate {
3
+ retrieve: (property: string, receiver?: unknown, circularDependenciesDetector?: CircularDependenciesDetector) => unknown | undefined;
4
+ retrieveAll: (property: string, receiver?: unknown, circularDependenciesDetector?: CircularDependenciesDetector) => unknown | undefined;
5
+ }
6
+ export default PropertyRetrieverDelegate;
7
+ //# sourceMappingURL=PropertyRetrieverDelegate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyRetrieverDelegate.d.ts","sourceRoot":"","sources":["../../../../src/graph/properties/PropertyRetrieverDelegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,UAAU,yBAAyB;IACjC,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,4BAA4B,CAAC,EAAE,4BAA4B,KACxD,OAAO,GAAG,SAAS,CAAC;IAEzB,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,4BAA4B,CAAC,EAAE,4BAA4B,KACxD,OAAO,GAAG,SAAS,CAAC;CAC1B;AAED,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyRetrieverDelegate.js","sourceRoot":"","sources":["../../../../src/graph/properties/PropertyRetrieverDelegate.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
2
+ import { RetrieveStrategy } from './retrieveStrategy';
3
+ import { Graph } from '../Graph';
4
+ export declare class RetrieveFromPublicAndPrivateSubgraphs implements RetrieveStrategy {
5
+ private readonly graph;
6
+ constructor(graph: Graph);
7
+ retrieve(property: string, circularDependenciesDetector: CircularDependenciesDetector, receiver: unknown): unknown | undefined;
8
+ }
9
+ //# sourceMappingURL=retrieveFromPublicAndPrivateSubgraphs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveFromPublicAndPrivateSubgraphs.d.ts","sourceRoot":"","sources":["../../../../src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAa,qCAAsC,YAAW,gBAAgB;IAChE,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,4BAA4B,EAAE,4BAA4B,EAC1D,QAAQ,EAAE,OAAO,GAChB,OAAO,GAAG,SAAS;CAcvB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RetrieveFromPublicAndPrivateSubgraphs = void 0;
7
+ const GraphRegistry_1 = __importDefault(require("../registry/GraphRegistry"));
8
+ class RetrieveFromPublicAndPrivateSubgraphs {
9
+ constructor(graph) {
10
+ this.graph = graph;
11
+ }
12
+ retrieve(property, circularDependenciesDetector, receiver) {
13
+ // First search public subgraphs
14
+ for (const subgraph of GraphRegistry_1.default.getSubgraphs(this.graph)) {
15
+ const result = subgraph.retrieveAll(property, receiver, circularDependenciesDetector);
16
+ if (result)
17
+ return result;
18
+ }
19
+ // Also search private subgraphs
20
+ for (const subgraph of GraphRegistry_1.default.getPrivateSubgraphs(this.graph)) {
21
+ const result = subgraph.retrieveAll(property, receiver, circularDependenciesDetector);
22
+ if (result)
23
+ return result;
24
+ }
25
+ return undefined;
26
+ }
27
+ }
28
+ exports.RetrieveFromPublicAndPrivateSubgraphs = RetrieveFromPublicAndPrivateSubgraphs;
29
+ //# sourceMappingURL=retrieveFromPublicAndPrivateSubgraphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveFromPublicAndPrivateSubgraphs.js","sourceRoot":"","sources":["../../../../src/graph/properties/retrieveFromPublicAndPrivateSubgraphs.ts"],"names":[],"mappings":";;;;;;AAEA,8EAAsD;AAGtD,MAAa,qCAAqC;IAChD,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAE9C,QAAQ,CACN,QAAgB,EAChB,4BAA0D,EAC1D,QAAiB;QAEnB,gCAAgC;QAChC,KAAK,MAAM,QAAQ,IAAI,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;YACtF,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,QAAQ,IAAI,uBAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;YACtF,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QACD,OAAO,SAAS,CAAC;IACjB,CAAC;CACF;AArBD,sFAqBC"}
@@ -0,0 +1,9 @@
1
+ import { RetrieveStrategy } from './retrieveStrategy';
2
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
3
+ import { Graph } from '../Graph';
4
+ export declare class RetrieveFromPublicSubgraphs implements RetrieveStrategy {
5
+ private readonly graph;
6
+ constructor(graph: Graph);
7
+ retrieve(property: string, circularDependenciesDetector: CircularDependenciesDetector, receiver: unknown): unknown | undefined;
8
+ }
9
+ //# sourceMappingURL=retrieveFromPublicSubgraphs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveFromPublicSubgraphs.d.ts","sourceRoot":"","sources":["../../../../src/graph/properties/retrieveFromPublicSubgraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAa,2BAA4B,YAAW,gBAAgB;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,4BAA4B,EAAE,4BAA4B,EAC1D,QAAQ,EAAE,OAAO,GAChB,OAAO,GAAG,SAAS;CAOvB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RetrieveFromPublicSubgraphs = void 0;
7
+ const GraphRegistry_1 = __importDefault(require("../registry/GraphRegistry"));
8
+ class RetrieveFromPublicSubgraphs {
9
+ constructor(graph) {
10
+ this.graph = graph;
11
+ }
12
+ retrieve(property, circularDependenciesDetector, receiver) {
13
+ for (const subgraph of GraphRegistry_1.default.getSubgraphs(this.graph)) {
14
+ const result = subgraph.retrieve(property, receiver, circularDependenciesDetector);
15
+ if (result)
16
+ return result;
17
+ }
18
+ return undefined;
19
+ }
20
+ }
21
+ exports.RetrieveFromPublicSubgraphs = RetrieveFromPublicSubgraphs;
22
+ //# sourceMappingURL=retrieveFromPublicSubgraphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveFromPublicSubgraphs.js","sourceRoot":"","sources":["../../../../src/graph/properties/retrieveFromPublicSubgraphs.ts"],"names":[],"mappings":";;;;;;AACA,8EAAsD;AAItD,MAAa,2BAA2B;IACtC,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAE9C,QAAQ,CACN,QAAgB,EAChB,4BAA0D,EAC1D,QAAiB;QAEjB,KAAK,MAAM,QAAQ,IAAI,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;YACnF,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAdD,kEAcC"}
@@ -0,0 +1,5 @@
1
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
2
+ export interface RetrieveStrategy {
3
+ retrieve: (property: string, circularDependenciesDetector: CircularDependenciesDetector, receiver: unknown) => unknown | undefined;
4
+ }
5
+ //# sourceMappingURL=retrieveStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveStrategy.d.ts","sourceRoot":"","sources":["../../../../src/graph/properties/retrieveStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,4BAA4B,EAAE,4BAA4B,EAC1D,QAAQ,EAAE,OAAO,KACd,OAAO,GAAG,SAAS,CAAC;CAC1B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=retrieveStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveStrategy.js","sourceRoot":"","sources":["../../../../src/graph/properties/retrieveStrategy.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "2.27.0-alpha.0",
3
+ "version": "2.28.0",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "scripts": {
6
6
  "prepack": "yarn lint && tsc --project tsconfig.prod.json",
@@ -1,4 +1,4 @@
1
- import PropertyRetrieverDelegate from './PropertyRetrieverDelegate';
1
+ import PropertyRetrieverDelegate from './properties/PropertyRetrieverDelegate';
2
2
 
3
3
  export interface Graph extends PropertyRetrieverDelegate {
4
4
  get name(): string;
@@ -1,7 +1,7 @@
1
1
  import { uniqueId } from '../utils/uniqueId';
2
2
  import { bindProviders } from './ProviderBinder';
3
3
  import { Graph } from './Graph';
4
- import PropertyRetriever from './PropertyRetriever';
4
+ import PropertyRetriever from './properties/PropertyRetriever';
5
5
  import { Constructable } from '../types';
6
6
  import { CircularDependenciesDetector } from './CircularDependenciesDetector';
7
7
  import { Reflect } from '../utils/reflect';
@@ -28,13 +28,23 @@ export abstract class ObjectGraph<T = unknown> implements Graph {
28
28
  property: string,
29
29
  receiver?: unknown,
30
30
  detector?: CircularDependenciesDetector,
31
- includePrivate: boolean = false,
32
31
  ): Dependency | undefined {
33
32
  return this.propertyRetriever.retrieve(
34
33
  property,
35
34
  receiver,
36
35
  detector,
37
- includePrivate,
36
+ ) as Dependency | undefined;
37
+ }
38
+
39
+ retrieveAll<Dependency>(
40
+ property: string,
41
+ receiver?: unknown,
42
+ detector?: CircularDependenciesDetector,
43
+ ): Dependency | undefined {
44
+ return this.propertyRetriever.retrieveAll(
45
+ property,
46
+ receiver,
47
+ detector,
38
48
  ) as Dependency | undefined;
39
49
  }
40
50
 
@@ -0,0 +1,68 @@
1
+ import { Graph } from '../Graph';
2
+ import providedPropertiesStore from '../../ProvidedPropertiesStore';
3
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
4
+ import { Reflect } from '../../utils/reflect';
5
+ import { RetrieveStrategy } from './retrieveStrategy';
6
+ import { RetrieveFromPublicSubgraphs } from './retrieveFromPublicSubgraphs';
7
+ import { RetrieveFromPublicAndPrivateSubgraphs } from './retrieveFromPublicAndPrivateSubgraphs';
8
+
9
+ export default class PropertyRetriever {
10
+ private readonly retrieveFromPublicSubgraphs: RetrieveStrategy;
11
+ private readonly retrieveFromPublicAndPrivateSubgraphs: RetrieveStrategy;
12
+
13
+ constructor (private graph: Graph) {
14
+ this.retrieveFromPublicSubgraphs = new RetrieveFromPublicSubgraphs(this.graph);
15
+ this.retrieveFromPublicAndPrivateSubgraphs = new RetrieveFromPublicAndPrivateSubgraphs(this.graph);
16
+ }
17
+
18
+ retrieve(
19
+ property: string,
20
+ receiver?: unknown,
21
+ maybeDetector?: CircularDependenciesDetector,
22
+ ): unknown | undefined {
23
+ return this.retrieveInternal(property, this.retrieveFromPublicSubgraphs, receiver, maybeDetector);
24
+ }
25
+
26
+ retrieveAll(
27
+ property: string,
28
+ receiver?: unknown,
29
+ maybeDetector?: CircularDependenciesDetector,
30
+ ): unknown | undefined {
31
+ return this.retrieveInternal(property, this.retrieveFromPublicAndPrivateSubgraphs, receiver, maybeDetector);
32
+ }
33
+
34
+ private retrieveInternal(
35
+ property: string,
36
+ retrieveStrategy: RetrieveStrategy,
37
+ receiver?: unknown,
38
+ maybeDetector?: CircularDependenciesDetector,
39
+ ): unknown | undefined {
40
+ const mangledPropertyKey = providedPropertiesStore.getMangledProperty(this.graph, property);
41
+ const circularDependenciesDetector = maybeDetector ?? new CircularDependenciesDetector(this.graph.name);
42
+
43
+ if (
44
+ mangledPropertyKey
45
+ && mangledPropertyKey in this.graph
46
+ && circularDependenciesDetector.visit(this.graph.name, property)
47
+ ) {
48
+ const proxiedGraph = new Proxy(this.graph, {
49
+ get(graph: Graph, dependencyName: string) {
50
+ return graph.retrieveAll(dependencyName, receiver, circularDependenciesDetector);
51
+ },
52
+ });
53
+ const resolved = Reflect.get(this.graph, mangledPropertyKey, receiver)(proxiedGraph);
54
+ circularDependenciesDetector.clear();
55
+ return resolved;
56
+ }
57
+
58
+ if (circularDependenciesDetector.hasCircularDependencies()) {
59
+ throw new Error(
60
+ `Could not resolve ${circularDependenciesDetector.firstDependencyName}`
61
+ + ` from ${circularDependenciesDetector.graphName} because of a circular dependency:`
62
+ + ` ${circularDependenciesDetector.getDependencies().join(' -> ')}`,
63
+ );
64
+ }
65
+
66
+ return retrieveStrategy.retrieve(property, circularDependenciesDetector, receiver);
67
+ }
68
+ }
@@ -0,0 +1,17 @@
1
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
2
+
3
+ interface PropertyRetrieverDelegate {
4
+ retrieve: (
5
+ property: string,
6
+ receiver?: unknown,
7
+ circularDependenciesDetector?: CircularDependenciesDetector
8
+ ) => unknown | undefined;
9
+
10
+ retrieveAll: (
11
+ property: string,
12
+ receiver?: unknown,
13
+ circularDependenciesDetector?: CircularDependenciesDetector
14
+ ) => unknown | undefined;
15
+ }
16
+
17
+ export default PropertyRetrieverDelegate;
@@ -0,0 +1,27 @@
1
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
2
+ import { RetrieveStrategy } from './retrieveStrategy';
3
+ import graphRegistry from '../registry/GraphRegistry';
4
+ import { Graph } from '../Graph';
5
+
6
+ export class RetrieveFromPublicAndPrivateSubgraphs implements RetrieveStrategy {
7
+ constructor(private readonly graph: Graph) { }
8
+
9
+ retrieve(
10
+ property: string,
11
+ circularDependenciesDetector: CircularDependenciesDetector,
12
+ receiver: unknown,
13
+ ): unknown | undefined {
14
+ // First search public subgraphs
15
+ for (const subgraph of graphRegistry.getSubgraphs(this.graph)) {
16
+ const result = subgraph.retrieveAll(property, receiver, circularDependenciesDetector);
17
+ if (result) return result;
18
+ }
19
+
20
+ // Also search private subgraphs
21
+ for (const subgraph of graphRegistry.getPrivateSubgraphs(this.graph)) {
22
+ const result = subgraph.retrieveAll(property, receiver, circularDependenciesDetector);
23
+ if (result) return result;
24
+ }
25
+ return undefined;
26
+ }
27
+ }
@@ -0,0 +1,20 @@
1
+ import { RetrieveStrategy } from './retrieveStrategy';
2
+ import graphRegistry from '../registry/GraphRegistry';
3
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
4
+ import { Graph } from '../Graph';
5
+
6
+ export class RetrieveFromPublicSubgraphs implements RetrieveStrategy {
7
+ constructor(private readonly graph: Graph) { }
8
+
9
+ retrieve(
10
+ property: string,
11
+ circularDependenciesDetector: CircularDependenciesDetector,
12
+ receiver: unknown,
13
+ ): unknown | undefined {
14
+ for (const subgraph of graphRegistry.getSubgraphs(this.graph)) {
15
+ const result = subgraph.retrieve(property, receiver, circularDependenciesDetector);
16
+ if (result) return result;
17
+ }
18
+ return undefined;
19
+ }
20
+ }
@@ -0,0 +1,9 @@
1
+ import { CircularDependenciesDetector } from '../CircularDependenciesDetector';
2
+
3
+ export interface RetrieveStrategy {
4
+ retrieve: (
5
+ property: string,
6
+ circularDependenciesDetector: CircularDependenciesDetector,
7
+ receiver: unknown,
8
+ ) => unknown | undefined;
9
+ }
@@ -1,9 +0,0 @@
1
- import { Graph } from './Graph';
2
- import { CircularDependenciesDetector } from './CircularDependenciesDetector';
3
- export default class PropertyRetriever {
4
- private graph;
5
- constructor(graph: Graph);
6
- retrieve(property: string, receiver?: unknown, maybeDetector?: CircularDependenciesDetector, includePrivate?: boolean): unknown | undefined;
7
- private getFromSubgraphs;
8
- }
9
- //# sourceMappingURL=PropertyRetriever.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertyRetriever.d.ts","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAG9E,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACvB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEjC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,aAAa,CAAC,EAAE,4BAA4B,EAC5C,cAAc,GAAE,OAAe,GAC9B,OAAO,GAAG,SAAS;IA8BtB,OAAO,CAAC,gBAAgB;CAsBzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AAErD,yFAAiE;AACjE,iFAA8E;AAC9E,8CAA2C;AAE3C,MAAqB,iBAAiB;IACpC,YAAqB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAEtC,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,aAA4C,EAC5C,iBAA0B,KAAK;QAE/B,MAAM,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5F,MAAM,4BAA4B,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,2DAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExG,IACE,kBAAkB;eACf,kBAAkB,IAAI,IAAI,CAAC,KAAK;eAChC,4BAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChE,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzC,GAAG,CAAC,KAAY,EAAE,cAAsB;oBACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC;gBACtF,CAAC;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;YACrF,4BAA4B,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,4BAA4B,CAAC,uBAAuB,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,qBAAqB,4BAA4B,CAAC,mBAAmB,EAAE;kBACrE,SAAS,4BAA4B,CAAC,SAAS,oCAAoC;kBACnF,IAAI,4BAA4B,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACpE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjG,CAAC;IAEO,gBAAgB,CACtB,QAAgB,EAChB,4BAA0D,EAC1D,QAAiB,EACjB,cAAuB;QAEvB,gCAAgC;QAChC,KAAK,MAAM,QAAQ,IAAI,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,EAAE,cAAc,CAAC,CAAC;YACnG,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,2DAA2D;QAC3D,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,QAAQ,IAAI,uBAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,EAAE,cAAc,CAAC,CAAC;gBACnG,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA5DD,oCA4DC"}
@@ -1,6 +0,0 @@
1
- import { CircularDependenciesDetector } from './CircularDependenciesDetector';
2
- interface PropertyRetrieverDelegate {
3
- retrieve: (property: string, receiver?: unknown, circularDependenciesDetector?: CircularDependenciesDetector, includePrivate?: boolean) => unknown | undefined;
4
- }
5
- export default PropertyRetrieverDelegate;
6
- //# sourceMappingURL=PropertyRetrieverDelegate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertyRetrieverDelegate.d.ts","sourceRoot":"","sources":["../../../src/graph/PropertyRetrieverDelegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,UAAU,yBAAyB;IACjC,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,4BAA4B,CAAC,EAAE,4BAA4B,EAC3D,cAAc,CAAC,EAAE,OAAO,KACrB,OAAO,GAAG,SAAS,CAAC;CAC1B;AAED,eAAe,yBAAyB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertyRetrieverDelegate.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetrieverDelegate.ts"],"names":[],"mappings":""}
@@ -1,68 +0,0 @@
1
- import graphRegistry from './registry/GraphRegistry';
2
- import { Graph } from './Graph';
3
- import providedPropertiesStore from '../ProvidedPropertiesStore';
4
- import { CircularDependenciesDetector } from './CircularDependenciesDetector';
5
- import { Reflect } from '../utils/reflect';
6
-
7
- export default class PropertyRetriever {
8
- constructor (private graph: Graph) { }
9
-
10
- retrieve(
11
- property: string,
12
- receiver?: unknown,
13
- maybeDetector?: CircularDependenciesDetector,
14
- includePrivate: boolean = false,
15
- ): unknown | undefined {
16
- const mangledPropertyKey = providedPropertiesStore.getMangledProperty(this.graph, property);
17
- const circularDependenciesDetector = maybeDetector ?? new CircularDependenciesDetector(this.graph.name);
18
-
19
- if (
20
- mangledPropertyKey
21
- && mangledPropertyKey in this.graph
22
- && circularDependenciesDetector.visit(this.graph.name, property)
23
- ) {
24
- const proxiedGraph = new Proxy(this.graph, {
25
- get(graph: Graph, dependencyName: string) {
26
- return graph.retrieve(dependencyName, receiver, circularDependenciesDetector, true);
27
- },
28
- });
29
- const resolved = Reflect.get(this.graph, mangledPropertyKey, receiver)(proxiedGraph);
30
- circularDependenciesDetector.clear();
31
- return resolved;
32
- }
33
-
34
- if (circularDependenciesDetector.hasCircularDependencies()) {
35
- throw new Error(
36
- `Could not resolve ${circularDependenciesDetector.firstDependencyName}`
37
- + ` from ${circularDependenciesDetector.graphName} because of a circular dependency:`
38
- + ` ${circularDependenciesDetector.getDependencies().join(' -> ')}`,
39
- );
40
- }
41
-
42
- return this.getFromSubgraphs(property, circularDependenciesDetector, receiver, includePrivate);
43
- }
44
-
45
- private getFromSubgraphs(
46
- property: string,
47
- circularDependenciesDetector: CircularDependenciesDetector,
48
- receiver: unknown,
49
- includePrivate: boolean,
50
- ): unknown | undefined {
51
- // First search public subgraphs
52
- for (const subgraph of graphRegistry.getSubgraphs(this.graph)) {
53
- const result = subgraph.retrieve(property, receiver, circularDependenciesDetector, includePrivate);
54
- if (result) return result;
55
- }
56
-
57
- // If includePrivate is true, also search private subgraphs
58
- if (includePrivate) {
59
- for (const subgraph of graphRegistry.getPrivateSubgraphs(this.graph)) {
60
- const result = subgraph.retrieve(property, receiver, circularDependenciesDetector, includePrivate);
61
- if (result) return result;
62
- }
63
- }
64
-
65
- return undefined;
66
- }
67
- }
68
-
@@ -1,12 +0,0 @@
1
- import { CircularDependenciesDetector } from './CircularDependenciesDetector';
2
-
3
- interface PropertyRetrieverDelegate {
4
- retrieve: (
5
- property: string,
6
- receiver?: unknown,
7
- circularDependenciesDetector?: CircularDependenciesDetector,
8
- includePrivate?: boolean
9
- ) => unknown | undefined;
10
- }
11
-
12
- export default PropertyRetrieverDelegate;