react-obsidian 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.buildkite/pipeline.yml +0 -0
- package/.eslintignore +1 -0
- package/.eslintrc.json +93 -0
- package/.nvmrc +1 -0
- package/LICENSE +7 -0
- package/README.md +160 -0
- package/babel.config.js +12 -0
- package/dist/src/GraphProperties.d.ts +6 -0
- package/dist/src/GraphProperties.d.ts.map +1 -0
- package/dist/src/GraphProperties.js +16 -0
- package/dist/src/GraphProperties.js.map +1 -0
- package/dist/src/Obsidian.d.ts +9 -0
- package/dist/src/Obsidian.d.ts.map +1 -0
- package/dist/src/Obsidian.js +22 -0
- package/dist/src/Obsidian.js.map +1 -0
- package/dist/src/ProvidedPropertiesStore.d.ts +10 -0
- package/dist/src/ProvidedPropertiesStore.d.ts.map +1 -0
- package/dist/src/ProvidedPropertiesStore.js +27 -0
- package/dist/src/ProvidedPropertiesStore.js.map +1 -0
- package/dist/src/Provides.d.ts +9 -0
- package/dist/src/Provides.d.ts.map +1 -0
- package/dist/src/Provides.js +15 -0
- package/dist/src/Provides.js.map +1 -0
- package/dist/src/ReferenceCounter.d.ts +8 -0
- package/dist/src/ReferenceCounter.d.ts.map +1 -0
- package/dist/src/ReferenceCounter.js +25 -0
- package/dist/src/ReferenceCounter.js.map +1 -0
- package/dist/src/ScopedValuesRegistry.d.ts +11 -0
- package/dist/src/ScopedValuesRegistry.d.ts.map +1 -0
- package/dist/src/ScopedValuesRegistry.js +25 -0
- package/dist/src/ScopedValuesRegistry.js.map +1 -0
- package/dist/src/decorators/Graph.d.ts +10 -0
- package/dist/src/decorators/Graph.d.ts.map +1 -0
- package/dist/src/decorators/Graph.js +17 -0
- package/dist/src/decorators/Graph.js.map +1 -0
- package/dist/src/decorators/injectClass.d.ts +7 -0
- package/dist/src/decorators/injectClass.d.ts.map +1 -0
- package/dist/src/decorators/injectClass.js +34 -0
- package/dist/src/decorators/injectClass.js.map +1 -0
- package/dist/src/graph/Graph.d.ts +6 -0
- package/dist/src/graph/Graph.d.ts.map +1 -0
- package/dist/src/graph/Graph.js +3 -0
- package/dist/src/graph/Graph.js.map +1 -0
- package/dist/src/graph/ObjectGraph.d.ts +11 -0
- package/dist/src/graph/ObjectGraph.d.ts.map +1 -0
- package/dist/src/graph/ObjectGraph.js +26 -0
- package/dist/src/graph/ObjectGraph.js.map +1 -0
- package/dist/src/graph/PropertyRetriever.d.ts +8 -0
- package/dist/src/graph/PropertyRetriever.d.ts.map +1 -0
- package/dist/src/graph/PropertyRetriever.js +40 -0
- package/dist/src/graph/PropertyRetriever.js.map +1 -0
- package/dist/src/graph/PropertyRetrieverDelegate.d.ts +5 -0
- package/dist/src/graph/PropertyRetrieverDelegate.d.ts.map +1 -0
- package/dist/src/graph/PropertyRetrieverDelegate.js +3 -0
- package/dist/src/graph/PropertyRetrieverDelegate.js.map +1 -0
- package/dist/src/graph/registry/DefaultGraphResolver.d.ts +7 -0
- package/dist/src/graph/registry/DefaultGraphResolver.d.ts.map +1 -0
- package/dist/src/graph/registry/DefaultGraphResolver.js +30 -0
- package/dist/src/graph/registry/DefaultGraphResolver.js.map +1 -0
- package/dist/src/graph/registry/GraphMiddleware.d.ts +12 -0
- package/dist/src/graph/registry/GraphMiddleware.d.ts.map +1 -0
- package/dist/src/graph/registry/GraphMiddleware.js +25 -0
- package/dist/src/graph/registry/GraphMiddleware.js.map +1 -0
- package/dist/src/graph/registry/GraphMiddlewareChain.d.ts +12 -0
- package/dist/src/graph/registry/GraphMiddlewareChain.d.ts.map +1 -0
- package/dist/src/graph/registry/GraphMiddlewareChain.js +30 -0
- package/dist/src/graph/registry/GraphMiddlewareChain.js.map +1 -0
- package/dist/src/graph/registry/GraphRegistry.d.ts +22 -0
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -0
- package/dist/src/graph/registry/GraphRegistry.js +65 -0
- package/dist/src/graph/registry/GraphRegistry.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +24 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/injectHook.d.ts +5 -0
- package/dist/src/injectHook.d.ts.map +1 -0
- package/dist/src/injectHook.js +30 -0
- package/dist/src/injectHook.js.map +1 -0
- package/dist/src/injectors/components/ComponentInjector.d.ts +9 -0
- package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -0
- package/dist/src/injectors/components/ComponentInjector.js +48 -0
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -0
- package/dist/src/injectors/components/PropsInjector.d.ts +7 -0
- package/dist/src/injectors/components/PropsInjector.d.ts.map +1 -0
- package/dist/src/injectors/components/PropsInjector.js +19 -0
- package/dist/src/injectors/components/PropsInjector.js.map +1 -0
- package/dist/src/injectors/components/useGraph.d.ts +5 -0
- package/dist/src/injectors/components/useGraph.d.ts.map +1 -0
- package/dist/src/injectors/components/useGraph.js +17 -0
- package/dist/src/injectors/components/useGraph.js.map +1 -0
- package/dist/test/integration/fixtures/InjectedComponent.d.ts +8 -0
- package/dist/test/integration/fixtures/InjectedComponent.d.ts.map +1 -0
- package/dist/test/integration/fixtures/InjectedComponent.js +14 -0
- package/dist/test/integration/fixtures/InjectedComponent.js.map +1 -0
- package/dist/test/integration/fixtures/MainGraph.d.ts +6 -0
- package/dist/test/integration/fixtures/MainGraph.d.ts.map +1 -0
- package/dist/test/integration/fixtures/MainGraph.js +53 -0
- package/dist/test/integration/fixtures/MainGraph.js.map +1 -0
- package/dist/test/integration/fixtures/StringProvider.d.ts +5 -0
- package/dist/test/integration/fixtures/StringProvider.d.ts.map +1 -0
- package/dist/test/integration/fixtures/StringProvider.js +15 -0
- package/dist/test/integration/fixtures/StringProvider.js.map +1 -0
- package/dist/test/integration/fixtures/Subgraph.d.ts +8 -0
- package/dist/test/integration/fixtures/Subgraph.d.ts.map +1 -0
- package/dist/test/integration/fixtures/Subgraph.js +71 -0
- package/dist/test/integration/fixtures/Subgraph.js.map +1 -0
- package/dist/test/integration/fixtures/ThrowingMainGraph.d.ts +5 -0
- package/dist/test/integration/fixtures/ThrowingMainGraph.d.ts.map +1 -0
- package/dist/test/integration/fixtures/ThrowingMainGraph.js +52 -0
- package/dist/test/integration/fixtures/ThrowingMainGraph.js.map +1 -0
- package/dist/test/integration/fixtures/injectedValues.d.ts +6 -0
- package/dist/test/integration/fixtures/injectedValues.d.ts.map +1 -0
- package/dist/test/integration/fixtures/injectedValues.js +7 -0
- package/dist/test/integration/fixtures/injectedValues.js.map +1 -0
- package/dist/testkit/index.d.ts +8 -0
- package/dist/testkit/index.d.ts.map +1 -0
- package/dist/testkit/index.js +46 -0
- package/dist/testkit/index.js.map +1 -0
- package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.d.ts +9 -0
- package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.d.ts.map +1 -0
- package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.js +54 -0
- package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.js.map +1 -0
- package/dist/transformers/babel-plugin-obsidian-provide/index.d.ts +3 -0
- package/dist/transformers/babel-plugin-obsidian-provide/index.d.ts.map +1 -0
- package/dist/transformers/babel-plugin-obsidian-provide/index.js +35 -0
- package/dist/transformers/babel-plugin-obsidian-provide/index.js.map +1 -0
- package/example/.buckconfig +6 -0
- package/example/.editorconfig +3 -0
- package/example/.eslintrc.js +4 -0
- package/example/.flowconfig +65 -0
- package/example/.gitattributes +3 -0
- package/example/.prettierrc.js +7 -0
- package/example/.watchmanconfig +1 -0
- package/example/App.tsx +31 -0
- package/example/MyInjectedComponent.tsx +28 -0
- package/example/__tests__/App-test.js +14 -0
- package/example/android/app/BUCK +55 -0
- package/example/android/app/build.gradle +227 -0
- package/example/android/app/build_defs.bzl +19 -0
- package/example/android/app/debug.keystore +0 -0
- package/example/android/app/proguard-rules.pro +10 -0
- package/example/android/app/src/debug/AndroidManifest.xml +13 -0
- package/example/android/app/src/debug/java/com/example/ReactNativeFlipper.java +72 -0
- package/example/android/app/src/main/AndroidManifest.xml +25 -0
- package/example/android/app/src/main/java/com/example/MainActivity.java +15 -0
- package/example/android/app/src/main/java/com/example/MainApplication.java +80 -0
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/values/strings.xml +3 -0
- package/example/android/app/src/main/res/values/styles.xml +8 -0
- package/example/android/build.gradle +38 -0
- package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/example/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/example/android/gradle.properties +28 -0
- package/example/android/gradlew +185 -0
- package/example/android/gradlew.bat +89 -0
- package/example/android/settings.gradle +3 -0
- package/example/app.json +4 -0
- package/example/babel.config.js +8 -0
- package/example/index.js +9 -0
- package/example/ios/Podfile +30 -0
- package/example/ios/Podfile.lock +526 -0
- package/example/ios/example/AppDelegate.h +8 -0
- package/example/ios/example/AppDelegate.m +62 -0
- package/example/ios/example/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
- package/example/ios/example/Images.xcassets/Contents.json +6 -0
- package/example/ios/example/Info.plist +55 -0
- package/example/ios/example/LaunchScreen.storyboard +47 -0
- package/example/ios/example/main.m +9 -0
- package/example/ios/example.xcodeproj/project.pbxproj +689 -0
- package/example/ios/example.xcodeproj/xcshareddata/xcschemes/example.xcscheme +88 -0
- package/example/ios/example.xcworkspace/contents.xcworkspacedata +10 -0
- package/example/ios/exampleTests/Info.plist +24 -0
- package/example/ios/exampleTests/exampleTests.m +65 -0
- package/example/metro.config.js +44 -0
- package/example/package.json +35 -0
- package/example/tsconfig.json +45 -0
- package/jest.config.js +12 -0
- package/package.json +79 -0
- package/src/@types/obsidian.d.ts +19 -0
- package/src/GraphProperties.ts +11 -0
- package/src/Obsidian.ts +18 -0
- package/src/ProvidedPropertiesStore.ts +22 -0
- package/src/Provides.ts +16 -0
- package/src/ReferenceCounter.ts +20 -0
- package/src/ScopedValuesRegistry.ts +26 -0
- package/src/decorators/Graph.ts +20 -0
- package/src/decorators/injectClass.ts +28 -0
- package/src/graph/Graph.ts +7 -0
- package/src/graph/ObjectGraph.ts +19 -0
- package/src/graph/PropertyRetriever.ts +36 -0
- package/src/graph/PropertyRetrieverDelegate.ts +5 -0
- package/src/graph/registry/DefaultGraphResolver.ts +9 -0
- package/src/graph/registry/GraphMiddleware.ts +24 -0
- package/src/graph/registry/GraphMiddlewareChain.ts +31 -0
- package/src/graph/registry/GraphRegistry.ts +70 -0
- package/src/index.ts +23 -0
- package/src/injectHook.ts +26 -0
- package/src/injectors/components/ComponentInjector.tsx +29 -0
- package/src/injectors/components/PropsInjector.ts +14 -0
- package/src/injectors/components/useGraph.ts +14 -0
- package/testkit/index.ts +25 -0
- package/transformers/babel-plugin-obsidian-provide/helpers/index.ts +59 -0
- package/transformers/babel-plugin-obsidian-provide/index.ts +44 -0
- package/tsconfig.base.json +43 -0
- package/tsconfig.json +3 -0
- package/tsconfig.prod.json +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../../src/graph/Graph.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Scope } from '@Obsidian';
|
|
2
|
+
import Graph from './Graph';
|
|
3
|
+
export default abstract class ObjectGraph<T = unknown> implements Graph {
|
|
4
|
+
protected props?: T | undefined;
|
|
5
|
+
scope: Scope;
|
|
6
|
+
private propertyRetriever;
|
|
7
|
+
get name(): string;
|
|
8
|
+
constructor(props?: T | undefined);
|
|
9
|
+
retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ObjectGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IASzD,SAAS,CAAC,KAAK,CAAC;IAPrB,KAAK,EAAG,KAAK,CAAC;IACrB,OAAO,CAAC,iBAAiB,CAA+B;IACxD,IAAI,IAAI,IAAI,MAAM,CAEjB;gBAGqB,KAAK,CAAC,eAAG;IAE/B,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
|
|
7
|
+
var ObjectGraph = /** @class */ (function () {
|
|
8
|
+
// eslint-disable-next-line no-useless-constructor, no-unused-vars, no-empty-function
|
|
9
|
+
function ObjectGraph(props) {
|
|
10
|
+
this.props = props;
|
|
11
|
+
this.propertyRetriever = new PropertyRetriever_1.default(this);
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(ObjectGraph.prototype, "name", {
|
|
14
|
+
get: function () {
|
|
15
|
+
return this.constructor.name;
|
|
16
|
+
},
|
|
17
|
+
enumerable: false,
|
|
18
|
+
configurable: true
|
|
19
|
+
});
|
|
20
|
+
ObjectGraph.prototype.retrieve = function (property, receiver) {
|
|
21
|
+
return this.propertyRetriever.retrieve(property, receiver);
|
|
22
|
+
};
|
|
23
|
+
return ObjectGraph;
|
|
24
|
+
}());
|
|
25
|
+
exports.default = ObjectGraph;
|
|
26
|
+
//# sourceMappingURL=ObjectGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;AAEA,0EAAoD;AAEpD;IAQE,qFAAqF;IACrF,qBAAsB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QANvB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;IAMtB,CAAC;IALnC,sBAAI,6BAAI;aAAR;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/B,CAAC;;;OAAA;IAKD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IACH,kBAAC;AAAD,CAAC,AAdD,IAcC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Graph from './Graph';
|
|
2
|
+
export default class PropertyRetriever {
|
|
3
|
+
private graph;
|
|
4
|
+
constructor(graph: Graph);
|
|
5
|
+
retrieve(property: string, receiver?: unknown): unknown | undefined;
|
|
6
|
+
private getFromSubgraphs;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=PropertyRetriever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyRetriever.d.ts","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACxB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEhC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAsBnE,OAAO,CAAC,gBAAgB;CAMzB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var GraphRegistry_1 = __importDefault(require("./registry/GraphRegistry"));
|
|
7
|
+
var ProvidedPropertiesStore_1 = __importDefault(require("../ProvidedPropertiesStore"));
|
|
8
|
+
var PropertyRetriever = /** @class */ (function () {
|
|
9
|
+
function PropertyRetriever(graph) {
|
|
10
|
+
this.graph = graph;
|
|
11
|
+
}
|
|
12
|
+
PropertyRetriever.prototype.retrieve = function (property, receiver) {
|
|
13
|
+
var mangledPropertyKey = ProvidedPropertiesStore_1.default.getMangledProperty(this.graph, property);
|
|
14
|
+
if (mangledPropertyKey && mangledPropertyKey in this.graph) {
|
|
15
|
+
var proxiedGraph = new Proxy(this.graph, {
|
|
16
|
+
get: function (graph, dependencyName) {
|
|
17
|
+
return graph.retrieve(dependencyName);
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
return Reflect.get(this.graph, mangledPropertyKey, receiver)(proxiedGraph);
|
|
21
|
+
}
|
|
22
|
+
var results = this.getFromSubgraphs(property, receiver);
|
|
23
|
+
if (results.length === 1)
|
|
24
|
+
return results[0];
|
|
25
|
+
if (results.length > 1) {
|
|
26
|
+
throw new Error("Multiple subgraphs provide the property ".concat(property, ".")
|
|
27
|
+
+ 'You should probably provide a unique name to one of the providers: @Provide({name: \'uniqueName\')})');
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
};
|
|
31
|
+
PropertyRetriever.prototype.getFromSubgraphs = function (property, receiver) {
|
|
32
|
+
var subgraphs = GraphRegistry_1.default.getSubgraphs(this.graph);
|
|
33
|
+
return subgraphs
|
|
34
|
+
.map(function (subgraph) { return subgraph.retrieve(property, receiver); })
|
|
35
|
+
.filter(function (result) { return result !== undefined; });
|
|
36
|
+
};
|
|
37
|
+
return PropertyRetriever;
|
|
38
|
+
}());
|
|
39
|
+
exports.default = PropertyRetriever;
|
|
40
|
+
//# sourceMappingURL=PropertyRetriever.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AAAA,2EAAqD;AAErD,uFAAiE;AAEjE;IACE,2BAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAErC,oCAAQ,GAAR,UAAS,QAAgB,EAAE,QAAkB;QAC3C,IAAM,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,kBAAkB,IAAI,kBAAkB,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1D,IAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzC,GAAG,EAAH,UAAI,KAAY,EAAE,cAAsB;oBACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;SAC5E;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,kDAA2C,QAAQ,MAAG;kBACpD,sGAAsG,CACzG,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,4CAAgB,GAAxB,UAAyB,QAAgB,EAAE,QAAiB;QAC1D,IAAM,SAAS,GAAG,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS;aACb,GAAG,CAAC,UAAC,QAAe,IAAK,OAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAArC,CAAqC,CAAC;aAC/D,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,KAAK,SAAS,EAApB,CAAoB,CAAC,CAAC;IAC9C,CAAC;IACH,wBAAC;AAAD,CAAC,AA/BD,IA+BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyRetrieverDelegate.d.ts","sourceRoot":"","sources":["../../../src/graph/PropertyRetrieverDelegate.ts"],"names":[],"mappings":"AAAA,UAAU,yBAAyB;IACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,SAAS,CAAC;CACzE;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyRetrieverDelegate.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetrieverDelegate.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Constructable } from '@Obsidian';
|
|
2
|
+
import Graph from '../Graph';
|
|
3
|
+
import { GraphMiddleware, ResolveChain } from './GraphMiddleware';
|
|
4
|
+
export default class DefaultGraphMiddleware extends GraphMiddleware {
|
|
5
|
+
resolve<T extends Graph, Props>(_resolveChain: ResolveChain, Graph: Constructable<T>, props?: Props): T;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DefaultGraphResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultGraphResolver.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,eAAe;IACjE,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAGxG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
var GraphMiddleware_1 = require("./GraphMiddleware");
|
|
19
|
+
var DefaultGraphMiddleware = /** @class */ (function (_super) {
|
|
20
|
+
__extends(DefaultGraphMiddleware, _super);
|
|
21
|
+
function DefaultGraphMiddleware() {
|
|
22
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
23
|
+
}
|
|
24
|
+
DefaultGraphMiddleware.prototype.resolve = function (_resolveChain, Graph, props) {
|
|
25
|
+
return new Graph(props);
|
|
26
|
+
};
|
|
27
|
+
return DefaultGraphMiddleware;
|
|
28
|
+
}(GraphMiddleware_1.GraphMiddleware));
|
|
29
|
+
exports.default = DefaultGraphMiddleware;
|
|
30
|
+
//# sourceMappingURL=DefaultGraphResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultGraphResolver.js","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,qDAAkE;AAElE;IAAoD,0CAAe;IAAnE;;IAIA,CAAC;IAHC,wCAAO,GAAP,UAAgC,aAA2B,EAAE,KAAuB,EAAE,KAAa;QACjG,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,CAAoD,iCAAe,GAIlE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Constructable } from '@Obsidian';
|
|
2
|
+
import Graph from '../Graph';
|
|
3
|
+
export declare abstract class GraphMiddleware {
|
|
4
|
+
private next;
|
|
5
|
+
setNext(next: GraphMiddleware): void;
|
|
6
|
+
get resolveChain(): ResolveChain;
|
|
7
|
+
abstract resolve<T extends Graph, Props>(resolveChain: ResolveChain, Graph: Constructable<T>, props?: Props): T;
|
|
8
|
+
}
|
|
9
|
+
export interface ResolveChain {
|
|
10
|
+
proceed<T extends Graph, Props>(Graph: Constructable<T>, props?: Props): T;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=GraphMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,8BAAsB,eAAe;IACnC,OAAO,CAAC,IAAI,CAAmB;IAExB,OAAO,CAAC,IAAI,EAAE,eAAe;IAIpC,IAAW,YAAY,IAAI,YAAY,CAMtC;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAChH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;CAC5E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GraphMiddleware = void 0;
|
|
4
|
+
var GraphMiddleware = /** @class */ (function () {
|
|
5
|
+
function GraphMiddleware() {
|
|
6
|
+
}
|
|
7
|
+
GraphMiddleware.prototype.setNext = function (next) {
|
|
8
|
+
this.next = next;
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(GraphMiddleware.prototype, "resolveChain", {
|
|
11
|
+
get: function () {
|
|
12
|
+
var _this = this;
|
|
13
|
+
return {
|
|
14
|
+
proceed: function (Graph, props) {
|
|
15
|
+
return _this.next.resolve(_this.next.resolveChain, Graph, props);
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
enumerable: false,
|
|
20
|
+
configurable: true
|
|
21
|
+
});
|
|
22
|
+
return GraphMiddleware;
|
|
23
|
+
}());
|
|
24
|
+
exports.GraphMiddleware = GraphMiddleware;
|
|
25
|
+
//# sourceMappingURL=GraphMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphMiddleware.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":";;;AAGA;IAAA;IAgBA,CAAC;IAbQ,iCAAO,GAAd,UAAe,IAAqB;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,sBAAW,yCAAY;aAAvB;YAAA,iBAMC;YALC,OAAO;gBACL,OAAO,EAAE,UAAyB,KAAuB,EAAE,KAAa;oBACtE,OAAO,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;aACF,CAAC;QACJ,CAAC;;;OAAA;IAGH,sBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBqB,0CAAe"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Constructable } from '@Obsidian';
|
|
2
|
+
import Graph from '../Graph';
|
|
3
|
+
import { GraphMiddleware } from './GraphMiddleware';
|
|
4
|
+
export default class GraphMiddlewareChain {
|
|
5
|
+
private middlewares;
|
|
6
|
+
constructor(defaultMiddleware?: GraphMiddleware);
|
|
7
|
+
resolve<T extends Graph>(Graph: Constructable<T>, props?: any): T;
|
|
8
|
+
add(middleware: GraphMiddleware): void;
|
|
9
|
+
private updateResolveChain;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=GraphMiddlewareChain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphMiddlewareChain.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddlewareChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,WAAW,CAAoB;gBAE3B,iBAAiB,GAAE,eAA8C;IAI7E,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IAIjE,GAAG,CAAC,UAAU,EAAE,eAAe;IAK/B,OAAO,CAAC,kBAAkB;IAM1B,KAAK;CAGN"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var DefaultGraphResolver_1 = __importDefault(require("./DefaultGraphResolver"));
|
|
7
|
+
var GraphMiddlewareChain = /** @class */ (function () {
|
|
8
|
+
function GraphMiddlewareChain(defaultMiddleware) {
|
|
9
|
+
if (defaultMiddleware === void 0) { defaultMiddleware = new DefaultGraphResolver_1.default(); }
|
|
10
|
+
this.middlewares = [defaultMiddleware];
|
|
11
|
+
}
|
|
12
|
+
GraphMiddlewareChain.prototype.resolve = function (Graph, props) {
|
|
13
|
+
return this.middlewares[0].resolve(this.middlewares[0].resolveChain, Graph, props);
|
|
14
|
+
};
|
|
15
|
+
GraphMiddlewareChain.prototype.add = function (middleware) {
|
|
16
|
+
this.middlewares.unshift(middleware);
|
|
17
|
+
this.updateResolveChain();
|
|
18
|
+
};
|
|
19
|
+
GraphMiddlewareChain.prototype.updateResolveChain = function () {
|
|
20
|
+
if (this.middlewares.length > 1) {
|
|
21
|
+
this.middlewares[0].setNext(this.middlewares[1]);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
GraphMiddlewareChain.prototype.clear = function () {
|
|
25
|
+
this.middlewares = [new DefaultGraphResolver_1.default()];
|
|
26
|
+
};
|
|
27
|
+
return GraphMiddlewareChain;
|
|
28
|
+
}());
|
|
29
|
+
exports.default = GraphMiddlewareChain;
|
|
30
|
+
//# sourceMappingURL=GraphMiddlewareChain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphMiddlewareChain.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddlewareChain.ts"],"names":[],"mappings":";;;;;AAEA,gFAA4D;AAG5D;IAGE,8BAAY,iBAAiE;QAAjE,kCAAA,EAAA,wBAAyC,8BAAsB,EAAE;QAC3E,IAAI,CAAC,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED,sCAAO,GAAP,UAAyB,KAAuB,EAAE,KAAW;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IAED,kCAAG,GAAH,UAAI,UAA2B;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,iDAAkB,GAA1B;QACE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;IACH,CAAC;IAED,oCAAK,GAAL;QACE,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;IACpD,CAAC;IACH,2BAAC;AAAD,CAAC,AAzBD,IAyBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Constructable, Scope } from '@Obsidian';
|
|
2
|
+
import Graph from '../Graph';
|
|
3
|
+
import { GraphMiddleware } from './GraphMiddleware';
|
|
4
|
+
declare class GraphRegistry {
|
|
5
|
+
private readonly scopedGraphs;
|
|
6
|
+
private readonly constructorToInstance;
|
|
7
|
+
private readonly instanceToConstructor;
|
|
8
|
+
private readonly graphToSubgraphs;
|
|
9
|
+
private graphMiddlewares;
|
|
10
|
+
register(constructor: Constructable<Graph>, scope?: Scope | undefined, subgraphs?: Constructable<Graph>[]): void;
|
|
11
|
+
has(Graph: Constructable<Graph>): boolean;
|
|
12
|
+
get<T extends Graph>(Graph: Constructable<T>): T;
|
|
13
|
+
set(Graph: Constructable<Graph>, graph: Graph): void;
|
|
14
|
+
getSubgraphs(graph: Graph): Graph[];
|
|
15
|
+
resolve<T extends Graph>(Graph: Constructable<T>, props?: any): T;
|
|
16
|
+
clear(graph: Graph): void;
|
|
17
|
+
addGraphMiddleware(middleware: GraphMiddleware): void;
|
|
18
|
+
clearGraphMiddlewares(): void;
|
|
19
|
+
}
|
|
20
|
+
declare const _default: GraphRegistry;
|
|
21
|
+
export default _default;
|
|
22
|
+
//# sourceMappingURL=GraphRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAM,aAAa;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,QAAQ,CACN,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EACjC,KAAK,GAAE,KAAK,GAAG,SAAqB,EACpC,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAMxC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;IAI/B,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAIhD,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK;IAK7C,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IAcjE,KAAK,CAAC,KAAK,EAAE,KAAK;IAMlB,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB;;AAED,wBAAmC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var GraphMiddlewareChain_1 = __importDefault(require("./GraphMiddlewareChain"));
|
|
7
|
+
var GraphRegistry = /** @class */ (function () {
|
|
8
|
+
function GraphRegistry() {
|
|
9
|
+
this.scopedGraphs = {};
|
|
10
|
+
this.constructorToInstance = new Map();
|
|
11
|
+
this.instanceToConstructor = new Map();
|
|
12
|
+
this.graphToSubgraphs = new Map();
|
|
13
|
+
this.graphMiddlewares = new GraphMiddlewareChain_1.default();
|
|
14
|
+
}
|
|
15
|
+
GraphRegistry.prototype.register = function (constructor, scope, subgraphs) {
|
|
16
|
+
if (scope === void 0) { scope = undefined; }
|
|
17
|
+
if (subgraphs === void 0) { subgraphs = []; }
|
|
18
|
+
if (scope)
|
|
19
|
+
this.scopedGraphs[scope] = constructor;
|
|
20
|
+
this.graphToSubgraphs.set(constructor, new Set(subgraphs));
|
|
21
|
+
};
|
|
22
|
+
GraphRegistry.prototype.has = function (Graph) {
|
|
23
|
+
return this.constructorToInstance.has(Graph);
|
|
24
|
+
};
|
|
25
|
+
GraphRegistry.prototype.get = function (Graph) {
|
|
26
|
+
return this.constructorToInstance.get(Graph);
|
|
27
|
+
};
|
|
28
|
+
GraphRegistry.prototype.set = function (Graph, graph) {
|
|
29
|
+
this.constructorToInstance.set(Graph, graph);
|
|
30
|
+
this.instanceToConstructor.set(graph, Graph);
|
|
31
|
+
};
|
|
32
|
+
GraphRegistry.prototype.getSubgraphs = function (graph) {
|
|
33
|
+
var _this = this;
|
|
34
|
+
var _a;
|
|
35
|
+
var Graph = this.instanceToConstructor.get(graph);
|
|
36
|
+
var subgraphs = (_a = this.graphToSubgraphs.get(Graph)) !== null && _a !== void 0 ? _a : new Set();
|
|
37
|
+
return Array.from(subgraphs).map(function (G) { return _this.resolve(G); });
|
|
38
|
+
};
|
|
39
|
+
GraphRegistry.prototype.resolve = function (Graph, props) {
|
|
40
|
+
if (this.has(Graph)) {
|
|
41
|
+
return this.get(Graph);
|
|
42
|
+
// const graph: T = this.get(Graph);
|
|
43
|
+
// const scope = Reflect.getMetadata('scope', Graph);
|
|
44
|
+
// if (scope) return graph;
|
|
45
|
+
// this.set(Graph, new Graph(props));
|
|
46
|
+
}
|
|
47
|
+
var graph = this.graphMiddlewares.resolve(Graph, props);
|
|
48
|
+
this.set(Graph, graph);
|
|
49
|
+
return graph;
|
|
50
|
+
};
|
|
51
|
+
GraphRegistry.prototype.clear = function (graph) {
|
|
52
|
+
var Graph = this.instanceToConstructor.get(graph);
|
|
53
|
+
this.instanceToConstructor.delete(graph);
|
|
54
|
+
this.constructorToInstance.delete(Graph);
|
|
55
|
+
};
|
|
56
|
+
GraphRegistry.prototype.addGraphMiddleware = function (middleware) {
|
|
57
|
+
this.graphMiddlewares.add(middleware);
|
|
58
|
+
};
|
|
59
|
+
GraphRegistry.prototype.clearGraphMiddlewares = function () {
|
|
60
|
+
this.graphMiddlewares.clear();
|
|
61
|
+
};
|
|
62
|
+
return GraphRegistry;
|
|
63
|
+
}());
|
|
64
|
+
exports.default = new GraphRegistry();
|
|
65
|
+
//# sourceMappingURL=GraphRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;AAGA,gFAA0D;AAE1D;IAAA;QACmB,iBAAY,GAAwC,EAAE,CAAC;QACvD,0BAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,0BAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,qBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;QACvF,qBAAgB,GAAG,IAAI,8BAAoB,EAAE,CAAC;IAyDxD,CAAC;IAvDC,gCAAQ,GAAR,UACE,WAAiC,EACjC,KAAoC,EACpC,SAAsC;QADtC,sBAAA,EAAA,iBAAoC;QACpC,0BAAA,EAAA,cAAsC;QAEtC,IAAI,KAAK;YAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,2BAAG,GAAH,UAAI,KAA2B;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,2BAAG,GAAH,UAAqB,KAAuB;QAC1C,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAkB,CAAC;IAChE,CAAC;IAED,2BAAG,GAAH,UAAI,KAA2B,EAAE,KAAY;QAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,oCAAY,GAAZ,UAAa,KAAY;QAAzB,iBAIC;;QAHC,IAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrD,IAAM,SAAS,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,IAAI,GAAG,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;IAC3D,CAAC;IAED,+BAAO,GAAP,UAAyB,KAAuB,EAAE,KAAW;QAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,oCAAoC;YACpC,qDAAqD;YACrD,2BAA2B;YAE3B,qCAAqC;SACtC;QACD,IAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6BAAK,GAAL,UAAM,KAAY;QAChB,IAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,0CAAkB,GAAlB,UAAmB,UAA2B;QAC5C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,6CAAqB,GAArB;QACE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC,AA9DD,IA8DC;AAED,kBAAe,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Constructable } from '@Obsidian';
|
|
3
|
+
import _Graph from './decorators/Graph';
|
|
4
|
+
import _ObjectGraph from './graph/ObjectGraph';
|
|
5
|
+
import _injectHook from './injectHook';
|
|
6
|
+
import _Provides from './Provides';
|
|
7
|
+
import { Inject as _Inject, Injectable as _Injectable } from './decorators/injectClass';
|
|
8
|
+
import _obsidian from './Obsidian';
|
|
9
|
+
export declare const Graph: typeof _Graph;
|
|
10
|
+
export declare const ObjectGraph: typeof _ObjectGraph;
|
|
11
|
+
export declare const injectHook: typeof _injectHook;
|
|
12
|
+
export declare const Provides: typeof _Provides;
|
|
13
|
+
export declare const Injectable: typeof _Injectable;
|
|
14
|
+
export declare const Inject: typeof _Inject;
|
|
15
|
+
export declare const Obsidian: _obsidian;
|
|
16
|
+
export declare const injectComponent: <P>(__Target: React.FunctionComponent<P>, __Graph: Constructable<_ObjectGraph>) => React.FunctionComponent<Partial<P>>;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,eAAO,MAAM,KAAK,eAAS,CAAC;AAC5B,eAAO,MAAM,WAAW,qBAAe,CAAC;AACxC,eAAO,MAAM,UAAU,oBAAc,CAAC;AACtC,eAAO,MAAM,QAAQ,kBAAY,CAAC;AAClC,eAAO,MAAM,UAAU,oBAAc,CAAC;AACtC,eAAO,MAAM,MAAM,gBAAU,CAAC;AAC9B,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,qDAEjB,cAAc,YAAY,CAAC,wCACU,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.injectComponent = exports.Obsidian = exports.Inject = exports.Injectable = exports.Provides = exports.injectHook = exports.ObjectGraph = exports.Graph = void 0;
|
|
7
|
+
var Graph_1 = __importDefault(require("./decorators/Graph"));
|
|
8
|
+
var ObjectGraph_1 = __importDefault(require("./graph/ObjectGraph"));
|
|
9
|
+
var injectHook_1 = __importDefault(require("./injectHook"));
|
|
10
|
+
var ComponentInjector_1 = __importDefault(require("./injectors/components/ComponentInjector"));
|
|
11
|
+
var Provides_1 = __importDefault(require("./Provides"));
|
|
12
|
+
var injectClass_1 = require("./decorators/injectClass");
|
|
13
|
+
var Obsidian_1 = __importDefault(require("./Obsidian"));
|
|
14
|
+
exports.Graph = Graph_1.default;
|
|
15
|
+
exports.ObjectGraph = ObjectGraph_1.default;
|
|
16
|
+
exports.injectHook = injectHook_1.default;
|
|
17
|
+
exports.Provides = Provides_1.default;
|
|
18
|
+
exports.Injectable = injectClass_1.Injectable;
|
|
19
|
+
exports.Inject = injectClass_1.Inject;
|
|
20
|
+
exports.Obsidian = new Obsidian_1.default();
|
|
21
|
+
var componentInjector = new ComponentInjector_1.default();
|
|
22
|
+
var injectComponent = function (__Target, __Graph) { return componentInjector.inject(__Target, __Graph); };
|
|
23
|
+
exports.injectComponent = injectComponent;
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,6DAAwC;AACxC,oEAA+C;AAC/C,4DAAuC;AACvC,+FAAyE;AACzE,wDAAmC;AACnC,wDAAwF;AACxF,wDAAmC;AAEtB,QAAA,KAAK,GAAG,eAAM,CAAC;AACf,QAAA,WAAW,GAAG,qBAAY,CAAC;AAC3B,QAAA,UAAU,GAAG,oBAAW,CAAC;AACzB,QAAA,QAAQ,GAAG,kBAAS,CAAC;AACrB,QAAA,UAAU,GAAG,wBAAW,CAAC;AACzB,QAAA,MAAM,GAAG,oBAAO,CAAC;AACjB,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,QAAoC,EACpC,OAAoC,IACjC,OAAA,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA3C,CAA2C,CAAC;AAHpC,QAAA,eAAe,mBAGqB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Constructable } from '@Obsidian';
|
|
2
|
+
import 'reflect-metadata';
|
|
3
|
+
import ObjectGraph from './graph/ObjectGraph';
|
|
4
|
+
export default function injectHook<S, T>(target: (args: S) => T, Graph: Constructable<ObjectGraph>): (args?: Partial<S> | undefined) => T;
|
|
5
|
+
//# sourceMappingURL=injectHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectHook.d.ts","sourceRoot":"","sources":["../../src/injectHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,kBAAkB,CAAC;AAE1B,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAG9C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,sCACpE,CAAC,CAS9B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var react_1 = require("react");
|
|
7
|
+
require("reflect-metadata");
|
|
8
|
+
var GraphRegistry_1 = __importDefault(require("./graph/registry/GraphRegistry"));
|
|
9
|
+
var ReferenceCounter_1 = __importDefault(require("./ReferenceCounter"));
|
|
10
|
+
function injectHook(target, Graph) {
|
|
11
|
+
return function (args) {
|
|
12
|
+
var graph = (0, react_1.useState)(GraphRegistry_1.default.resolve(Graph, args))[0];
|
|
13
|
+
(0, react_1.useEffect)(function () {
|
|
14
|
+
ReferenceCounter_1.default.retain(graph);
|
|
15
|
+
return function () { return ReferenceCounter_1.default.release(graph, function (g) { return GraphRegistry_1.default.clear(g); }); };
|
|
16
|
+
}, [graph]);
|
|
17
|
+
return target(new Proxy(args !== null && args !== void 0 ? args : {}, new Injector(graph)));
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.default = injectHook;
|
|
21
|
+
var Injector = /** @class */ (function () {
|
|
22
|
+
function Injector(graph) {
|
|
23
|
+
this.graph = graph;
|
|
24
|
+
}
|
|
25
|
+
Injector.prototype.get = function (obj, property, receiver) {
|
|
26
|
+
return property in obj ? obj[property] : this.graph.retrieve(property, receiver);
|
|
27
|
+
};
|
|
28
|
+
return Injector;
|
|
29
|
+
}());
|
|
30
|
+
//# sourceMappingURL=injectHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectHook.js","sourceRoot":"","sources":["../../src/injectHook.ts"],"names":[],"mappings":";;;;;AACA,+BAA4C;AAC5C,4BAA0B;AAC1B,iFAA2D;AAE3D,wEAAkD;AAElD,SAAwB,UAAU,CAAO,MAAsB,EAAE,KAAiC;IAChG,OAAO,UAAC,IAAiB;QAChB,IAAA,KAAK,GAAI,IAAA,gBAAQ,EAAC,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAhD,CAAiD;QAC7D,IAAA,iBAAS,EAAC;YACR,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,cAAM,OAAA,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC,EAA9D,CAA8D,CAAC;QAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEZ,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAVD,6BAUC;AAED;IACE,kBAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAE1C,sBAAG,GAAH,UAAI,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IACH,eAAC;AAAD,CAAC,AAND,IAMC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Constructable } from '@Obsidian';
|
|
3
|
+
import 'reflect-metadata';
|
|
4
|
+
import ObjectGraph from '../../graph/ObjectGraph';
|
|
5
|
+
export default class ComponentInjector {
|
|
6
|
+
inject<P>(Target: React.FunctionComponent<P>, Graph: Constructable<ObjectGraph>): React.FunctionComponent<Partial<P>>;
|
|
7
|
+
private wrapComponent;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ComponentInjector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,CAAC,CAAC,EACN,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAMtC,OAAO,CAAC,aAAa;CAUtB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
var react_1 = __importStar(require("react"));
|
|
26
|
+
var hoist_non_react_statics_1 = __importDefault(require("hoist-non-react-statics"));
|
|
27
|
+
require("reflect-metadata");
|
|
28
|
+
var PropsInjector_1 = __importDefault(require("./PropsInjector"));
|
|
29
|
+
var useGraph_1 = __importDefault(require("./useGraph"));
|
|
30
|
+
var ComponentInjector = /** @class */ (function () {
|
|
31
|
+
function ComponentInjector() {
|
|
32
|
+
}
|
|
33
|
+
ComponentInjector.prototype.inject = function (Target, Graph) {
|
|
34
|
+
var Wrapped = this.wrapComponent(Target, Graph);
|
|
35
|
+
(0, hoist_non_react_statics_1.default)(Wrapped, Target);
|
|
36
|
+
return Wrapped;
|
|
37
|
+
};
|
|
38
|
+
ComponentInjector.prototype.wrapComponent = function (Target, Graph) {
|
|
39
|
+
return function (passedProps) {
|
|
40
|
+
var graph = (0, useGraph_1.default)(Graph, passedProps);
|
|
41
|
+
var proxiedProps = (0, react_1.useState)(new PropsInjector_1.default(graph).inject(passedProps))[0];
|
|
42
|
+
return react_1.default.createElement(react_1.default.Fragment, null, Target(proxiedProps));
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
return ComponentInjector;
|
|
46
|
+
}());
|
|
47
|
+
exports.default = ComponentInjector;
|
|
48
|
+
//# sourceMappingURL=ComponentInjector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AAExC,oFAA2D;AAC3D,4BAA0B;AAE1B,kEAA4C;AAC5C,wDAAkC;AAElC;IAAA;IAoBA,CAAC;IAnBC,kCAAM,GAAN,UACE,MAAkC,EAClC,KAAiC;QAEjC,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yCAAa,GAArB,UACE,MAAkC,EAClC,KAAiC;QAEjC,OAAO,UAAC,WAAuB;YAC7B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACpC,IAAA,YAAY,GAAI,IAAA,gBAAQ,EAAC,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAA1D,CAA2D;YAC9E,OAAO,8DAAG,MAAM,CAAC,YAA4B,CAAC,CAAI,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC;IACH,wBAAC;AAAD,CAAC,AApBD,IAoBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropsInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/PropsInjector.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,KAAK;IAC1B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAEtC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAQ3C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var PropsInjector = /** @class */ (function () {
|
|
4
|
+
function PropsInjector(graph) {
|
|
5
|
+
this.graph = graph;
|
|
6
|
+
}
|
|
7
|
+
PropsInjector.prototype.inject = function (passedProps) {
|
|
8
|
+
var _this = this;
|
|
9
|
+
// eslint-disable-next-line prefer-object-spread
|
|
10
|
+
return new Proxy(Object.assign({}, passedProps), {
|
|
11
|
+
get: function (target, p, receiver) {
|
|
12
|
+
return p in target ? Reflect.get(target, p, receiver) : _this.graph.retrieve(p, receiver);
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
return PropsInjector;
|
|
17
|
+
}());
|
|
18
|
+
exports.default = PropsInjector;
|
|
19
|
+
//# sourceMappingURL=PropsInjector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropsInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/PropsInjector.ts"],"names":[],"mappings":";;AAEA;IACE,uBAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAE1C,8BAAM,GAAN,UAAO,WAAkB;QAAzB,iBAOC;QANC,gDAAgD;QAChD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE;YAC/C,GAAG,EAAE,UAAC,MAAc,EAAE,CAAS,EAAE,QAAa;gBAC5C,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3F,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACH,oBAAC;AAAD,CAAC,AAXD,IAWC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,WAAW,MAAM,uBAAuB,CAAC;mCAItB,cAAc,WAAW,CAAC;AAApD,wBAOE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var react_1 = require("react");
|
|
7
|
+
var GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
|
+
var ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
|
|
9
|
+
exports.default = (function (Graph, props) {
|
|
10
|
+
var graph = (0, react_1.useState)(GraphRegistry_1.default.resolve(Graph, props))[0];
|
|
11
|
+
(0, react_1.useEffect)(function () {
|
|
12
|
+
ReferenceCounter_1.default.retain(graph);
|
|
13
|
+
return function () { return ReferenceCounter_1.default.release(graph, function (g) { return GraphRegistry_1.default.clear(g); }); };
|
|
14
|
+
}, [graph]);
|
|
15
|
+
return graph;
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=useGraph.js.map
|