react-obsidian 2.11.3 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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.map +1 -1
- package/dist/src/graph/ObjectGraph.js +6 -16
- 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 +7 -2
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.js +38 -2
- 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 +4 -4
- 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 +6 -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 +8 -0
- package/dist/src/utils/isString.js.map +1 -0
- package/package.json +2 -2
- package/src/Obsidian.ts +10 -6
- package/src/decorators/inject/Injectable.ts +2 -2
- package/src/graph/ObjectGraph.ts +6 -3
- package/src/graph/ServiceLocatorFactory.ts +2 -2
- package/src/graph/registry/GraphRegistry.ts +39 -3
- package/src/injectors/class/ClassInjector.ts +4 -4
- 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/dist/src/decorators/Memoize.d.ts +0 -3
- package/dist/src/decorators/Memoize.d.ts.map +0 -1
- package/dist/src/decorators/Memoize.js +0 -21
- package/dist/src/decorators/Memoize.js.map +0 -1
- package/src/decorators/Memoize.ts +0 -18
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,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,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Injectable = void 0;
|
|
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
|
exports.Injectable = Injectable;
|
|
13
13
|
//# sourceMappingURL=Injectable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":";;;;;;AAEA,uFAA+D;AAC/D,wFAAgE;AAEhE,SAAgB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":";;;;;;AAEA,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;AAFD,gCAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"
|
|
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;AAE9E,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAYjD,SAAS,CAAC,MAAM,CAAC;IAX7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IAAI,IAAI,IAAI,MAAM,CAOjB;gBAEqB,MAAM,CAAC,eAAG;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;CAGpB;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
6
|
exports.isGraph = exports.ObjectGraph = void 0;
|
|
16
7
|
const uniqueId_1 = require("../utils/uniqueId");
|
|
17
|
-
const Memoize_1 = __importDefault(require("../decorators/Memoize"));
|
|
18
8
|
const ProviderBinder_1 = require("./ProviderBinder");
|
|
19
9
|
const PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
|
|
20
10
|
class ObjectGraph {
|
|
21
11
|
get name() {
|
|
22
|
-
|
|
12
|
+
if (Reflect.hasMetadata('memoizedName', this)) {
|
|
13
|
+
return Reflect.getMetadata('memoizedName', this);
|
|
14
|
+
}
|
|
15
|
+
const name = (0, uniqueId_1.uniqueId)(this.constructor.name);
|
|
16
|
+
Reflect.defineMetadata('memoizedName', name, this);
|
|
17
|
+
return name;
|
|
23
18
|
}
|
|
24
19
|
constructor(_props) {
|
|
25
20
|
this._props = _props;
|
|
@@ -32,11 +27,6 @@ class ObjectGraph {
|
|
|
32
27
|
onBind(_target) {
|
|
33
28
|
}
|
|
34
29
|
}
|
|
35
|
-
__decorate([
|
|
36
|
-
(0, Memoize_1.default)(),
|
|
37
|
-
__metadata("design:type", String),
|
|
38
|
-
__metadata("design:paramtypes", [])
|
|
39
|
-
], ObjectGraph.prototype, "name", null);
|
|
40
30
|
exports.ObjectGraph = ObjectGraph;
|
|
41
31
|
Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
|
|
42
32
|
function isGraph(object) {
|
|
@@ -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":";;;;;;AAAA,gDAA6C;AAC7C,qDAAiD;AAEjD,4EAAoD;AAIpD,MAAsB,WAAW;IAG/B,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE;YAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;SAClD;QACD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAXxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAYtD,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;IAEnB,CAAC;CACF;AA3BD,kCA2BC;AAED,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,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;CASrG"}
|
|
@@ -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,15 @@ 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;
|
|
12
14
|
register(constructor: Constructable<Graph>, subgraphs?: Constructable<Graph>[]): void;
|
|
13
|
-
|
|
15
|
+
registerGraphGenerator(key: string, generator: () => Constructable<Graph>): void;
|
|
16
|
+
ensureRegistered(keyOrGraph: string | Graph): void;
|
|
14
17
|
getSubgraphs(graph: Graph): Graph[];
|
|
15
18
|
getGraphInstance(name: string): Graph;
|
|
16
|
-
resolve<T extends Graph>(
|
|
19
|
+
resolve<T extends Graph>(keyOrGraph: String | Constructable<T>, source?: 'lifecycleOwner' | 'classInjection' | 'serviceLocator', props?: any, injectionToken?: string): T;
|
|
20
|
+
private getGraphConstructorByKey;
|
|
17
21
|
private has;
|
|
18
22
|
private getFirst;
|
|
19
23
|
private getByInjectionToken;
|
|
@@ -23,6 +27,7 @@ export declare class GraphRegistry {
|
|
|
23
27
|
private isComponentScopedLifecycleBound;
|
|
24
28
|
clearGraphAfterItWasMockedInTests(graphName: string): void;
|
|
25
29
|
clear(graph: Graph): void;
|
|
30
|
+
private clearGraphsRegisteredByKey;
|
|
26
31
|
addGraphMiddleware(middleware: Middleware<Graph>): void;
|
|
27
32
|
clearGraphMiddlewares(): void;
|
|
28
33
|
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;AAM1C,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,CAAgD;IAC/E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;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;IAO3C,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;IAiBJ,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,iCAAiC,CAAC,SAAS,EAAE,MAAM;IAqBnD,KAAK,CAAC,KAAK,EAAE,KAAK;IAelB,OAAO,CAAC,0BAA0B;IAUlC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,qBAAqB;IAIrB,QAAQ;CAST;;AAID,wBAA2D"}
|
|
@@ -7,6 +7,7 @@ exports.GraphRegistry = void 0;
|
|
|
7
7
|
const GraphMiddlewareChain_1 = __importDefault(require("./GraphMiddlewareChain"));
|
|
8
8
|
const ObtainLifecycleBoundGraphException_1 = require("./ObtainLifecycleBoundGraphException");
|
|
9
9
|
const getGlobal_1 = require("../../utils/getGlobal");
|
|
10
|
+
const isString_1 = require("../../utils/isString");
|
|
10
11
|
class GraphRegistry {
|
|
11
12
|
constructor() {
|
|
12
13
|
this.constructorToInstance = new Map();
|
|
@@ -16,11 +17,21 @@ class GraphRegistry {
|
|
|
16
17
|
this.nameToInstance = new Map();
|
|
17
18
|
this.graphToSubgraphs = new Map();
|
|
18
19
|
this.graphMiddlewares = new GraphMiddlewareChain_1.default();
|
|
20
|
+
this.keyToGenerator = new Map();
|
|
21
|
+
this.keyToGraph = new Map();
|
|
19
22
|
}
|
|
20
23
|
register(constructor, subgraphs = []) {
|
|
21
24
|
this.graphToSubgraphs.set(constructor, new Set(subgraphs));
|
|
22
25
|
}
|
|
23
|
-
|
|
26
|
+
registerGraphGenerator(key, generator) {
|
|
27
|
+
if (this.keyToGenerator.has(key))
|
|
28
|
+
throw new Error(`Attempted to register a graph generator for key "${key}" that is already registered.`);
|
|
29
|
+
this.keyToGenerator.set(key, generator);
|
|
30
|
+
}
|
|
31
|
+
ensureRegistered(keyOrGraph) {
|
|
32
|
+
if ((0, isString_1.isString)(keyOrGraph))
|
|
33
|
+
return;
|
|
34
|
+
const graph = keyOrGraph;
|
|
24
35
|
if (this.instanceToConstructor.get(graph))
|
|
25
36
|
return;
|
|
26
37
|
this.set(graph.constructor, graph);
|
|
@@ -34,7 +45,10 @@ class GraphRegistry {
|
|
|
34
45
|
getGraphInstance(name) {
|
|
35
46
|
return this.nameToInstance.get(name);
|
|
36
47
|
}
|
|
37
|
-
resolve(
|
|
48
|
+
resolve(keyOrGraph, source = 'lifecycleOwner', props = undefined, injectionToken) {
|
|
49
|
+
const Graph = (0, isString_1.isString)(keyOrGraph) ?
|
|
50
|
+
this.getGraphConstructorByKey(keyOrGraph) :
|
|
51
|
+
keyOrGraph;
|
|
38
52
|
if ((this.isSingleton(Graph) || this.isBoundToReactLifecycle(Graph)) && this.has(Graph, injectionToken)) {
|
|
39
53
|
return this.isComponentScopedLifecycleBound(Graph) ?
|
|
40
54
|
this.getByInjectionToken(Graph, injectionToken) :
|
|
@@ -47,6 +61,16 @@ class GraphRegistry {
|
|
|
47
61
|
this.set(Graph, graph, injectionToken);
|
|
48
62
|
return graph;
|
|
49
63
|
}
|
|
64
|
+
getGraphConstructorByKey(key) {
|
|
65
|
+
if (this.keyToGraph.has(key))
|
|
66
|
+
return this.keyToGraph.get(key);
|
|
67
|
+
const generator = this.keyToGenerator.get(key);
|
|
68
|
+
if (!generator)
|
|
69
|
+
throw new Error(`Attempted to resolve a graph by key "${key}" that is not registered. Did you forget to call Obsidian.registerGraph?`);
|
|
70
|
+
const constructor = generator();
|
|
71
|
+
this.keyToGraph.set(key, constructor);
|
|
72
|
+
return constructor;
|
|
73
|
+
}
|
|
50
74
|
has(Graph, injectionToken) {
|
|
51
75
|
var _a, _b;
|
|
52
76
|
const instances = this.constructorToInstance.get(Graph);
|
|
@@ -125,6 +149,16 @@ class GraphRegistry {
|
|
|
125
149
|
this.injectionTokenToInstance.delete(token);
|
|
126
150
|
this.instanceToInjectionToken.delete(graph);
|
|
127
151
|
}
|
|
152
|
+
this.clearGraphsRegisteredByKey(Graph);
|
|
153
|
+
}
|
|
154
|
+
clearGraphsRegisteredByKey(Graph) {
|
|
155
|
+
[...this.keyToGraph.keys()]
|
|
156
|
+
.map((key) => [key, this.keyToGraph.get(key)])
|
|
157
|
+
.filter(([_, $Graph]) => $Graph === Graph)
|
|
158
|
+
.forEach(([key, _]) => {
|
|
159
|
+
this.keyToGraph.delete(key);
|
|
160
|
+
this.keyToGenerator.delete(key);
|
|
161
|
+
});
|
|
128
162
|
}
|
|
129
163
|
addGraphMiddleware(middleware) {
|
|
130
164
|
this.graphMiddlewares.add(middleware);
|
|
@@ -138,6 +172,8 @@ class GraphRegistry {
|
|
|
138
172
|
this.nameToInstance.clear();
|
|
139
173
|
this.injectionTokenToInstance.clear();
|
|
140
174
|
this.instanceToInjectionToken.clear();
|
|
175
|
+
this.keyToGenerator.clear();
|
|
176
|
+
this.keyToGraph.clear();
|
|
141
177
|
}
|
|
142
178
|
}
|
|
143
179
|
exports.GraphRegistry = GraphRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;;AAGA,kFAA0D;AAC1D,6FAA0F;AAC1F,qDAAkD;
|
|
1
|
+
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAIpD,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;AAIpD,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,cAAc,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;CAyC3B"}
|
|
@@ -11,18 +11,18 @@ class ClassInjector {
|
|
|
11
11
|
this.graphRegistry = graphRegistry;
|
|
12
12
|
this.injectionMetadata = injectionMetadata;
|
|
13
13
|
}
|
|
14
|
-
inject(
|
|
14
|
+
inject(keyOrGraph) {
|
|
15
15
|
return (Target) => {
|
|
16
|
-
return new Proxy(Target, this.createProxyHandler(
|
|
16
|
+
return new Proxy(Target, this.createProxyHandler(keyOrGraph, this.graphRegistry, this.injectionMetadata));
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
createProxyHandler(
|
|
19
|
+
createProxyHandler(keyOrGraph, graphRegistry, injectionMetadata) {
|
|
20
20
|
return new class Handler {
|
|
21
21
|
construct(target, args, newTarget) {
|
|
22
22
|
var _a;
|
|
23
23
|
const isReactClassComponent = (_a = target.prototype) === null || _a === void 0 ? void 0 : _a.isReactComponent;
|
|
24
24
|
const source = isReactClassComponent ? 'lifecycleOwner' : 'classInjection';
|
|
25
|
-
const graph = graphRegistry.resolve(
|
|
25
|
+
const graph = graphRegistry.resolve(keyOrGraph, source, args.length > 0 ? args[0] : undefined);
|
|
26
26
|
if (isReactClassComponent) {
|
|
27
27
|
ReferenceCounter_1.default.retain(graph);
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;AAGA,4EAAoD;AACpD,iDAAyD;AACzD,8EAAsD;AAEtD,MAAqB,aAAa;IAChC,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":"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"}
|
|
@@ -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;AAItD,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,20 +4,29 @@ 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 InjectionMetadata_1 = __importDefault(require("./InjectionMetadata"));
|
|
9
11
|
exports.GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
|
|
10
12
|
class LateInjector {
|
|
11
|
-
inject(target,
|
|
12
|
-
if (
|
|
13
|
-
GraphRegistry_1.default.ensureRegistered(
|
|
13
|
+
inject(target, keyOrGraph) {
|
|
14
|
+
if (keyOrGraph)
|
|
15
|
+
GraphRegistry_1.default.ensureRegistered(keyOrGraph);
|
|
14
16
|
const injectionMetadata = new InjectionMetadata_1.default();
|
|
15
|
-
const graph =
|
|
17
|
+
const graph = this.getGraph(target, keyOrGraph);
|
|
16
18
|
injectionMetadata.getLatePropertiesToInject(target.constructor).forEach((key) => {
|
|
17
19
|
Reflect.set(target, key, graph.retrieve(key));
|
|
18
20
|
});
|
|
19
21
|
return target;
|
|
20
22
|
}
|
|
23
|
+
getGraph(target, keyOrGraph) {
|
|
24
|
+
if (keyOrGraph instanceof ObjectGraph_1.ObjectGraph)
|
|
25
|
+
return keyOrGraph;
|
|
26
|
+
if ((0, lodash_1.isString)(keyOrGraph))
|
|
27
|
+
return GraphRegistry_1.default.resolve(keyOrGraph, 'classInjection');
|
|
28
|
+
return this.getGraphInstance(target);
|
|
29
|
+
}
|
|
21
30
|
getGraphInstance(target) {
|
|
22
31
|
const graphInstanceName = Reflect.getMetadata(exports.GRAPH_INSTANCE_NAME_KEY, target.constructor);
|
|
23
32
|
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,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,OAAO,CAAC,WAAW,CAAC,+BAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3F,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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,CAAC,CAAC,EACN,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAClC,
|
|
1
|
+
{"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,CAAC,CAAC,EACN,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAMtC,OAAO,CAAC,aAAa;CAoBtB"}
|
|
@@ -11,18 +11,18 @@ const React_1 = require("../../utils/React");
|
|
|
11
11
|
const graphContext_1 = require("./graphContext");
|
|
12
12
|
const useInjectionToken_1 = require("./useInjectionToken");
|
|
13
13
|
class ComponentInjector {
|
|
14
|
-
inject(Target,
|
|
15
|
-
const Wrapped = this.wrapComponent(Target,
|
|
14
|
+
inject(Target, keyOrGraph) {
|
|
15
|
+
const Wrapped = this.wrapComponent(Target, keyOrGraph);
|
|
16
16
|
(0, hoist_non_react_statics_1.default)(Wrapped, Target);
|
|
17
17
|
return Wrapped;
|
|
18
18
|
}
|
|
19
|
-
wrapComponent(InjectionCandidate,
|
|
19
|
+
wrapComponent(InjectionCandidate, keyOrGraph) {
|
|
20
20
|
const isMemoized = (0, React_1.isMemoizedComponent)(InjectionCandidate);
|
|
21
21
|
const Target = isMemoized ? InjectionCandidate.type : InjectionCandidate;
|
|
22
22
|
const compare = isMemoized ? InjectionCandidate.compare : undefined;
|
|
23
23
|
return (0, React_1.genericMemo)((passedProps) => {
|
|
24
|
-
const injectionToken = (0, useInjectionToken_1.useInjectionToken)(
|
|
25
|
-
const graph = (0, useGraph_1.default)(
|
|
24
|
+
const injectionToken = (0, useInjectionToken_1.useInjectionToken)(keyOrGraph);
|
|
25
|
+
const graph = (0, useGraph_1.default)(keyOrGraph, Target, passedProps, injectionToken);
|
|
26
26
|
const proxiedProps = new PropsInjector_1.default(graph).inject(passedProps);
|
|
27
27
|
return (react_1.default.createElement(graphContext_1.GraphContext.Provider, { value: { injectionToken } }, Target(proxiedProps)));
|
|
28
28
|
}, compare);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,sFAA2D;AAE3D,oEAA4C;AAC5C,0DAAkC;AAElC,6CAAqE;AACrE,iDAA8C;AAC9C,2DAAwD;AAExD,MAAqB,iBAAiB;IACpC,MAAM,CACJ,MAAkC,EAClC,
|
|
1
|
+
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,sFAA2D;AAE3D,oEAA4C;AAC5C,0DAAkC;AAElC,6CAAqE;AACrE,iDAA8C;AAC9C,2DAAwD;AAExD,MAAqB,iBAAiB;IACpC,MAAM,CACJ,MAAkC,EAClC,UAA+C;QAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACvD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CACnB,kBAA8C,EAC9C,UAA+C;QAE/C,MAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,CAAC,WAAc,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,UAAU,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,CACL,8BAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,cAAc,EAAC,IAC3C,MAAM,CAAC,YAA+C,CAAC,CAClC,CACzB,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AA9BD,oCA8BC"}
|
|
@@ -3,6 +3,6 @@ import { Constructable } from '../../types';
|
|
|
3
3
|
interface Discriminator {
|
|
4
4
|
obsidianDiscriminator: never;
|
|
5
5
|
}
|
|
6
|
-
export declare const injectComponent: <OwnProps = Discriminator, InjectedProps = Discriminator>(Target: import("react").FunctionComponent<(OwnProps extends infer P ? OwnProps extends Discriminator ? P : OwnProps : never) & (InjectedProps extends Discriminator ? any : InjectedProps)>,
|
|
6
|
+
export declare const injectComponent: <OwnProps = Discriminator, InjectedProps = Discriminator>(Target: import("react").FunctionComponent<(OwnProps extends infer P ? OwnProps extends Discriminator ? P : OwnProps : never) & (InjectedProps extends Discriminator ? any : InjectedProps)>, keyOrGraph: string | Constructable<ObjectGraph>) => import("react").FunctionComponent<InjectedProps extends Discriminator ? OwnProps extends Discriminator ? Partial<OwnProps> : OwnProps : OwnProps extends InjectedProps ? Partial<OwnProps> : OwnProps & Partial<InjectedProps>>;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=InjectComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectComponent.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"InjectComponent.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,UAAU,aAAa;IACrB,qBAAqB,EAAE,KAAK,CAAC;CAC9B;AAID,eAAO,MAAM,eAAe,qQAKd,MAAM,GAAG,cAAc,WAAW,CAAC,oOAShD,CAAC"}
|
|
@@ -4,15 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.injectComponent = void 0;
|
|
7
|
+
const isString_1 = require("../../utils/isString");
|
|
7
8
|
const ComponentInjector_1 = __importDefault(require("./ComponentInjector"));
|
|
8
9
|
const componentInjector = new ComponentInjector_1.default();
|
|
9
|
-
const injectComponent = (Target,
|
|
10
|
-
assertGraph(
|
|
11
|
-
return componentInjector.inject(Target,
|
|
10
|
+
const injectComponent = (Target, keyOrGraph) => {
|
|
11
|
+
assertGraph(keyOrGraph, Target);
|
|
12
|
+
return componentInjector.inject(Target, keyOrGraph);
|
|
12
13
|
};
|
|
13
14
|
exports.injectComponent = injectComponent;
|
|
14
|
-
function assertGraph(
|
|
15
|
-
if (!
|
|
15
|
+
function assertGraph(keyOrGraph, Target) {
|
|
16
|
+
if (!(0, isString_1.isString)(keyOrGraph) && !keyOrGraph) {
|
|
16
17
|
throw new Error(`injectComponent was called with an undefined Graph.`
|
|
17
18
|
+ `This is probably not an issue with Obsidian.`
|
|
18
19
|
+ `It's typically caused by circular dependencies.`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectComponent.js","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":";;;;;;AAEA,4EAAoD;AAMpD,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAE3C,MAAM,eAAe,GAAG,CAC7B,MAGC,EACD,
|
|
1
|
+
{"version":3,"file":"InjectComponent.js","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":";;;;;;AAEA,mDAAgD;AAChD,4EAAoD;AAMpD,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAE3C,MAAM,eAAe,GAAG,CAC7B,MAGC,EACD,UAA+C,EAC/C,EAAE;IACF,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEhC,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAIjD,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B;AACF,SAAS,WAAW,CAAC,UAA+C,EAAE,MAAW;IAC/E,IAAI,CAAC,IAAA,mBAAQ,EAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;QACxC,MAAM,IAAI,KAAK,CACb,qDAAqD;cACnD,8CAA8C;cAC9C,iDAAiD;cACjD,gCAAgC,MAAM,CAAC,IAAI,GAAG,CACjD,CAAC;KACH;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Constructable } from '../../types';
|
|
2
2
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
3
|
-
declare const _default: <P>(
|
|
3
|
+
declare const _default: <P>(keyOrGraph: string | Constructable<ObjectGraph>, target: any, props?: Partial<P> | undefined, injectionToken?: string) => 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;
|
|
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;wCAKxC,MAAM,GAAG,cAAc,WAAW,CAAC,UACvC,GAAG,mDAEM,MAAM;AAJzB,wBAiBE"}
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
8
|
const ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
|
|
9
|
-
exports.default = (
|
|
9
|
+
exports.default = (keyOrGraph, target, props, injectionToken) => {
|
|
10
10
|
const [graph] = (0, react_1.useState)(() => {
|
|
11
|
-
const resolvedGraph = GraphRegistry_1.default.resolve(
|
|
11
|
+
const resolvedGraph = GraphRegistry_1.default.resolve(keyOrGraph, 'lifecycleOwner', props, injectionToken);
|
|
12
12
|
resolvedGraph.onBind(target);
|
|
13
13
|
return resolvedGraph;
|
|
14
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAG5C,uFAA+D;AAC/D,8EAAsD;AAEtD,kBAAe,CACb,
|
|
1
|
+
{"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAG5C,uFAA+D;AAC/D,8EAAsD;AAEtD,kBAAe,CACb,UAA+C,EAC/C,MAAW,EACX,KAAkB,EAClB,cAAuB,EACvB,EAAE;IAEF,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QAC5B,MAAM,aAAa,GAAG,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACjG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Constructable, ObjectGraph } from '../..';
|
|
2
|
-
export declare const useInjectionToken: (
|
|
2
|
+
export declare const useInjectionToken: (keyOrGraph: string | Constructable<ObjectGraph>) => string;
|
|
3
3
|
//# sourceMappingURL=useInjectionToken.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInjectionToken.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useInjectionToken.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAIxD,eAAO,MAAM,iBAAiB,eAAgB,MAAM,GAAG,cAAc,WAAW,CAAC,WAMhF,CAAC"}
|