react-obsidian 0.0.37 → 0.0.39
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.
- package/dist/src/graph/Graph.d.ts +1 -0
- package/dist/src/graph/Graph.d.ts.map +1 -1
- package/dist/src/graph/ObjectGraph.d.ts +1 -0
- package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
- package/dist/src/graph/ObjectGraph.js +2 -0
- package/dist/src/graph/ObjectGraph.js.map +1 -1
- package/dist/src/graph/PropertyRetriever.d.ts.map +1 -1
- package/dist/src/graph/PropertyRetriever.js +5 -1
- package/dist/src/graph/PropertyRetriever.js.map +1 -1
- package/dist/src/graph/UnresolvedDependencyExceptionFactory.d.ts +5 -0
- package/dist/src/graph/UnresolvedDependencyExceptionFactory.d.ts.map +1 -0
- package/dist/src/graph/UnresolvedDependencyExceptionFactory.js +14 -0
- package/dist/src/graph/UnresolvedDependencyExceptionFactory.js.map +1 -0
- package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -1
- package/dist/src/injectors/class/ClassInjector.js +2 -1
- package/dist/src/injectors/class/ClassInjector.js.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.js +1 -1
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
- package/dist/src/injectors/components/useGraph.d.ts +1 -1
- package/dist/src/injectors/components/useGraph.d.ts.map +1 -1
- package/dist/src/injectors/components/useGraph.js +6 -2
- package/dist/src/injectors/components/useGraph.js.map +1 -1
- package/dist/src/injectors/hooks/HookInjector.js +1 -1
- package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/test/fixtures/GraphWithOnBind.d.ts +7 -0
- package/dist/test/fixtures/GraphWithOnBind.d.ts.map +1 -0
- package/dist/test/fixtures/GraphWithOnBind.js +52 -0
- package/dist/test/fixtures/GraphWithOnBind.js.map +1 -0
- package/dist/test/fixtures/MissingDependencyGraph.d.ts +10 -0
- package/dist/test/fixtures/MissingDependencyGraph.d.ts.map +1 -0
- package/dist/test/fixtures/MissingDependencyGraph.js +59 -0
- package/dist/test/fixtures/MissingDependencyGraph.js.map +1 -0
- package/package.json +1 -1
- package/src/graph/Graph.ts +1 -0
- package/src/graph/ObjectGraph.ts +4 -0
- package/src/graph/PropertyRetriever.ts +4 -1
- package/src/graph/UnresolvedDependencyExceptionFactory.ts +8 -0
- package/src/injectors/class/ClassInjector.ts +2 -1
- package/src/injectors/components/ComponentInjector.tsx +1 -1
- package/src/injectors/components/useGraph.ts +6 -2
- package/src/injectors/hooks/HookInjector.ts +1 -1
- package/src/types/index.ts +1 -1
|
@@ -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;
|
|
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"}
|
|
@@ -6,6 +6,7 @@ export declare abstract class ObjectGraph<T = unknown> implements Graph {
|
|
|
6
6
|
get name(): string;
|
|
7
7
|
constructor(_props?: T | undefined);
|
|
8
8
|
retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
|
|
9
|
+
onBind(_target: any): void;
|
|
9
10
|
}
|
|
10
11
|
export declare function isGraph(object: Constructable<ObjectGraph> | any): object is Constructable<ObjectGraph>;
|
|
11
12
|
//# sourceMappingURL=ObjectGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;IAIlF,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"}
|
|
@@ -33,6 +33,8 @@ var ObjectGraph = /** @class */ (function () {
|
|
|
33
33
|
ObjectGraph.prototype.retrieve = function (property, receiver) {
|
|
34
34
|
return this.propertyRetriever.retrieve(property, receiver);
|
|
35
35
|
};
|
|
36
|
+
ObjectGraph.prototype.onBind = function (_target) {
|
|
37
|
+
};
|
|
36
38
|
__decorate([
|
|
37
39
|
(0, Memoize_1.default)(),
|
|
38
40
|
__metadata("design:type", String),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAGpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAPD,sBACI,6BAAI;aADR;YAEE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAGpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAPD,sBACI,6BAAI;aADR;YAEE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IAED,4BAAM,GAAN,UAAO,OAAY;IAEnB,CAAC;IAfD;QAAC,IAAA,iBAAO,GAAE;;;2CAGT;IAaH,kBAAC;CAAA,AAnBD,IAmBC;AAnBqB,kCAAW;AAqBjC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC;AAFD,0BAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyRetriever.d.ts","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyRetriever.d.ts","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACxB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEhC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAwBnE,OAAO,CAAC,gBAAgB;CAMzB"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var GraphRegistry_1 = __importDefault(require("./registry/GraphRegistry"));
|
|
7
7
|
var ProvidedPropertiesStore_1 = __importDefault(require("../ProvidedPropertiesStore"));
|
|
8
|
+
var UnresolvedDependencyExceptionFactory_1 = require("./UnresolvedDependencyExceptionFactory");
|
|
8
9
|
var PropertyRetriever = /** @class */ (function () {
|
|
9
10
|
function PropertyRetriever(graph) {
|
|
10
11
|
this.graph = graph;
|
|
@@ -26,7 +27,10 @@ var PropertyRetriever = /** @class */ (function () {
|
|
|
26
27
|
throw new Error("Multiple subgraphs provide the property ".concat(property, ".")
|
|
27
28
|
+ 'You should probably provide a unique name to one of the providers: @Provide({name: \'uniqueName\')})');
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
if (property.startsWith('_'))
|
|
31
|
+
return undefined;
|
|
32
|
+
var errorMessage = new UnresolvedDependencyExceptionFactory_1.UnresolvedDependencyExceptionFactory().generateErrorMessage(property, this.graph);
|
|
33
|
+
throw new Error(errorMessage);
|
|
30
34
|
};
|
|
31
35
|
PropertyRetriever.prototype.getFromSubgraphs = function (property, receiver) {
|
|
32
36
|
var subgraphs = GraphRegistry_1.default.getSubgraphs(this.graph);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AAAA,2EAAqD;AAErD,uFAAiE;
|
|
1
|
+
{"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AAAA,2EAAqD;AAErD,uFAAiE;AACjE,+FAA8F;AAE9F;IACE,2BAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAErC,oCAAQ,GAAR,UAAS,QAAgB,EAAE,QAAkB;QAC3C,IAAM,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,kBAAkB,IAAI,kBAAkB,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1D,IAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzC,GAAG,YAAC,KAAY,EAAE,cAAsB;oBACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;SAC5E;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,kDAA2C,QAAQ,MAAG;kBACpD,sGAAsG,CACzG,CAAC;SACH;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,IAAM,YAAY,GAAG,IAAI,2EAAoC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3G,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAEO,4CAAgB,GAAxB,UAAyB,QAAgB,EAAE,QAAiB;QAC1D,IAAM,SAAS,GAAG,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS;aACb,GAAG,CAAC,UAAC,QAAe,IAAK,OAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAArC,CAAqC,CAAC;aAC/D,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,KAAK,SAAS,EAApB,CAAoB,CAAC,CAAC;IAC9C,CAAC;IACH,wBAAC;AAAD,CAAC,AAjCD,IAiCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnresolvedDependencyExceptionFactory.d.ts","sourceRoot":"","sources":["../../../src/graph/UnresolvedDependencyExceptionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,oCAAoC;IAC/C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAIpD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnresolvedDependencyExceptionFactory = void 0;
|
|
4
|
+
var UnresolvedDependencyExceptionFactory = /** @class */ (function () {
|
|
5
|
+
function UnresolvedDependencyExceptionFactory() {
|
|
6
|
+
}
|
|
7
|
+
UnresolvedDependencyExceptionFactory.prototype.generateErrorMessage = function (property, graph) {
|
|
8
|
+
var graphName = graph.name;
|
|
9
|
+
return "Could not resolve dependency ".concat(property, " in ").concat(graphName);
|
|
10
|
+
};
|
|
11
|
+
return UnresolvedDependencyExceptionFactory;
|
|
12
|
+
}());
|
|
13
|
+
exports.UnresolvedDependencyExceptionFactory = UnresolvedDependencyExceptionFactory;
|
|
14
|
+
//# sourceMappingURL=UnresolvedDependencyExceptionFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnresolvedDependencyExceptionFactory.js","sourceRoot":"","sources":["../../../src/graph/UnresolvedDependencyExceptionFactory.ts"],"names":[],"mappings":";;;AAEA;IAAA;IAKA,CAAC;IAJC,mEAAoB,GAApB,UAAqB,QAAgB,EAAE,KAAY;QACjD,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAC7B,OAAO,uCAAgC,QAAQ,iBAAO,SAAS,CAAE,CAAC;IACpE,CAAC;IACH,2CAAC;AAAD,CAAC,AALD,IAKC;AALY,oFAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,YAChB,cAAc,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"ClassInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,YAChB,cAAc,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;CA+B3B"}
|
|
@@ -31,9 +31,10 @@ var ClassInjector = /** @class */ (function () {
|
|
|
31
31
|
function Handler() {
|
|
32
32
|
}
|
|
33
33
|
Handler.prototype.construct = function (target, args, newTarget) {
|
|
34
|
-
var graph = graphRegistry.resolve(Graph);
|
|
34
|
+
var graph = graphRegistry.resolve(Graph, args.length > 0 ? args[0] : undefined);
|
|
35
35
|
Reflect.defineMetadata(LateInjector_1.GRAPH_INSTANCE_NAME_KEY, graph.name, target);
|
|
36
36
|
var argsToInject = this.injectConstructorArgs(args, graph, target);
|
|
37
|
+
graph.onBind(target);
|
|
37
38
|
var createdObject = Reflect.construct(target, argsToInject, newTarget);
|
|
38
39
|
this.injectProperties(target, createdObject, graph);
|
|
39
40
|
return createdObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,0EAAoD;AACpD,+CAAyD;AAEzD;IACE,uBACU,aAA4B,EAC5B,iBAA8D;QAA9D,kCAAA,EAAA,wBAA2C,2BAAiB,EAAE;QAD9D,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAA6C;IACrE,CAAC;IAEJ,8BAAM,GAAN,UAAO,KAA2B;QAAlC,iBAIC;QAHC,OAAO,UAAC,MAA0B;YAChC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAI,CAAC,aAAa,EAAE,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC;IACJ,CAAC;IAEO,0CAAkB,GAA1B,UACE,KAA2B,EAC3B,aAA4B,EAC5B,iBAAoC;QAEpC,OAAO;YAAI;
|
|
1
|
+
{"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,0EAAoD;AACpD,+CAAyD;AAEzD;IACE,uBACU,aAA4B,EAC5B,iBAA8D;QAA9D,kCAAA,EAAA,wBAA2C,2BAAiB,EAAE;QAD9D,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAA6C;IACrE,CAAC;IAEJ,8BAAM,GAAN,UAAO,KAA2B;QAAlC,iBAIC;QAHC,OAAO,UAAC,MAA0B;YAChC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAI,CAAC,aAAa,EAAE,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC;IACJ,CAAC;IAEO,0CAAkB,GAA1B,UACE,KAA2B,EAC3B,aAA4B,EAC5B,iBAAoC;QAEpC,OAAO;YAAI;YAwBX,CAAC;YAvBC,2BAAS,GAAT,UAAU,MAAW,EAAE,IAAW,EAAE,SAAmB;gBACrD,IAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAClF,OAAO,CAAC,cAAc,CAAC,sCAAuB,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpE,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACrE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrB,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACzE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpD,OAAO,aAAa,CAAC;YACvB,CAAC;YAEO,uCAAqB,GAA7B,UAA8B,IAAW,EAAE,KAAY,EAAE,MAAW;gBAClE,IAAM,YAAY,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;gBAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACzC,OAAO,gCAAI,IAAI,SAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAE,GAAG,CAAC,UAAC,KAAK,EAAE,GAAG;oBACzF,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC;YAEO,kCAAgB,GAAxB,UAAyB,MAAW,EAAE,aAAkB,EAAE,KAAY;gBACpE,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;oBAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;YACH,cAAC;QAAD,CAAC,AAxBU,KAwBR,CAAC;IACN,CAAC;IACH,oBAAC;AAAD,CAAC,AA3CD,IA2CC"}
|
|
@@ -21,7 +21,7 @@ var ComponentInjector = /** @class */ (function () {
|
|
|
21
21
|
var Target = isMemoized ? InjectionCandidate.type : InjectionCandidate;
|
|
22
22
|
var compare = isMemoized ? InjectionCandidate.compare : undefined;
|
|
23
23
|
return (0, React_1.genericMemo)(function (passedProps) {
|
|
24
|
-
var graph = (0, useGraph_1.default)(Graph, passedProps);
|
|
24
|
+
var graph = (0, useGraph_1.default)(Graph, Target, passedProps);
|
|
25
25
|
var proxiedProps = new PropsInjector_1.default(graph).inject(passedProps);
|
|
26
26
|
return react_1.default.createElement(react_1.default.Fragment, null, Target(proxiedProps));
|
|
27
27
|
}, compare);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,gDAAiD;AACjD,oFAA2D;AAE3D,kEAA4C;AAC5C,wDAAkC;AAElC,2CAAqE;AAErE;IAAA;IAyBA,CAAC;IAxBC,kCAAM,GAAN,UACE,MAAkC,EAClC,KAAiC;QAEjC,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yCAAa,GAArB,UACE,kBAA8C,EAC9C,KAAiC;QAEjC,IAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,IAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,UAAC,WAAc;YAChC,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,KAAK,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,gDAAiD;AACjD,oFAA2D;AAE3D,kEAA4C;AAC5C,wDAAkC;AAElC,2CAAqE;AAErE;IAAA;IAyBA,CAAC;IAxBC,kCAAM,GAAN,UACE,MAAkC,EAClC,KAAiC;QAEjC,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yCAAa,GAArB,UACE,kBAA8C,EAC9C,KAAiC;QAEjC,IAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,IAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,UAAC,WAAc;YAChC,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACtD,IAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,8DAAG,MAAM,CAAC,YAA+C,CAAC,CAAI,CAAC;QACxE,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IACH,wBAAC;AAAD,CAAC,AAzBD,IAyBC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Constructable } from '../../types';
|
|
2
2
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
3
|
-
declare const _default: <P>(Graph: Constructable<ObjectGraph>, props?: Partial<P> | undefined) => ObjectGraph<unknown>;
|
|
3
|
+
declare const _default: <P>(Graph: Constructable<ObjectGraph>, target: any, props?: Partial<P> | undefined) => ObjectGraph<unknown>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=useGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;mCAI5B,cAAc,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;mCAI5B,cAAc,WAAW,CAAC,UAAU,GAAG;AAAjE,wBAWE"}
|
|
@@ -6,8 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
var react_1 = require("react");
|
|
7
7
|
var GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
8
|
var ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
|
|
9
|
-
exports.default = (function (Graph, props) {
|
|
10
|
-
var graph = (0, react_1.useState)(
|
|
9
|
+
exports.default = (function (Graph, target, props) {
|
|
10
|
+
var graph = (0, react_1.useState)(function () {
|
|
11
|
+
var resolveGraph = GraphRegistry_1.default.resolve(Graph, props);
|
|
12
|
+
resolveGraph.onBind(target);
|
|
13
|
+
return resolveGraph;
|
|
14
|
+
})[0];
|
|
11
15
|
(0, react_1.useEffect)(function () {
|
|
12
16
|
ReferenceCounter_1.default.retain(graph);
|
|
13
17
|
return function () { return ReferenceCounter_1.default.release(graph, function (g) { return GraphRegistry_1.default.clear(g); }); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,+BAA4C;AAG5C,qFAA+D;AAC/D,4EAAsD;AAEtD,mBAAe,UAAI,KAAiC,EAAE,KAAkB;
|
|
1
|
+
{"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,+BAA4C;AAG5C,qFAA+D;AAC/D,4EAAsD;AAEtD,mBAAe,UAAI,KAAiC,EAAE,MAAW,EAAE,KAAkB;IAC5E,IAAA,KAAK,GAAI,IAAA,gBAAQ,EAAC;QACvB,IAAM,YAAY,GAAG,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,GAJU,CAIT;IACH,IAAA,iBAAS,EAAC;QACR,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,cAAM,OAAA,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,EAAC"}
|
|
@@ -9,7 +9,7 @@ var HookInjector = /** @class */ (function () {
|
|
|
9
9
|
}
|
|
10
10
|
HookInjector.prototype.inject = function (hook, Graph) {
|
|
11
11
|
return function (args) {
|
|
12
|
-
var graph = (0, useGraph_1.default)(Graph, args);
|
|
12
|
+
var graph = (0, useGraph_1.default)(Graph, hook, args);
|
|
13
13
|
return hook(new Proxy(args !== null && args !== void 0 ? args : {}, new Injector(graph)));
|
|
14
14
|
};
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,oEAA8C;AAG9C;IAAA;IAUA,CAAC;IATC,6BAAM,GAAN,UACE,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,UAAC,IAAoB;YAC1B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,oEAA8C;AAG9C;IAAA;IAUA,CAAC;IATC,6BAAM,GAAN,UACE,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,UAAC,IAAoB;YAC1B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;;AAED;IACE,kBAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,sBAAG,GAAH,UAAI,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IACH,eAAC;AAAD,CAAC,AAND,IAMC"}
|
|
@@ -8,7 +8,7 @@ export type Constructor = {
|
|
|
8
8
|
export type ServiceLocator<Clazz> = {
|
|
9
9
|
[Key in keyof Clazz]: () => Clazz[Key] extends (...args: any[]) => infer R ? R : never;
|
|
10
10
|
};
|
|
11
|
-
export type GraphInternals = 'retrieve' | 'name' | 'scope';
|
|
11
|
+
export type GraphInternals = 'retrieve' | 'name' | 'scope' | 'onBind';
|
|
12
12
|
export type DependenciesOf<G, Dependencies extends keyof DependenciesOf<G> = never> = Partial<Dependencies> extends never ? DependenciesOfInternal<G> : Pick<DependenciesOfInternal<G>, Dependencies>;
|
|
13
13
|
type DependenciesOfInternal<G> = G extends Graph ? DependenciesOf1<G> : G extends any[] ? DependenciesOfN<G> : never;
|
|
14
14
|
type DependenciesOfN<Graphs extends any[]> = Graphs extends [infer G, ...infer R] ? DependenciesOf1<G> & DependenciesOfN<R> : unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI;KACjC,GAAG,IAAI,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI;KACjC,GAAG,IAAI,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,YAAY,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,IAChF,OAAO,CAAC,YAAY,CAAC,SAAS,KAAK,GACjC,sBAAsB,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAElD,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAC9C,eAAe,CAAC,CAAC,CAAC,GAClB,CAAC,SAAS,GAAG,EAAE,GACb,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK,CAAC;AAEV,KAAK,eAAe,CAAC,MAAM,SAAS,GAAG,EAAE,IACvC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAClC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC;AAEZ,KAAK,eAAe,CAAC,KAAK,IAAI;KAC3B,GAAG,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphWithOnBind.d.ts","sourceRoot":"","sources":["../../../test/fixtures/GraphWithOnBind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAY,MAAM,WAAW,CAAC;AAEzD,qBACa,eAAgB,SAAQ,WAAW;IAC9C,OAAO,CAAC,MAAM,CAAO;IAEZ,MAAM,CAAC,MAAM,EAAE,GAAG;IAK3B,UAAU,IAAI,MAAM;CAGrB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.GraphWithOnBind = void 0;
|
|
28
|
+
var src_1 = require("../../src");
|
|
29
|
+
var GraphWithOnBind = /** @class */ (function (_super) {
|
|
30
|
+
__extends(GraphWithOnBind, _super);
|
|
31
|
+
function GraphWithOnBind() {
|
|
32
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
33
|
+
}
|
|
34
|
+
GraphWithOnBind.prototype.onBind = function (target) {
|
|
35
|
+
this.target = target;
|
|
36
|
+
};
|
|
37
|
+
GraphWithOnBind.prototype.targetName = function () {
|
|
38
|
+
return this.target.name;
|
|
39
|
+
};
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, src_1.Provides)(),
|
|
42
|
+
__metadata("design:type", Function),
|
|
43
|
+
__metadata("design:paramtypes", []),
|
|
44
|
+
__metadata("design:returntype", String)
|
|
45
|
+
], GraphWithOnBind.prototype, "targetName", null);
|
|
46
|
+
GraphWithOnBind = __decorate([
|
|
47
|
+
(0, src_1.Graph)()
|
|
48
|
+
], GraphWithOnBind);
|
|
49
|
+
return GraphWithOnBind;
|
|
50
|
+
}(src_1.ObjectGraph));
|
|
51
|
+
exports.GraphWithOnBind = GraphWithOnBind;
|
|
52
|
+
//# sourceMappingURL=GraphWithOnBind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphWithOnBind.js","sourceRoot":"","sources":["../../../test/fixtures/GraphWithOnBind.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyD;AAGzD;IAAqC,mCAAW;IAAhD;;IAWA,CAAC;IARU,gCAAM,GAAf,UAAgB,MAAW;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAGD,oCAAU,GADV;QAEE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAHD;QAAC,IAAA,cAAQ,GAAE;;;;qDAGV;IAVU,eAAe;QAD3B,IAAA,WAAK,GAAE;OACK,eAAe,CAW3B;IAAD,sBAAC;CAAA,AAXD,CAAqC,iBAAW,GAW/C;AAXY,0CAAe"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ObjectGraph } from '../../src';
|
|
2
|
+
export default class MissingDependencyClass {
|
|
3
|
+
private theString;
|
|
4
|
+
constructor(theString: string);
|
|
5
|
+
get(): string;
|
|
6
|
+
}
|
|
7
|
+
export declare class MissingDependencyGraph extends ObjectGraph {
|
|
8
|
+
missingDependencyObject(aString: string): MissingDependencyClass;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=MissingDependencyGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MissingDependencyGraph.d.ts","sourceRoot":"","sources":["../../../test/fixtures/MissingDependencyGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAY,MAAM,WAAW,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAC7B,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IACrC,GAAG,IAAI,MAAM;CAGd;AAED,qBACa,sBAAuB,SAAQ,WAAW;IAErD,uBAAuB,CAAC,OAAO,EAAE,MAAM;CAGxC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.MissingDependencyGraph = void 0;
|
|
28
|
+
var src_1 = require("../../src");
|
|
29
|
+
var MissingDependencyClass = /** @class */ (function () {
|
|
30
|
+
function MissingDependencyClass(theString) {
|
|
31
|
+
this.theString = theString;
|
|
32
|
+
}
|
|
33
|
+
MissingDependencyClass.prototype.get = function () {
|
|
34
|
+
return this.theString;
|
|
35
|
+
};
|
|
36
|
+
return MissingDependencyClass;
|
|
37
|
+
}());
|
|
38
|
+
exports.default = MissingDependencyClass;
|
|
39
|
+
var MissingDependencyGraph = /** @class */ (function (_super) {
|
|
40
|
+
__extends(MissingDependencyGraph, _super);
|
|
41
|
+
function MissingDependencyGraph() {
|
|
42
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
43
|
+
}
|
|
44
|
+
MissingDependencyGraph.prototype.missingDependencyObject = function (aString) {
|
|
45
|
+
return new MissingDependencyClass(aString);
|
|
46
|
+
};
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, src_1.Provides)(),
|
|
49
|
+
__metadata("design:type", Function),
|
|
50
|
+
__metadata("design:paramtypes", [String]),
|
|
51
|
+
__metadata("design:returntype", void 0)
|
|
52
|
+
], MissingDependencyGraph.prototype, "missingDependencyObject", null);
|
|
53
|
+
MissingDependencyGraph = __decorate([
|
|
54
|
+
(0, src_1.Graph)()
|
|
55
|
+
], MissingDependencyGraph);
|
|
56
|
+
return MissingDependencyGraph;
|
|
57
|
+
}(src_1.ObjectGraph));
|
|
58
|
+
exports.MissingDependencyGraph = MissingDependencyGraph;
|
|
59
|
+
//# sourceMappingURL=MissingDependencyGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MissingDependencyGraph.js","sourceRoot":"","sources":["../../../test/fixtures/MissingDependencyGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyD;AAEzD;IACE,gCAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAI,CAAC;IAC1C,oCAAG,GAAH;QACE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACH,6BAAC;AAAD,CAAC,AALD,IAKC;;AAGD;IAA4C,0CAAW;IAAvD;;IAKA,CAAC;IAHC,wDAAuB,GADvB,UACwB,OAAe;QACrC,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAHD;QAAC,IAAA,cAAQ,GAAE;;;;yEAGV;IAJU,sBAAsB;QADlC,IAAA,WAAK,GAAE;OACK,sBAAsB,CAKlC;IAAD,6BAAC;CAAA,AALD,CAA4C,iBAAW,GAKtD;AALY,wDAAsB"}
|
package/package.json
CHANGED
package/src/graph/Graph.ts
CHANGED
package/src/graph/ObjectGraph.ts
CHANGED
|
@@ -20,6 +20,10 @@ export abstract class ObjectGraph<T = unknown> implements Graph {
|
|
|
20
20
|
retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined {
|
|
21
21
|
return this.propertyRetriever.retrieve(property, receiver) as Dependency | undefined;
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
onBind(_target: any) {
|
|
25
|
+
|
|
26
|
+
}
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import graphRegistry from './registry/GraphRegistry';
|
|
2
2
|
import { Graph } from './Graph';
|
|
3
3
|
import providedPropertiesStore from '../ProvidedPropertiesStore';
|
|
4
|
+
import { UnresolvedDependencyExceptionFactory } from './UnresolvedDependencyExceptionFactory';
|
|
4
5
|
|
|
5
6
|
export default class PropertyRetriever {
|
|
6
7
|
constructor(private graph: Graph) { }
|
|
@@ -24,7 +25,9 @@ export default class PropertyRetriever {
|
|
|
24
25
|
+ 'You should probably provide a unique name to one of the providers: @Provide({name: \'uniqueName\')})',
|
|
25
26
|
);
|
|
26
27
|
}
|
|
27
|
-
return undefined;
|
|
28
|
+
if (property.startsWith('_')) return undefined;
|
|
29
|
+
const errorMessage = new UnresolvedDependencyExceptionFactory().generateErrorMessage(property, this.graph);
|
|
30
|
+
throw new Error(errorMessage);
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
private getFromSubgraphs(property: string, receiver: unknown): unknown[] {
|
|
@@ -23,9 +23,10 @@ export default class ClassInjector {
|
|
|
23
23
|
): ProxyHandler<any> {
|
|
24
24
|
return new class Handler implements ProxyHandler<any> {
|
|
25
25
|
construct(target: any, args: any[], newTarget: Function): any {
|
|
26
|
-
const graph = graphRegistry.resolve(Graph);
|
|
26
|
+
const graph = graphRegistry.resolve(Graph, args.length > 0 ? args[0] : undefined);
|
|
27
27
|
Reflect.defineMetadata(GRAPH_INSTANCE_NAME_KEY, graph.name, target);
|
|
28
28
|
const argsToInject = this.injectConstructorArgs(args, graph, target);
|
|
29
|
+
graph.onBind(target);
|
|
29
30
|
const createdObject = Reflect.construct(target, argsToInject, newTarget);
|
|
30
31
|
this.injectProperties(target, createdObject, graph);
|
|
31
32
|
return createdObject;
|
|
@@ -25,7 +25,7 @@ export default class ComponentInjector {
|
|
|
25
25
|
const compare = isMemoized ? InjectionCandidate.compare : undefined;
|
|
26
26
|
|
|
27
27
|
return genericMemo((passedProps: P) => {
|
|
28
|
-
const graph = useGraph<P>(Graph, passedProps);
|
|
28
|
+
const graph = useGraph<P>(Graph, Target, passedProps);
|
|
29
29
|
const proxiedProps = new PropsInjector(graph).inject(passedProps);
|
|
30
30
|
|
|
31
31
|
return <>{Target(proxiedProps as unknown as PropsWithChildren<P>)}</>;
|
|
@@ -4,8 +4,12 @@ import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
|
4
4
|
import graphRegistry from '../../graph/registry/GraphRegistry';
|
|
5
5
|
import referenceCounter from '../../ReferenceCounter';
|
|
6
6
|
|
|
7
|
-
export default <P>(Graph: Constructable<ObjectGraph>, props?: Partial<P>) => {
|
|
8
|
-
const [graph] = useState(
|
|
7
|
+
export default <P>(Graph: Constructable<ObjectGraph>, target: any, props?: Partial<P>) => {
|
|
8
|
+
const [graph] = useState(() => {
|
|
9
|
+
const resolveGraph = graphRegistry.resolve(Graph, props);
|
|
10
|
+
resolveGraph.onBind(target);
|
|
11
|
+
return resolveGraph;
|
|
12
|
+
});
|
|
9
13
|
useEffect(() => {
|
|
10
14
|
referenceCounter.retain(graph);
|
|
11
15
|
return () => referenceCounter.release(graph, (g) => graphRegistry.clear(g));
|
|
@@ -9,7 +9,7 @@ export default class HookInjector {
|
|
|
9
9
|
Graph: Constructable<ObjectGraph>,
|
|
10
10
|
): (args?: Partial<Args>) => Result {
|
|
11
11
|
return (args?: Partial<Args>): Result => {
|
|
12
|
-
const graph = useGraph(Graph, args);
|
|
12
|
+
const graph = useGraph(Graph, hook, args);
|
|
13
13
|
return hook(new Proxy(args ?? {}, new Injector(graph)));
|
|
14
14
|
};
|
|
15
15
|
}
|
package/src/types/index.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type ServiceLocator<Clazz> = {
|
|
|
10
10
|
[Key in keyof Clazz]: () => Clazz[Key] extends (...args: any[]) => infer R ? R : never;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
export type GraphInternals = 'retrieve' | 'name' | 'scope';
|
|
13
|
+
export type GraphInternals = 'retrieve' | 'name' | 'scope' | 'onBind';
|
|
14
14
|
|
|
15
15
|
export type DependenciesOf<G, Dependencies extends keyof DependenciesOf<G> = never> =
|
|
16
16
|
Partial<Dependencies> extends never ?
|