react-obsidian 3.0.0-alpha.6 → 3.0.0-alpha.7
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/Obsidian.d.ts +4 -3
- package/dist/src/Obsidian.d.ts.map +1 -1
- package/dist/src/Obsidian.js +7 -4
- package/dist/src/Obsidian.js.map +1 -1
- package/dist/src/decorators/LifecycleBound.d.ts +1 -1
- package/dist/src/decorators/LifecycleBound.d.ts.map +1 -1
- package/dist/src/decorators/inject/Inject.d.ts.map +1 -1
- package/dist/src/decorators/inject/Inject.js.map +1 -1
- package/dist/src/decorators/inject/Injectable.d.ts +1 -1
- package/dist/src/decorators/inject/Injectable.d.ts.map +1 -1
- package/dist/src/decorators/inject/Injectable.js +2 -2
- package/dist/src/decorators/inject/Injectable.js.map +1 -1
- package/dist/src/graph/ObjectGraph.d.ts +1 -1
- package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
- package/dist/src/graph/ObjectGraph.js +9 -2
- package/dist/src/graph/ObjectGraph.js.map +1 -1
- package/dist/src/graph/ServiceLocatorFactory.d.ts +1 -1
- package/dist/src/graph/ServiceLocatorFactory.d.ts.map +1 -1
- package/dist/src/graph/ServiceLocatorFactory.js +2 -2
- package/dist/src/graph/ServiceLocatorFactory.js.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.d.ts +15 -2
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.js +107 -10
- package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
- package/dist/src/injectors/class/ClassInjector.d.ts +1 -1
- package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -1
- package/dist/src/injectors/class/ClassInjector.js +5 -14
- package/dist/src/injectors/class/ClassInjector.js.map +1 -1
- package/dist/src/injectors/class/LateInjector.d.ts +2 -1
- package/dist/src/injectors/class/LateInjector.d.ts.map +1 -1
- package/dist/src/injectors/class/LateInjector.js +13 -4
- package/dist/src/injectors/class/LateInjector.js.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.d.ts +1 -1
- package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.js +5 -5
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
- package/dist/src/injectors/components/InjectComponent.d.ts +1 -1
- package/dist/src/injectors/components/InjectComponent.d.ts.map +1 -1
- package/dist/src/injectors/components/InjectComponent.js +6 -5
- package/dist/src/injectors/components/InjectComponent.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 +2 -2
- package/dist/src/injectors/components/useGraph.js.map +1 -1
- package/dist/src/injectors/components/useInjectionToken.d.ts +1 -1
- package/dist/src/injectors/components/useInjectionToken.d.ts.map +1 -1
- package/dist/src/injectors/components/useInjectionToken.js +5 -2
- package/dist/src/injectors/components/useInjectionToken.js.map +1 -1
- package/dist/src/injectors/hooks/HookInjector.d.ts +1 -1
- package/dist/src/injectors/hooks/HookInjector.d.ts.map +1 -1
- package/dist/src/injectors/hooks/HookInjector.js +2 -2
- package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
- package/dist/src/injectors/hooks/InjectHook.d.ts +2 -2
- package/dist/src/injectors/hooks/InjectHook.d.ts.map +1 -1
- package/dist/src/injectors/hooks/InjectHook.js +4 -4
- package/dist/src/injectors/hooks/InjectHook.js.map +1 -1
- package/dist/src/utils/isString.d.ts +2 -0
- package/dist/src/utils/isString.d.ts.map +1 -0
- package/dist/src/utils/isString.js +7 -0
- package/dist/src/utils/isString.js.map +1 -0
- package/dist/src/utils/reflect.d.ts +1 -0
- package/dist/src/utils/reflect.d.ts.map +1 -1
- package/dist/src/utils/reflect.js +12 -1
- package/dist/src/utils/reflect.js.map +1 -1
- package/dist/test/fixtures/LifecycleBoundGraph.js +3 -3
- package/dist/test/fixtures/LifecycleBoundGraph.js.map +1 -1
- package/eslint.config.mjs +2 -1
- package/package.json +13 -10
- package/src/Obsidian.ts +10 -6
- package/src/decorators/LifecycleBound.ts +1 -1
- package/src/decorators/inject/Inject.ts +1 -4
- package/src/decorators/inject/Injectable.ts +2 -2
- package/src/graph/ObjectGraph.ts +10 -2
- package/src/graph/ServiceLocatorFactory.ts +2 -2
- package/src/graph/registry/GraphRegistry.ts +119 -10
- package/src/injectors/class/ClassInjector.ts +6 -14
- package/src/injectors/class/LateInjector.ts +10 -3
- package/src/injectors/components/ComponentInjector.tsx +5 -5
- package/src/injectors/components/InjectComponent.ts +6 -5
- package/src/injectors/components/useGraph.ts +2 -2
- package/src/injectors/components/useInjectionToken.ts +5 -2
- package/src/injectors/hooks/HookInjector.ts +2 -2
- package/src/injectors/hooks/InjectHook.ts +4 -4
- package/src/utils/isString.ts +3 -0
- package/src/utils/reflect.ts +14 -1
package/dist/src/Obsidian.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ObjectGraph } from './graph/ObjectGraph';
|
|
2
|
-
import { GraphInternals, ServiceLocator } from './types';
|
|
2
|
+
import { GraphInternals, ServiceLocator, type Constructable } from './types';
|
|
3
3
|
import { GraphMiddleware } from './graph/registry/GraphMiddleware';
|
|
4
4
|
export default class Obsidian {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
registerGraph(key: string, generator: () => Constructable<ObjectGraph>): void;
|
|
6
|
+
obtain<T extends ObjectGraph<P>, P = unknown>(keyOrGraph: string | (new (...args: P[]) => T), props?: P): ServiceLocator<Omit<T, GraphInternals>>;
|
|
7
|
+
inject<T extends object>(target: T, keyOrGraph?: string | ObjectGraph): object;
|
|
7
8
|
addGraphMiddleware(middleware: GraphMiddleware): void;
|
|
8
9
|
clearGraphMiddlewares(): void;
|
|
9
10
|
clearGraphs(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obsidian.d.ts","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Obsidian.d.ts","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,WAAW,CAAC;IAItE,MAAM,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,EAC1C,UAAU,EAAE,MAAM,GAAG,CAAC,KAAI,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAC7C,KAAK,CAAC,EAAE,CAAC,GACR,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAI1C,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW;IAIrE,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;IAIrB,WAAW;CAIZ"}
|
package/dist/src/Obsidian.js
CHANGED
|
@@ -7,11 +7,14 @@ const GraphRegistry_1 = __importDefault(require("./graph/registry/GraphRegistry"
|
|
|
7
7
|
const LateInjector_1 = __importDefault(require("./injectors/class/LateInjector"));
|
|
8
8
|
const ServiceLocatorFactory_1 = __importDefault(require("./graph/ServiceLocatorFactory"));
|
|
9
9
|
class Obsidian {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
registerGraph(key, generator) {
|
|
11
|
+
GraphRegistry_1.default.registerGraphGenerator(key, generator);
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
return
|
|
13
|
+
obtain(keyOrGraph, props) {
|
|
14
|
+
return ServiceLocatorFactory_1.default.fromGraph(keyOrGraph, props);
|
|
15
|
+
}
|
|
16
|
+
inject(target, keyOrGraph) {
|
|
17
|
+
return LateInjector_1.default.inject(target, keyOrGraph);
|
|
15
18
|
}
|
|
16
19
|
addGraphMiddleware(middleware) {
|
|
17
20
|
GraphRegistry_1.default.addGraphMiddleware(middleware);
|
package/dist/src/Obsidian.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,mFAA2D;AAI3D,kFAA0D;AAC1D,0FAAkE;AAElE,MAAqB,QAAQ;IAC3B,MAAM,CACJ,
|
|
1
|
+
{"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,mFAA2D;AAI3D,kFAA0D;AAC1D,0FAAkE;AAElE,MAAqB,QAAQ;IAC3B,aAAa,CAAC,GAAW,EAAE,SAA2C;QACpE,uBAAa,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CACJ,UAA6C,EAC7C,KAAS;QAET,OAAO,+BAAqB,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAmB,MAAS,EAAE,UAAiC;QACnE,OAAO,sBAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,kBAAkB,CAAC,UAA2B;QAC5C,uBAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,qBAAqB;QACnB,uBAAa,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW;QACT,uBAAa,CAAC,qBAAqB,EAAE,CAAC;QACtC,uBAAa,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACF;AA5BD,2BA4BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifecycleBound.d.ts","sourceRoot":"","sources":["../../../src/decorators/LifecycleBound.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG;IACb,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"LifecycleBound.d.ts","sourceRoot":"","sources":["../../../src/decorators/LifecycleBound.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG;IACb,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,iBACzB,GAAG,SAKzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inject.d.ts","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Inject.d.ts","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,aAC/B,SAAS,WAAW,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,YAMpD,IAAI,SAAS,MAAM,YAI7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":";;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":";;;;;AAEA,wBAWC;AAbD,gGAAwE;AAExE,SAAgB,MAAM,CAAe,IAAa;IAChD,OAAO,CAAC,OAAkB,EAAE,OAAiD,EAAE,EAAE;QAC/E,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,2BAAiB,EAAE,CAAC;YACzC,QAAQ,CAAC,oBAAoB,CAAE,IAAe,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,OAAO,UAAsB,KAAa;YACxC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Constructable } from '../../types';
|
|
2
2
|
import { Graph } from '../../graph/Graph';
|
|
3
|
-
export declare function injectable(
|
|
3
|
+
export declare function injectable(keyOrGraph: string | Constructable<Graph>): any;
|
|
4
4
|
//# sourceMappingURL=Injectable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Injectable.d.ts","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,wBAAgB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"Injectable.d.ts","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAEzE"}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.injectable = injectable;
|
|
7
7
|
const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
8
|
const ClassInjector_1 = __importDefault(require("../../injectors/class/ClassInjector"));
|
|
9
|
-
function injectable(
|
|
10
|
-
return new ClassInjector_1.default(GraphRegistry_1.default).inject(
|
|
9
|
+
function injectable(keyOrGraph) {
|
|
10
|
+
return new ClassInjector_1.default(GraphRegistry_1.default).inject(keyOrGraph);
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=Injectable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":";;;;;AAKA,gCAEC;AALD,uFAA+D;AAC/D,wFAAgE;AAEhE,SAAgB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":";;;;;AAKA,gCAEC;AALD,uFAA+D;AAC/D,wFAAgE;AAEhE,SAAgB,UAAU,CAAC,UAAyC;IAClE,OAAO,IAAI,uBAAa,CAAC,uBAAa,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { CircularDependenciesDetector } from './CircularDependenciesDetector';
|
|
|
4
4
|
export declare abstract class ObjectGraph<T = unknown> implements Graph {
|
|
5
5
|
protected _props?: T | undefined;
|
|
6
6
|
private propertyRetriever;
|
|
7
|
-
|
|
7
|
+
get name(): string;
|
|
8
8
|
constructor(_props?: T | undefined);
|
|
9
9
|
retrieve<Dependency>(property: string, receiver?: unknown, detector?: CircularDependenciesDetector): Dependency | undefined;
|
|
10
10
|
onBind(_target: any): void;
|
|
@@ -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;
|
|
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;AAG9E,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAYjD,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAXhC,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IAAI,IAAI,IAAI,MAAM,CAOjB;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;IAIzB,MAAM,CAAC,OAAO,EAAE,GAAG;CACpB;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEzE"}
|
|
@@ -8,14 +8,21 @@ exports.isGraph = isGraph;
|
|
|
8
8
|
const uniqueId_1 = require("../utils/uniqueId");
|
|
9
9
|
const ProviderBinder_1 = require("./ProviderBinder");
|
|
10
10
|
const PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
|
|
11
|
+
const reflect_1 = require("../utils/reflect");
|
|
11
12
|
class ObjectGraph {
|
|
12
13
|
_props;
|
|
13
14
|
propertyRetriever = new PropertyRetriever_1.default(this);
|
|
14
|
-
name
|
|
15
|
+
get name() {
|
|
16
|
+
if ((0, reflect_1.hasMetadata)(this.constructor, 'memoizedName')) {
|
|
17
|
+
return (0, reflect_1.getMetadata)(this.constructor, 'memoizedName');
|
|
18
|
+
}
|
|
19
|
+
const name = (0, uniqueId_1.uniqueId)(this.constructor.name);
|
|
20
|
+
(0, reflect_1.defineMetadata)(this.constructor, 'memoizedName', name);
|
|
21
|
+
return name;
|
|
22
|
+
}
|
|
15
23
|
constructor(_props) {
|
|
16
24
|
this._props = _props;
|
|
17
25
|
(0, ProviderBinder_1.bindProviders)(this);
|
|
18
|
-
this.name = (0, uniqueId_1.uniqueId)(this.constructor.name);
|
|
19
26
|
}
|
|
20
27
|
retrieve(property, receiver, detector) {
|
|
21
28
|
return this.propertyRetriever.retrieve(property, receiver, detector);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;AAqCA,0BAEC;AAvCD,gDAA6C;AAC7C,qDAAiD;AAEjD,4EAAoD;AAGpD,8CAA4E;AAE5E,MAAsB,WAAW;IAYT;IAXd,iBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,IAAI;QACN,IAAI,IAAA,qBAAW,EAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC;YAClD,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAA,wBAAc,EAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAC9B,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,QAAkB,EAClB,QAAuC;QAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACjG,CAAC;IAED,MAAM,CAAC,OAAY,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;CACjC;AAzBD,kCAyBC;AAED,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAW;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ObjectGraph } from './ObjectGraph';
|
|
2
2
|
import { Constructable, ServiceLocator as ServiceLocatorType } from '../types';
|
|
3
3
|
export default class ServiceLocatorFactory {
|
|
4
|
-
static fromGraph<T extends ObjectGraph<P>, P = any>(
|
|
4
|
+
static fromGraph<T extends ObjectGraph<P>, P = any>(keyOrGraph: string | Constructable<T>, props?: P): ServiceLocatorType<T>;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=ServiceLocatorFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocatorFactory.d.ts","sourceRoot":"","sources":["../../../src/graph/ServiceLocatorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/E,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceLocatorFactory.d.ts","sourceRoot":"","sources":["../../../src/graph/ServiceLocatorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/E,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAOrE,kBAAkB,CAAC,CAAC,CAAC;CAErD"}
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const GraphRegistry_1 = __importDefault(require("./registry/GraphRegistry"));
|
|
7
7
|
class ServiceLocatorFactory {
|
|
8
|
-
static fromGraph(
|
|
9
|
-
const resolved = GraphRegistry_1.default.resolve(
|
|
8
|
+
static fromGraph(keyOrGraph, props) {
|
|
9
|
+
const resolved = GraphRegistry_1.default.resolve(keyOrGraph, 'serviceLocator', props);
|
|
10
10
|
const wrapped = new Proxy(resolved, {
|
|
11
11
|
get(_target, property, receiver) {
|
|
12
12
|
return () => resolved.retrieve(property, receiver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocatorFactory.js","sourceRoot":"","sources":["../../../src/graph/ServiceLocatorFactory.ts"],"names":[],"mappings":";;;;;AAEA,6EAAqD;AAErD,MAAqB,qBAAqB;IACxC,MAAM,CAAC,SAAS,CAAoC,
|
|
1
|
+
{"version":3,"file":"ServiceLocatorFactory.js","sourceRoot":"","sources":["../../../src/graph/ServiceLocatorFactory.ts"],"names":[],"mappings":";;;;;AAEA,6EAAqD;AAErD,MAAqB,qBAAqB;IACxC,MAAM,CAAC,SAAS,CAAoC,UAAqC,EAAE,KAAS;QAClG,MAAM,QAAQ,GAAG,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClC,GAAG,CAAC,OAAY,EAAE,QAAgB,EAAE,QAAa;gBAC/C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC;SACF,CAAC,CAAC;QACH,OAAO,OAA2C,CAAC;IACrD,CAAC;CACF;AAVD,wCAUC"}
|
|
@@ -9,11 +9,20 @@ export declare class GraphRegistry {
|
|
|
9
9
|
private readonly nameToInstance;
|
|
10
10
|
private readonly graphToSubgraphs;
|
|
11
11
|
private readonly graphMiddlewares;
|
|
12
|
+
private readonly keyToGenerator;
|
|
13
|
+
private readonly keyToGraph;
|
|
14
|
+
private readonly onClearListeners;
|
|
12
15
|
register(constructor: Constructable<Graph>, subgraphs?: Constructable<Graph>[]): void;
|
|
13
|
-
|
|
16
|
+
registerGraphGenerator(key: string, generator: () => Constructable<Graph>): void;
|
|
17
|
+
ensureRegistered(keyOrGraph: string | Graph): void;
|
|
18
|
+
isInstantiated(G: Constructable<Graph>): boolean;
|
|
14
19
|
getSubgraphs(graph: Graph): Graph[];
|
|
15
20
|
getGraphInstance(name: string): Graph;
|
|
16
|
-
resolve<T extends Graph>(
|
|
21
|
+
resolve<T extends Graph>(keyOrGraph: string | Constructable<T>, source?: 'lifecycleOwner' | 'classInjection' | 'serviceLocator', props?: any, injectionToken?: string): T;
|
|
22
|
+
private instantiateCustomScopedSubgraphs;
|
|
23
|
+
private assertInstantiatingCustomScopedSubgraphFromSameScope;
|
|
24
|
+
private getSubgraphsConstructors;
|
|
25
|
+
private getGraphConstructorByKey;
|
|
17
26
|
private has;
|
|
18
27
|
private getFirst;
|
|
19
28
|
private getByInjectionToken;
|
|
@@ -21,8 +30,12 @@ export declare class GraphRegistry {
|
|
|
21
30
|
private isSingleton;
|
|
22
31
|
private isBoundToReactLifecycle;
|
|
23
32
|
private isComponentScopedLifecycleBound;
|
|
33
|
+
private isCustomScopedLifecycleBound;
|
|
24
34
|
clearGraphAfterItWasMockedInTests(graphName: string): void;
|
|
25
35
|
clear(graph: Graph): void;
|
|
36
|
+
private registerOnClearListener;
|
|
37
|
+
private invokeOnClearListeners;
|
|
38
|
+
private clearGraphsRegisteredByKey;
|
|
26
39
|
addGraphMiddleware(middleware: Middleware<Graph>): void;
|
|
27
40
|
clearGraphMiddlewares(): void;
|
|
28
41
|
clearAll(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4B;IACrE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4B;IACrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiD;IAChF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IACtE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;IAEtE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC;IAKzE,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK;IAOpC,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO;IAIvD,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIrC,OAAO,CAAC,CAAC,SAAS,KAAK,EACrB,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EACrC,MAAM,GAAE,gBAAgB,GAAG,gBAAgB,GAAG,gBAAmC,EACjF,KAAK,GAAE,GAAe,EACtB,cAAc,CAAC,EAAE,MAAM,GACtB,CAAC;IAkBJ,OAAO,CAAC,gCAAgC;IAmBxC,OAAO,CAAC,oDAAoD;IAe5D,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,GAAG;IAaX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,GAAG;IAYX,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,4BAA4B;IAKpC,iCAAiC,CAAC,SAAS,EAAE,MAAM;IAsBnD,KAAK,CAAC,KAAK,EAAE,KAAK;IAgBlB,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,0BAA0B;IAUlC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,qBAAqB;IAIrB,QAAQ;CAST;wBAI4C,aAAa;AAA1D,wBAA2D"}
|
|
@@ -8,6 +8,8 @@ const GraphMiddlewareChain_1 = __importDefault(require("./GraphMiddlewareChain")
|
|
|
8
8
|
const ObtainLifecycleBoundGraphException_1 = require("./ObtainLifecycleBoundGraphException");
|
|
9
9
|
const reflect_1 = require("../../utils/reflect");
|
|
10
10
|
const getGlobal_1 = require("../../utils/getGlobal");
|
|
11
|
+
const isString_1 = require("../../utils/isString");
|
|
12
|
+
const ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
|
|
11
13
|
class GraphRegistry {
|
|
12
14
|
constructorToInstance = new Map();
|
|
13
15
|
instanceToConstructor = new Map();
|
|
@@ -16,14 +18,28 @@ class GraphRegistry {
|
|
|
16
18
|
nameToInstance = new Map();
|
|
17
19
|
graphToSubgraphs = new Map();
|
|
18
20
|
graphMiddlewares = new GraphMiddlewareChain_1.default();
|
|
21
|
+
keyToGenerator = new Map();
|
|
22
|
+
keyToGraph = new Map();
|
|
23
|
+
onClearListeners = new Map();
|
|
19
24
|
register(constructor, subgraphs = []) {
|
|
20
25
|
this.graphToSubgraphs.set(constructor, new Set(subgraphs));
|
|
21
26
|
}
|
|
22
|
-
|
|
27
|
+
registerGraphGenerator(key, generator) {
|
|
28
|
+
if (this.keyToGenerator.has(key))
|
|
29
|
+
throw new Error(`Attempted to register a graph generator for key "${key}" that is already registered.`);
|
|
30
|
+
this.keyToGenerator.set(key, generator);
|
|
31
|
+
}
|
|
32
|
+
ensureRegistered(keyOrGraph) {
|
|
33
|
+
if ((0, isString_1.isString)(keyOrGraph))
|
|
34
|
+
return;
|
|
35
|
+
const graph = keyOrGraph;
|
|
23
36
|
if (this.instanceToConstructor.get(graph))
|
|
24
37
|
return;
|
|
25
38
|
this.set(graph.constructor, graph);
|
|
26
39
|
}
|
|
40
|
+
isInstantiated(G) {
|
|
41
|
+
return (this.constructorToInstance.get(G)?.size ?? 0) > 0;
|
|
42
|
+
}
|
|
27
43
|
getSubgraphs(graph) {
|
|
28
44
|
const Graph = this.instanceToConstructor.get(graph);
|
|
29
45
|
const subgraphs = this.graphToSubgraphs.get(Graph) ?? new Set();
|
|
@@ -32,19 +48,72 @@ class GraphRegistry {
|
|
|
32
48
|
getGraphInstance(name) {
|
|
33
49
|
return this.nameToInstance.get(name);
|
|
34
50
|
}
|
|
35
|
-
resolve(
|
|
51
|
+
resolve(keyOrGraph, source = 'lifecycleOwner', props = undefined, injectionToken) {
|
|
52
|
+
const Graph = (0, isString_1.isString)(keyOrGraph) ?
|
|
53
|
+
this.getGraphConstructorByKey(keyOrGraph) :
|
|
54
|
+
keyOrGraph;
|
|
36
55
|
if ((this.isSingleton(Graph) || this.isBoundToReactLifecycle(Graph)) && this.has(Graph, injectionToken)) {
|
|
37
|
-
return this.isComponentScopedLifecycleBound(Graph)
|
|
38
|
-
|
|
39
|
-
|
|
56
|
+
return this.isComponentScopedLifecycleBound(Graph) ?
|
|
57
|
+
this.getByInjectionToken(Graph, injectionToken) :
|
|
58
|
+
this.getFirst(Graph);
|
|
40
59
|
}
|
|
41
60
|
if (this.isBoundToReactLifecycle(Graph) && source !== 'lifecycleOwner') {
|
|
42
61
|
throw new ObtainLifecycleBoundGraphException_1.ObtainLifecycleBoundGraphException(Graph);
|
|
43
62
|
}
|
|
44
63
|
const graph = this.graphMiddlewares.resolve(Graph, props);
|
|
45
64
|
this.set(Graph, graph, injectionToken);
|
|
65
|
+
this.instantiateCustomScopedSubgraphs(graph, props);
|
|
46
66
|
return graph;
|
|
47
67
|
}
|
|
68
|
+
instantiateCustomScopedSubgraphs(graph, props) {
|
|
69
|
+
this.assertInstantiatingCustomScopedSubgraphFromSameScope(graph);
|
|
70
|
+
if (!this.isCustomScopedLifecycleBound(this.instanceToConstructor.get(graph)))
|
|
71
|
+
return;
|
|
72
|
+
const customScope = (0, reflect_1.getMetadata)(this.instanceToConstructor.get(graph), 'lifecycleScope');
|
|
73
|
+
const subgraphs = this.getSubgraphsConstructors(graph);
|
|
74
|
+
const sameScopeSubgraphs = subgraphs.filter(subgraph => (0, reflect_1.getMetadata)(subgraph, 'lifecycleScope') === customScope);
|
|
75
|
+
const instantiatedSubgraphs = sameScopeSubgraphs.map((subgraph) => {
|
|
76
|
+
return this.resolve(subgraph, 'lifecycleOwner', props);
|
|
77
|
+
});
|
|
78
|
+
instantiatedSubgraphs.forEach(subgraph => ReferenceCounter_1.default.retain(subgraph));
|
|
79
|
+
this.registerOnClearListener(graph, () => {
|
|
80
|
+
instantiatedSubgraphs.forEach(subgraph => ReferenceCounter_1.default.release(subgraph, () => this.clear(subgraph)));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
assertInstantiatingCustomScopedSubgraphFromSameScope(graph) {
|
|
84
|
+
const graphScope = (0, reflect_1.getMetadata)(this.instanceToConstructor.get(graph), 'lifecycleScope');
|
|
85
|
+
const subgraphs = this.getSubgraphsConstructors(graph);
|
|
86
|
+
subgraphs.forEach((subgraph) => {
|
|
87
|
+
const subgraphScope = (0, reflect_1.getMetadata)(subgraph, 'lifecycleScope');
|
|
88
|
+
if (!this.isInstantiated(subgraph)
|
|
89
|
+
&& this.isCustomScopedLifecycleBound(subgraph)
|
|
90
|
+
&& graphScope !== subgraphScope) {
|
|
91
|
+
throw new Error(`Cannot instantiate the scoped graph '${subgraph.name}' as a subgraph of '${graph.constructor.name}' because the scopes do not match. ${graphScope} !== ${subgraphScope}`);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
getSubgraphsConstructors(graph) {
|
|
96
|
+
const Graph = typeof graph === 'function' ? graph : this.instanceToConstructor.get(graph);
|
|
97
|
+
const directSubgraphs = Array.from(this.graphToSubgraphs.get(Graph) ?? new Set());
|
|
98
|
+
if (directSubgraphs.length === 0)
|
|
99
|
+
return [];
|
|
100
|
+
return [
|
|
101
|
+
...directSubgraphs,
|
|
102
|
+
...new Set(directSubgraphs
|
|
103
|
+
.map(subgraph => this.getSubgraphsConstructors(subgraph))
|
|
104
|
+
.flat()),
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
getGraphConstructorByKey(key) {
|
|
108
|
+
if (this.keyToGraph.has(key))
|
|
109
|
+
return this.keyToGraph.get(key);
|
|
110
|
+
const generator = this.keyToGenerator.get(key);
|
|
111
|
+
if (!generator)
|
|
112
|
+
throw new Error(`Attempted to resolve a graph by key "${key}" that is not registered. Did you forget to call Obsidian.registerGraph?`);
|
|
113
|
+
const constructor = generator();
|
|
114
|
+
this.keyToGraph.set(key, constructor);
|
|
115
|
+
return constructor;
|
|
116
|
+
}
|
|
48
117
|
has(Graph, injectionToken) {
|
|
49
118
|
const instances = this.constructorToInstance.get(Graph);
|
|
50
119
|
if (!instances)
|
|
@@ -86,6 +155,10 @@ class GraphRegistry {
|
|
|
86
155
|
isComponentScopedLifecycleBound(Graph) {
|
|
87
156
|
return (0, reflect_1.getMetadata)(Graph, 'lifecycleScope') === 'component';
|
|
88
157
|
}
|
|
158
|
+
isCustomScopedLifecycleBound(Graph) {
|
|
159
|
+
const scope = (0, reflect_1.getMetadata)(Graph, 'lifecycleScope');
|
|
160
|
+
return typeof scope === 'string' && scope !== 'component' && scope !== 'feature';
|
|
161
|
+
}
|
|
89
162
|
clearGraphAfterItWasMockedInTests(graphName) {
|
|
90
163
|
const graphNames = this.nameToInstance.keys();
|
|
91
164
|
for (const name of graphNames) {
|
|
@@ -104,6 +177,7 @@ class GraphRegistry {
|
|
|
104
177
|
this.injectionTokenToInstance.delete(token);
|
|
105
178
|
this.instanceToInjectionToken.delete(graph);
|
|
106
179
|
}
|
|
180
|
+
this.invokeOnClearListeners(graph);
|
|
107
181
|
}
|
|
108
182
|
}
|
|
109
183
|
}
|
|
@@ -119,6 +193,29 @@ class GraphRegistry {
|
|
|
119
193
|
this.injectionTokenToInstance.delete(token);
|
|
120
194
|
this.instanceToInjectionToken.delete(graph);
|
|
121
195
|
}
|
|
196
|
+
this.clearGraphsRegisteredByKey(Graph);
|
|
197
|
+
this.invokeOnClearListeners(graph);
|
|
198
|
+
}
|
|
199
|
+
registerOnClearListener(graph, callback) {
|
|
200
|
+
const listeners = this.onClearListeners.get(graph) ?? new Set();
|
|
201
|
+
listeners.add(callback);
|
|
202
|
+
this.onClearListeners.set(graph, listeners);
|
|
203
|
+
}
|
|
204
|
+
invokeOnClearListeners(graph) {
|
|
205
|
+
const listeners = this.onClearListeners.get(graph);
|
|
206
|
+
if (!listeners)
|
|
207
|
+
return;
|
|
208
|
+
listeners.forEach(listener => listener());
|
|
209
|
+
this.onClearListeners.delete(graph);
|
|
210
|
+
}
|
|
211
|
+
clearGraphsRegisteredByKey(Graph) {
|
|
212
|
+
[...this.keyToGraph.keys()]
|
|
213
|
+
.map(key => [key, this.keyToGraph.get(key)])
|
|
214
|
+
.filter(([_, $Graph]) => $Graph === Graph)
|
|
215
|
+
.forEach(([key, _]) => {
|
|
216
|
+
this.keyToGraph.delete(key);
|
|
217
|
+
this.keyToGenerator.delete(key);
|
|
218
|
+
});
|
|
122
219
|
}
|
|
123
220
|
addGraphMiddleware(middleware) {
|
|
124
221
|
this.graphMiddlewares.add(middleware);
|
|
@@ -132,12 +229,12 @@ class GraphRegistry {
|
|
|
132
229
|
this.nameToInstance.clear();
|
|
133
230
|
this.injectionTokenToInstance.clear();
|
|
134
231
|
this.instanceToInjectionToken.clear();
|
|
232
|
+
this.keyToGenerator.clear();
|
|
233
|
+
this.keyToGraph.clear();
|
|
135
234
|
}
|
|
136
235
|
}
|
|
137
236
|
exports.GraphRegistry = GraphRegistry;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
// // @ts-expect-error - see above
|
|
142
|
-
exports.default = _global.graphRegistry;
|
|
237
|
+
const globalObject = (0, getGlobal_1.getGlobal)();
|
|
238
|
+
globalObject.graphRegistry = globalObject.graphRegistry || new GraphRegistry();
|
|
239
|
+
exports.default = globalObject.graphRegistry;
|
|
143
240
|
//# sourceMappingURL=GraphRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;;AAGA,kFAA0D;AAC1D,6FAA0F;AAC1F,iDAAkD;AAClD,qDAAkD;
|
|
1
|
+
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;;AAGA,kFAA0D;AAC1D,6FAA0F;AAC1F,iDAAkD;AAClD,qDAAkD;AAClD,mDAAgD;AAChD,8EAAsD;AAEtD,MAAa,aAAa;IACP,qBAAqB,GAAG,IAAI,GAAG,EAAoC,CAAC;IACpE,qBAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC/D,wBAAwB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACpD,wBAAwB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACpD,cAAc,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC1C,gBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;IAC9E,gBAAgB,GAAG,IAAI,8BAAoB,EAAE,CAAC;IAC9C,cAAc,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC/D,UAAU,GAAG,IAAI,GAAG,EAAgC,CAAC;IACrD,gBAAgB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEtE,QAAQ,CAAC,WAAiC,EAAE,YAAoC,EAAE;QAChF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,sBAAsB,CAAC,GAAW,EAAE,SAAqC;QACvE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,+BAA+B,CAAC,CAAC;QAC1I,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB,CAAC,UAA0B;QACzC,IAAI,IAAA,mBAAQ,EAAC,UAAU,CAAC;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAkB,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEM,cAAc,CAAC,CAAuB;QAC3C,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IACxC,CAAC;IAED,OAAO,CACL,UAAqC,EACrC,SAAiE,gBAAgB,EACjF,QAAa,SAAS,EACtB,cAAuB;QAEvB,MAAM,KAAK,GAAG,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,wBAAwB,CAAI,UAAU,CAAC,CAAC,CAAC;YAC9C,UAAU,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;YACxG,OAAO,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACvE,MAAM,IAAI,uEAAkC,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACvC,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,KAAU,CAAC;IACpB,CAAC;IAEO,gCAAgC,CAAC,KAAY,EAAE,KAAU;QAC/D,IAAI,CAAC,oDAAoD,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YAAE,OAAO;QACvF,MAAM,WAAW,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,EAAE,gBAAgB,CAAC,CAAC;QAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CACzC,QAAQ,CAAC,EAAE,CAAC,IAAA,qBAAW,EAAC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,WAAW,CACpE,CAAC;QACF,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,GAAG,CAClD,CAAC,QAAQ,EAAE,EAAE;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CACF,CAAC;QACF,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,0BAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE;YACvC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,0BAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oDAAoD,CAAC,KAAY;QACvE,MAAM,UAAU,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,EAAE,gBAAgB,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACvD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,MAAM,aAAa,GAAG,IAAA,qBAAW,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAC9D,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;mBAC3B,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC;mBAC3C,UAAU,KAAK,aAAa,EAC/B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,IAAI,uBAAuB,KAAK,CAAC,WAAW,CAAC,IAAI,sCAAsC,UAAU,QAAQ,aAAa,EAAE,CAAC,CAAC;YAC7L,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,KAAmC;QAClE,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QAC3F,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAwB,CAAC,CAAC;QACxG,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5C,OAAO;YACL,GAAG,eAAe;YAClB,GAAG,IAAI,GAAG,CACR,eAAe;iBACZ,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;iBACxD,IAAI,EAAE,CACV;SACF,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAAkB,GAAW;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAqB,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,0EAA0E,CAAC,CAAC;QACvJ,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACtC,OAAO,WAA+B,CAAC;IACzC,CAAC;IAEO,GAAG,CAAC,KAA2B,EAAE,cAAuB;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,IAAI,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK;iBACT,IAAI,CAAC,SAAS,CAAC;iBACf,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAEO,QAAQ,CAAkB,KAAuB;QACvD,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAU,CAAC;IAC3E,CAAC;IAEO,mBAAmB,CAAkB,KAAuB,EAAE,cAAuB;QAC3F,OAAO,KAAK;aACT,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;aAC5C,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC;QACrE,CAAC,CAAM,CAAC;IACZ,CAAC;IAEO,GAAG,CAAC,KAA2B,EAAE,KAAY,EAAE,cAAuB;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAClE,IAAI,cAAc,IAAI,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEO,WAAW,CAAC,KAA2B;QAC7C,OAAO,IAAA,qBAAW,EAAC,KAAK,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC;IACpD,CAAC;IAEO,uBAAuB,CAAC,KAA2B;QACzD,OAAO,IAAA,qBAAW,EAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,KAAK,CAAC;IACzD,CAAC;IAEO,+BAA+B,CAAC,KAA2B;QACjE,OAAO,IAAA,qBAAW,EAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,WAAW,CAAC;IAC9D,CAAC;IAEO,4BAA4B,CAAC,KAA2B;QAC9D,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS,CAAC;IACnF,CAAC;IAED,iCAAiC,CAAC,SAAiB;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK;oBAAE,OAAO;gBAEnB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAO;QAC9C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,uBAAuB,CAAC,KAAY,EAAE,QAAoB;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAChE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEO,sBAAsB,CAAC,KAAY;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,0BAA0B,CAAC,KAA2B;QAC5D,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aACxB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAmC,CAAC;aAC9E,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC;aACzC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,UAA6B;QAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AA9PD,sCA8PC;AAED,MAAM,YAAY,GAAG,IAAA,qBAAS,GAAE,CAAC;AACjC,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,IAAI,IAAI,aAAa,EAAE,CAAC;AAC/E,kBAAe,YAAY,CAAC,aAA8B,CAAC"}
|
|
@@ -6,7 +6,7 @@ export default class ClassInjector {
|
|
|
6
6
|
private graphRegistry;
|
|
7
7
|
private injectionMetadata;
|
|
8
8
|
constructor(graphRegistry: GraphRegistry, injectionMetadata?: InjectionMetadata);
|
|
9
|
-
inject(
|
|
9
|
+
inject(keyOrGraph: string | Constructable<Graph>): (Target: Constructable<any>) => any;
|
|
10
10
|
private createProxyHandler;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=ClassInjector.d.ts.map
|
|
@@ -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;AAKpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,
|
|
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;AAKpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,YAC9B,aAAa,CAAC,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;CAiC3B"}
|
|
@@ -14,24 +14,23 @@ class ClassInjector {
|
|
|
14
14
|
this.graphRegistry = graphRegistry;
|
|
15
15
|
this.injectionMetadata = injectionMetadata;
|
|
16
16
|
}
|
|
17
|
-
inject(
|
|
17
|
+
inject(keyOrGraph) {
|
|
18
18
|
return (Target) => {
|
|
19
|
-
return new Proxy(Target, this.createProxyHandler(
|
|
19
|
+
return new Proxy(Target, this.createProxyHandler(keyOrGraph, this.graphRegistry, this.injectionMetadata));
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
createProxyHandler(
|
|
22
|
+
createProxyHandler(keyOrGraph, graphRegistry, injectionMetadata) {
|
|
23
23
|
return new class Handler {
|
|
24
24
|
construct(target, args, newTarget) {
|
|
25
25
|
const isReactClassComponent = target.prototype?.isReactComponent;
|
|
26
26
|
const source = isReactClassComponent ? 'lifecycleOwner' : 'classInjection';
|
|
27
|
-
const graph = graphRegistry.resolve(
|
|
27
|
+
const graph = graphRegistry.resolve(keyOrGraph, source, args.length > 0 ? args[0] : undefined);
|
|
28
28
|
if (isReactClassComponent) {
|
|
29
29
|
ReferenceCounter_1.default.retain(graph);
|
|
30
30
|
}
|
|
31
31
|
(0, reflect_1.defineMetadata)(target, LateInjector_1.GRAPH_INSTANCE_NAME_KEY, graph.name);
|
|
32
|
-
const argsToInject = this.injectConstructorArgs(args, graph, target);
|
|
33
32
|
graph.onBind(target);
|
|
34
|
-
const createdObject = Reflect.construct(target,
|
|
33
|
+
const createdObject = Reflect.construct(target, args, newTarget);
|
|
35
34
|
this.injectProperties(target, createdObject, graph);
|
|
36
35
|
const originalComponentWillUnmount = createdObject.componentWillUnmount;
|
|
37
36
|
createdObject.componentWillUnmount = () => {
|
|
@@ -40,14 +39,6 @@ class ClassInjector {
|
|
|
40
39
|
};
|
|
41
40
|
return createdObject;
|
|
42
41
|
}
|
|
43
|
-
injectConstructorArgs(args, graph, target) {
|
|
44
|
-
const argsToInject = injectionMetadata.getConstructorArgsToInject(target);
|
|
45
|
-
if (!argsToInject.hasArgs())
|
|
46
|
-
return args;
|
|
47
|
-
return [...args, ...new Array(Math.abs(args.length - argsToInject.size()))].map((value, idx) => {
|
|
48
|
-
return value ?? graph.retrieve(argsToInject.getProperty(idx));
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
42
|
injectProperties(target, createdObject, graph) {
|
|
52
43
|
injectionMetadata.getPropertiesToInject(target).forEach((key) => {
|
|
53
44
|
Reflect.set(createdObject, key, graph.retrieve(key));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;AAGA,4EAAoD;AACpD,iDAAyD;AACzD,8EAAsD;AACtD,iDAAqD;AAErD,MAAqB,aAAa;IAEtB;IACA;IAFV,YACU,aAA4B,EAC5B,oBAAuC,IAAI,2BAAiB,EAAE;QAD9D,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAA6C;IACrE,CAAC;IAEJ,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;AAGA,4EAAoD;AACpD,iDAAyD;AACzD,8EAAsD;AACtD,iDAAqD;AAErD,MAAqB,aAAa;IAEtB;IACA;IAFV,YACU,aAA4B,EAC5B,oBAAuC,IAAI,2BAAiB,EAAE;QAD9D,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAA6C;IACrE,CAAC;IAEJ,MAAM,CAAC,UAAyC;QAC9C,OAAO,CAAC,MAA0B,EAAE,EAAE;YACpC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,UAAyC,EACzC,aAA4B,EAC5B,iBAAoC;QAEpC,OAAO,IAAI,MAAM,OAAO;YACtB,SAAS,CAAC,MAAW,EAAE,IAAW,EAAE,SAAmB;gBACrD,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBAC3E,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/F,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBACD,IAAA,wBAAc,EAAC,MAAM,EAAE,sCAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE5D,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,4BAA4B,GAA2B,aAAa,CAAC,oBAAoB,CAAC;gBAChG,aAAa,CAAC,oBAAoB,GAAG,GAAG,EAAE;oBACxC,4BAA4B,EAAE,EAAE,CAAC;oBACjC,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC,CAAC;gBACF,OAAO,aAAa,CAAC;YACvB,CAAC;YAEO,gBAAgB,CAAC,MAAW,EAAE,aAAkB,EAAE,KAAY;gBACpE,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;SACF,EAAE,CAAC;IACN,CAAC;CACF;AA7CD,gCA6CC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
2
2
|
export declare const GRAPH_INSTANCE_NAME_KEY = "GRAPH_INSTANCE_NAME";
|
|
3
3
|
declare class LateInjector<T extends object> {
|
|
4
|
-
inject(target: T,
|
|
4
|
+
inject(target: T, keyOrGraph?: string | ObjectGraph): T;
|
|
5
|
+
private getGraph;
|
|
5
6
|
private getGraphInstance;
|
|
6
7
|
}
|
|
7
8
|
declare const _default: LateInjector<object>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LateInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/LateInjector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LateInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/LateInjector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,cAAM,YAAY,CAAC,CAAC,SAAS,MAAM;IACjC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC;IAUvD,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,gBAAgB;CAIzB;;AAED,wBAAkC"}
|
|
@@ -4,21 +4,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.GRAPH_INSTANCE_NAME_KEY = void 0;
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const ObjectGraph_1 = require("../../graph/ObjectGraph");
|
|
7
9
|
const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
10
|
const reflect_1 = require("../../utils/reflect");
|
|
9
11
|
const InjectionMetadata_1 = __importDefault(require("./InjectionMetadata"));
|
|
10
12
|
exports.GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
|
|
11
13
|
class LateInjector {
|
|
12
|
-
inject(target,
|
|
13
|
-
if (
|
|
14
|
-
GraphRegistry_1.default.ensureRegistered(
|
|
14
|
+
inject(target, keyOrGraph) {
|
|
15
|
+
if (keyOrGraph)
|
|
16
|
+
GraphRegistry_1.default.ensureRegistered(keyOrGraph);
|
|
15
17
|
const injectionMetadata = new InjectionMetadata_1.default();
|
|
16
|
-
const graph =
|
|
18
|
+
const graph = this.getGraph(target, keyOrGraph);
|
|
17
19
|
injectionMetadata.getLatePropertiesToInject(target.constructor).forEach((key) => {
|
|
18
20
|
Reflect.set(target, key, graph.retrieve(key));
|
|
19
21
|
});
|
|
20
22
|
return target;
|
|
21
23
|
}
|
|
24
|
+
getGraph(target, keyOrGraph) {
|
|
25
|
+
if (keyOrGraph instanceof ObjectGraph_1.ObjectGraph)
|
|
26
|
+
return keyOrGraph;
|
|
27
|
+
if ((0, lodash_1.isString)(keyOrGraph))
|
|
28
|
+
return GraphRegistry_1.default.resolve(keyOrGraph, 'classInjection');
|
|
29
|
+
return this.getGraphInstance(target);
|
|
30
|
+
}
|
|
22
31
|
getGraphInstance(target) {
|
|
23
32
|
const graphInstanceName = (0, reflect_1.getMetadata)(target.constructor, exports.GRAPH_INSTANCE_NAME_KEY);
|
|
24
33
|
return GraphRegistry_1.default.getGraphInstance(graphInstanceName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LateInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LateInjector.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"LateInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LateInjector.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkC;AAClC,yDAAsD;AACtD,uFAA+D;AAC/D,iDAAkD;AAClD,4EAAoD;AAEvC,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D,MAAM,YAAY;IAChB,MAAM,CAAC,MAAS,EAAE,UAAiC;QACjD,IAAI,UAAU;YAAE,uBAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,MAAS,EAAE,UAAiC;QAC3D,IAAI,UAAU,YAAY,yBAAW;YAAE,OAAO,UAAU,CAAC;QACzD,IAAI,IAAA,iBAAQ,EAAC,UAAU,CAAC;YAAE,OAAO,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,MAAS;QAChC,MAAM,iBAAiB,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,+BAAuB,CAAC,CAAC;QACnF,OAAO,uBAAa,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,kBAAe,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
3
3
|
import { Constructable } from '../../types';
|
|
4
4
|
export default class ComponentInjector {
|
|
5
|
-
inject<P>(Target: React.FunctionComponent<P>,
|
|
5
|
+
inject<P>(Target: React.FunctionComponent<P>, keyOrGraph: string | Constructable<ObjectGraph>): React.FunctionComponent<Partial<P>>;
|
|
6
6
|
private wrapComponent;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=ComponentInjector.d.ts.map
|