react-obsidian 0.0.13 → 0.0.17
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/README.md +72 -9
- package/babel.config.js +5 -4
- package/dist/src/Obsidian.d.ts +1 -0
- package/dist/src/Obsidian.d.ts.map +1 -1
- package/dist/src/Obsidian.js +4 -0
- package/dist/src/Obsidian.js.map +1 -1
- package/dist/src/decorators/Singleton.d.ts +1 -1
- package/dist/src/decorators/Singleton.d.ts.map +1 -1
- package/dist/src/decorators/inject/Inject.d.ts +2 -0
- package/dist/src/decorators/inject/Inject.d.ts.map +1 -0
- package/dist/src/decorators/inject/Inject.js +21 -0
- package/dist/src/decorators/inject/Inject.js.map +1 -0
- package/dist/src/decorators/inject/Injectable.d.ts +4 -0
- package/dist/src/decorators/inject/Injectable.d.ts.map +1 -0
- package/dist/src/decorators/inject/Injectable.js +13 -0
- package/dist/src/decorators/inject/Injectable.js.map +1 -0
- package/dist/src/decorators/inject/LazyInject.d.ts +2 -0
- package/dist/src/decorators/inject/LazyInject.d.ts.map +1 -0
- package/dist/src/decorators/inject/LazyInject.js +15 -0
- package/dist/src/decorators/inject/LazyInject.js.map +1 -0
- package/dist/src/graph/ObjectGraph.d.ts +2 -0
- package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
- package/dist/src/graph/ObjectGraph.js +6 -1
- package/dist/src/graph/ObjectGraph.js.map +1 -1
- package/dist/src/graph/ProviderBinder.d.ts.map +1 -1
- package/dist/src/graph/ProviderBinder.js +2 -3
- package/dist/src/graph/ProviderBinder.js.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.d.ts +3 -0
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.js +11 -0
- package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/injectors/class/ClassInjector.d.ts +12 -0
- package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -0
- package/dist/src/injectors/class/ClassInjector.js +60 -0
- package/dist/src/injectors/class/ClassInjector.js.map +1 -0
- package/dist/src/injectors/class/ConstructorArgs.d.ts +8 -0
- package/dist/src/injectors/class/ConstructorArgs.d.ts.map +1 -0
- package/dist/src/injectors/class/ConstructorArgs.js +25 -0
- package/dist/src/injectors/class/ConstructorArgs.js.map +1 -0
- package/dist/src/injectors/class/InjectionMetadata.d.ts +15 -0
- package/dist/src/injectors/class/InjectionMetadata.d.ts.map +1 -0
- package/dist/src/injectors/class/InjectionMetadata.js +41 -0
- package/dist/src/injectors/class/InjectionMetadata.js.map +1 -0
- package/dist/src/injectors/class/LazyInjector.d.ts +8 -0
- package/dist/src/injectors/class/LazyInjector.d.ts.map +1 -0
- package/dist/src/injectors/class/LazyInjector.js +28 -0
- package/dist/src/injectors/class/LazyInjector.js.map +1 -0
- package/dist/src/injectors/components/ComponentInjector.d.ts +0 -1
- package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.js +0 -1
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
- package/dist/test/integration/fixtures/MainGraph.d.ts +1 -0
- package/dist/test/integration/fixtures/MainGraph.d.ts.map +1 -1
- package/dist/test/integration/fixtures/MainGraph.js +10 -0
- package/dist/test/integration/fixtures/MainGraph.js.map +1 -1
- package/dist/test/integration/fixtures/injectedValues.d.ts +1 -0
- package/dist/test/integration/fixtures/injectedValues.d.ts.map +1 -1
- package/dist/test/integration/fixtures/injectedValues.js +1 -0
- package/dist/test/integration/fixtures/injectedValues.js.map +1 -1
- package/dist/testkit/index.d.ts +6 -5
- package/dist/testkit/index.d.ts.map +1 -1
- package/dist/testkit/index.js +18 -11
- package/dist/testkit/index.js.map +1 -1
- package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.d.ts +4 -2
- package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts.map +1 -0
- package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.js +28 -4
- package/dist/transformers/babel-plugin-obsidian/helpers/index.js.map +1 -0
- package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/index.d.ts +0 -0
- package/dist/transformers/babel-plugin-obsidian/index.d.ts.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/index.js +45 -0
- package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/index.d.ts +10 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/index.d.ts.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/index.js +14 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/index.js.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/method.d.ts +4 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/method.d.ts.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/method.js +26 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/method.js.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.d.ts +4 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.d.ts.map +1 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.js +14 -0
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.js.map +1 -0
- package/example/babel.config.js +2 -2
- package/example/ios/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/jest.config.js +4 -0
- package/jest.setup-after-env.js +1 -0
- package/jest.setup.ts +1 -0
- package/package.json +14 -12
- package/src/Obsidian.ts +5 -0
- package/src/decorators/Singleton.ts +1 -1
- package/src/decorators/inject/Inject.ts +17 -0
- package/src/decorators/inject/Injectable.ts +8 -0
- package/src/decorators/inject/LazyInject.ts +8 -0
- package/src/graph/ObjectGraph.ts +7 -0
- package/src/graph/ProviderBinder.ts +2 -3
- package/src/graph/registry/GraphRegistry.ts +13 -0
- package/src/index.ts +5 -2
- package/src/injectors/class/ClassInjector.ts +49 -0
- package/src/injectors/class/ConstructorArgs.ts +20 -0
- package/src/injectors/class/InjectionMetadata.ts +57 -0
- package/src/injectors/class/LazyInjector.ts +22 -0
- package/src/injectors/components/ComponentInjector.tsx +0 -1
- package/testkit/index.ts +13 -14
- package/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.ts +38 -2
- package/transformers/babel-plugin-obsidian/index.ts +46 -0
- package/transformers/babel-plugin-obsidian/unmagler/index.ts +9 -0
- package/transformers/babel-plugin-obsidian/unmagler/method.ts +31 -0
- package/transformers/babel-plugin-obsidian/unmagler/property.ts +21 -0
- package/dist/src/decorators/injectClass.d.ts +0 -7
- package/dist/src/decorators/injectClass.d.ts.map +0 -1
- package/dist/src/decorators/injectClass.js +0 -34
- package/dist/src/decorators/injectClass.js.map +0 -1
- package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.d.ts.map +0 -1
- package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.js.map +0 -1
- package/dist/transformers/babel-plugin-obsidian-provide/index.d.ts.map +0 -1
- package/dist/transformers/babel-plugin-obsidian-provide/index.js +0 -39
- package/dist/transformers/babel-plugin-obsidian-provide/index.js.map +0 -1
- package/src/decorators/injectClass.ts +0 -28
- package/transformers/babel-plugin-obsidian-provide/index.ts +0 -47
package/README.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# react-obsidian
|
|
2
|
-
|
|
3
2
|
> Dependency injection framework for React and React Native applications
|
|
4
3
|
|
|
4
|
+
<h5>🏗 <b>This library is still under active development.</b>
|
|
5
|
+
<br>⚠️ <b>Until we hit v1, Obsidian is not semver-compliant and all APIs are subject to change.</b></h5>
|
|
6
|
+
|
|
5
7
|
## Introduction
|
|
6
8
|
Applications are made of objects that communicate with each other. An object can depend on other objects so it can perform its responsibilities. For an object to function properly, its dependencies must be fulfilled when the object is constructed.
|
|
7
9
|
|
|
@@ -9,13 +11,32 @@ React Obsidian is a dependency injection framework for React and React Native ap
|
|
|
9
11
|
|
|
10
12
|
React Obsidian is guided by the principles of the Dependency Injection pattern, but does not strictly follow it. We allowed ourselves a degree of freedom when designing the library in order to reduce boilerplate code and reduce library footprint.
|
|
11
13
|
|
|
14
|
+
* [Installation](https://github.com/wix-incubator/react-obsidian#installation)
|
|
15
|
+
* [Prerequisites](https://github.com/wix-incubator/react-obsidian#prerequisites)
|
|
16
|
+
* [Usage](https://github.com/wix-incubator/react-obsidian#usage)
|
|
17
|
+
* [Declare an object graph](https://github.com/wix-incubator/react-obsidian#declare-an-object-graph)
|
|
18
|
+
* [Component injection](https://github.com/wix-incubator/react-obsidian#component-injection)
|
|
19
|
+
* [Hooks injection](https://github.com/wix-incubator/react-obsidian#hooks-injection)
|
|
20
|
+
* [Class injection](https://github.com/wix-incubator/react-obsidian#class-injection)
|
|
21
|
+
* [Injecting properties](https://github.com/wix-incubator/react-obsidian#injecting-properties)
|
|
22
|
+
* [Injecting constructor arguments](https://github.com/wix-incubator/react-obsidian#injecting-constructor-arguments)
|
|
23
|
+
* [Obtaining dependencies from a graph](https://github.com/wix-incubator/react-obsidian#obtaining-dependencies-from-a-graph)
|
|
24
|
+
* [Advance usage](https://github.com/wix-incubator/react-obsidian#advance-usage)
|
|
25
|
+
* [Accessing props in graphs](https://github.com/wix-incubator/react-obsidian#accessing-props-in-graphs)
|
|
26
|
+
* [Singleton graphs and providers](https://github.com/wix-incubator/react-obsidian#singleton-graphs-and-providers)
|
|
27
|
+
* [Graph middlewares](https://github.com/wix-incubator/react-obsidian#graph-middlewares)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
12
33
|
## Installation
|
|
13
34
|
|
|
14
35
|
``` shell
|
|
15
36
|
npm install react-obsidian
|
|
16
37
|
```
|
|
17
38
|
|
|
18
|
-
See the #Prerequisites section for additional requirements.
|
|
39
|
+
See the [#Prerequisites](https://github.com/wix-incubator/react-obsidian#prerequisites) section for additional requirements.
|
|
19
40
|
|
|
20
41
|
## Usage
|
|
21
42
|
|
|
@@ -32,7 +53,7 @@ Notice how the biLogger function receives an `httpClient` as an argument. This m
|
|
|
32
53
|
|
|
33
54
|
``` typescript
|
|
34
55
|
@Singleton() @Graph()
|
|
35
|
-
|
|
56
|
+
class ApplicationGraph extends ObjectGraph {
|
|
36
57
|
@Provides()
|
|
37
58
|
httpClient(): HttpClient {
|
|
38
59
|
return new HttpClient();
|
|
@@ -53,7 +74,6 @@ interface InjectedComponentProps {
|
|
|
53
74
|
biLogger: BiLogger;
|
|
54
75
|
}
|
|
55
76
|
|
|
56
|
-
// When injecting components - we must use destructuring in order for Obsidian to know which dependencies to inject.
|
|
57
77
|
const InjectedComponent = ({ biLogger }: InjectedComponentProps) => (
|
|
58
78
|
<>
|
|
59
79
|
<button onclick={biLogger.logButtonClick}>Click Me</button>
|
|
@@ -97,12 +117,13 @@ const Component = () => (
|
|
|
97
117
|
```
|
|
98
118
|
|
|
99
119
|
### Class injection
|
|
100
|
-
Obsidian supports
|
|
120
|
+
Obsidian supports injecting both class properties and constructor arguments.
|
|
101
121
|
|
|
122
|
+
#### Injecting properties
|
|
102
123
|
```typescript
|
|
103
124
|
@Injectable(ApplicationGraph)
|
|
104
125
|
class ButtonController {
|
|
105
|
-
@Inject biLogger!: BiLogger;
|
|
126
|
+
@Inject() biLogger!: BiLogger;
|
|
106
127
|
|
|
107
128
|
onClick() {
|
|
108
129
|
this.biLogger.logButtonClick();
|
|
@@ -110,6 +131,25 @@ class ButtonController {
|
|
|
110
131
|
}
|
|
111
132
|
```
|
|
112
133
|
|
|
134
|
+
#### Injecting constructor arguments
|
|
135
|
+
```typescript
|
|
136
|
+
@Injectable(ApplicationGraph)
|
|
137
|
+
class Presenter {
|
|
138
|
+
constructor(@Inject() public biLogger: BiLogger) { }
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
TypeScript's compiler won't let you construct the class without providing the argument `anotherString` as it's not optional.
|
|
143
|
+
If you want to be able to instantiate the class yourself without providing arguments, you'll also need to declare a constructor overload that receives optional arguments.
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
@Injectable(ApplicationGraph)
|
|
147
|
+
class Presenter {
|
|
148
|
+
constructor(biLogger?: BiLogger);
|
|
149
|
+
constructor(@Inject() public biLogger: BiLogger) { }
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
113
153
|
### Obtaining dependencies from a graph
|
|
114
154
|
Dependencies can also be obtained by accessing the graph that provides them.
|
|
115
155
|
|
|
@@ -120,6 +160,24 @@ Obsidian.obtain(ApplicationGraph).biLogger();
|
|
|
120
160
|
> Note: While the function that provides the `biLogger` accepts an argument of type `HttpClient`, when obtaining dependencies directly from the graph, we don't provide dependencies ourselves as they are resolved by Obsidian.
|
|
121
161
|
|
|
122
162
|
## Advance usage
|
|
163
|
+
### Accessing props in graphs
|
|
164
|
+
If a graph is instantiated in order to inject a component, then it receives the component's props in the constructor.
|
|
165
|
+
```typescript
|
|
166
|
+
@Graph()
|
|
167
|
+
class ProfileScreenGraph extends ObjectGraph<ProfileScreenProps> {
|
|
168
|
+
private profile: UserProfile;
|
|
169
|
+
|
|
170
|
+
constructor(props: ProfileScreenProps) {
|
|
171
|
+
super(props);
|
|
172
|
+
this.profile = props.profile;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@Provides()
|
|
176
|
+
profileFetcher(): ProfileFetcher {
|
|
177
|
+
return new ProfileFetcher(this.profile);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
123
181
|
### Singleton graphs and providers
|
|
124
182
|
Graphs and Providers can be marked as singletons with the `@Singleton` decorator. When a graph is marked as a singleton, when an instance of that graph is requested, Obsidian will reuse the existing instance. Graphs that are not annotated with the `@Singleton` decorator will be instantiated each time they are needed for injection.
|
|
125
183
|
|
|
@@ -208,11 +266,16 @@ Obsidian relies on reflection to resolve dependencies. Production code is typica
|
|
|
208
266
|
Add the transformer to the list of plugins in your `.babel` file.
|
|
209
267
|
```js
|
|
210
268
|
module.exports = {
|
|
211
|
-
presets: [
|
|
269
|
+
presets: [
|
|
270
|
+
'module:metro-react-native-babel-preset',
|
|
271
|
+
['@babel/preset-typescript', {'onlyRemoveTypeImports': true}]
|
|
272
|
+
],
|
|
212
273
|
plugins: [
|
|
274
|
+
react-obsidian/dist/transformers/babel-plugin-obsidian,
|
|
213
275
|
['@babel/plugin-proposal-decorators', {legacy: true}],
|
|
214
|
-
|
|
215
|
-
|
|
276
|
+
['@babel/plugin-proposal-class-properties', { legacy: true }],
|
|
277
|
+
'babel-plugin-parameter-decorator'
|
|
278
|
+
]
|
|
216
279
|
};
|
|
217
280
|
```
|
|
218
281
|
|
package/babel.config.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
presets: [
|
|
3
|
-
['@babel/preset-env', { targets: { node: 'current' }
|
|
4
|
-
'@babel/preset-typescript',
|
|
3
|
+
['@babel/preset-env', { targets: { node: 'current' }}],
|
|
4
|
+
['@babel/preset-typescript', {'onlyRemoveTypeImports': true}],
|
|
5
5
|
'@babel/preset-react',
|
|
6
6
|
],
|
|
7
7
|
plugins: [
|
|
8
|
-
`${__dirname}/dist/transformers/babel-plugin-obsidian
|
|
8
|
+
`${__dirname}/dist/transformers/babel-plugin-obsidian`,
|
|
9
9
|
['@babel/plugin-proposal-decorators', { legacy: true }],
|
|
10
|
-
|
|
10
|
+
'@babel/plugin-proposal-class-properties',
|
|
11
|
+
'babel-plugin-parameter-decorator'
|
|
11
12
|
],
|
|
12
13
|
};
|
package/dist/src/Obsidian.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Constructable, GraphInternals, ServiceLocator } from './types';
|
|
|
3
3
|
import { GraphMiddleware } from './graph/registry/GraphMiddleware';
|
|
4
4
|
export default class Obsidian {
|
|
5
5
|
obtain<T extends ObjectGraph<P>, P = any>(Graph: Constructable<T>, props?: P): ServiceLocator<Omit<T, GraphInternals>>;
|
|
6
|
+
inject<T extends object>(target: T): object;
|
|
6
7
|
addGraphMiddleware(middleware: GraphMiddleware): void;
|
|
7
8
|
clearGraphMiddlewares(): void;
|
|
8
9
|
}
|
|
@@ -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,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,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,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,KAAK,CAAC,EAAE,CAAC,GACR,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAI1C,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC;IAIlC,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB"}
|
package/dist/src/Obsidian.js
CHANGED
|
@@ -4,12 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var GraphRegistry_1 = __importDefault(require("./graph/registry/GraphRegistry"));
|
|
7
|
+
var LazyInjector_1 = __importDefault(require("./injectors/class/LazyInjector"));
|
|
7
8
|
var Obsidian = /** @class */ (function () {
|
|
8
9
|
function Obsidian() {
|
|
9
10
|
}
|
|
10
11
|
Obsidian.prototype.obtain = function (Graph, props) {
|
|
11
12
|
return GraphRegistry_1.default.resolve(Graph, props);
|
|
12
13
|
};
|
|
14
|
+
Obsidian.prototype.inject = function (target) {
|
|
15
|
+
return LazyInjector_1.default.inject(target);
|
|
16
|
+
};
|
|
13
17
|
Obsidian.prototype.addGraphMiddleware = function (middleware) {
|
|
14
18
|
GraphRegistry_1.default.addGraphMiddleware(middleware);
|
|
15
19
|
};
|
package/dist/src/Obsidian.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,iFAA2D;
|
|
1
|
+
{"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,iFAA2D;AAI3D,gFAA0D;AAE1D;IAAA;IAmBA,CAAC;IAlBC,yBAAM,GAAN,UACE,KAAuB,EACvB,KAAS;QAET,OAAO,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAiC,CAAC;IAC7E,CAAC;IAED,yBAAM,GAAN,UAAyB,MAAS;QAChC,OAAO,sBAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,qCAAkB,GAAlB,UAAmB,UAA2B;QAC5C,uBAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,wCAAqB,GAArB;QACE,uBAAa,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IACH,eAAC;AAAD,CAAC,AAnBD,IAmBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Constructable } from '
|
|
1
|
+
import { Constructable } from '../types';
|
|
2
2
|
import { ObjectGraph } from '../graph/ObjectGraph';
|
|
3
3
|
export declare function Singleton(): (constructorOrGraph: Constructable<ObjectGraph> | ObjectGraph, _property?: string | undefined, descriptor?: PropertyDescriptor | undefined) => any;
|
|
4
4
|
//# sourceMappingURL=Singleton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Singleton.d.ts","sourceRoot":"","sources":["../../../src/decorators/Singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Singleton.d.ts","sourceRoot":"","sources":["../../../src/decorators/Singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,SAAS,yBAED,cAAc,WAAW,CAAC,GAAG,WAAW,kFAG3D,GAAG,CAKP"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Inject.d.ts","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":"AAGA,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,YAExB,MAAM,GAAG,GAAG,kHAWvB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.Inject = void 0;
|
|
7
|
+
var lodash_1 = require("lodash");
|
|
8
|
+
var InjectionMetadata_1 = __importDefault(require("../../injectors/class/InjectionMetadata"));
|
|
9
|
+
function Inject(name) {
|
|
10
|
+
return function (target, _propertyKey, indexOrPropertyDescriptor) {
|
|
11
|
+
var metadata = new InjectionMetadata_1.default();
|
|
12
|
+
if ((0, lodash_1.isNumber)(indexOrPropertyDescriptor)) {
|
|
13
|
+
metadata.saveConstructorParamMetadata(target, name, indexOrPropertyDescriptor);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
metadata.savePropertyMetadata(target.constructor, name);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.Inject = Inject;
|
|
21
|
+
//# sourceMappingURL=Inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Inject.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Inject.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkC;AAClC,8FAAwE;AAExE,SAAgB,MAAM,CAAC,IAAa;IAClC,OAAO,UACL,MAAoB,EACpB,YAAqB,EACrB,yBAAuD;QAEvD,IAAM,QAAQ,GAAG,IAAI,2BAAiB,EAAE,CAAC;QACzC,IAAI,IAAA,iBAAQ,EAAC,yBAAyB,CAAC,EAAE;YACvC,QAAQ,CAAC,4BAA4B,CAAC,MAAM,EAAE,IAAK,EAAE,yBAAyB,CAAC,CAAC;SACjF;aAAM;YACL,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC;AACJ,CAAC;AAbD,wBAaC"}
|
|
@@ -0,0 +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,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,CAE3D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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.Injectable = void 0;
|
|
7
|
+
var GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
|
+
var ClassInjector_1 = __importDefault(require("../../injectors/class/ClassInjector"));
|
|
9
|
+
function Injectable(Graph) {
|
|
10
|
+
return new ClassInjector_1.default(GraphRegistry_1.default).inject(Graph);
|
|
11
|
+
}
|
|
12
|
+
exports.Injectable = Injectable;
|
|
13
|
+
//# sourceMappingURL=Injectable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../../../src/decorators/inject/Injectable.ts"],"names":[],"mappings":";;;;;;AAEA,qFAA+D;AAC/D,sFAAgE;AAEhE,SAAgB,UAAU,CAAC,KAA2B;IACpD,OAAO,IAAI,uBAAa,CAAC,uBAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LazyInject.d.ts","sourceRoot":"","sources":["../../../../src/decorators/inject/LazyInject.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,CAK7C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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.LazyInject = void 0;
|
|
7
|
+
var InjectionMetadata_1 = __importDefault(require("../../injectors/class/InjectionMetadata"));
|
|
8
|
+
function LazyInject(name) {
|
|
9
|
+
return function (target) {
|
|
10
|
+
var metadata = new InjectionMetadata_1.default();
|
|
11
|
+
metadata.saveLazyPropertyMetadata(target.constructor, name);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.LazyInject = LazyInject;
|
|
15
|
+
//# sourceMappingURL=LazyInject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LazyInject.js","sourceRoot":"","sources":["../../../../src/decorators/inject/LazyInject.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAwE;AAExE,SAAgB,UAAU,CAAC,IAAa;IACtC,OAAO,UAAC,MAAc;QACpB,IAAM,QAAQ,GAAG,IAAI,2BAAiB,EAAE,CAAC;QACzC,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AALD,gCAKC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Graph } from './Graph';
|
|
2
|
+
import { Constructable } from '../types';
|
|
2
3
|
export declare abstract class ObjectGraph<T = unknown> implements Graph {
|
|
3
4
|
protected _props?: T | undefined;
|
|
4
5
|
private propertyRetriever;
|
|
@@ -6,4 +7,5 @@ export declare abstract class ObjectGraph<T = unknown> implements Graph {
|
|
|
6
7
|
constructor(_props?: T | undefined);
|
|
7
8
|
retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
|
|
8
9
|
}
|
|
10
|
+
export declare function isGraph(object: Constructable<ObjectGraph> | any): object is Constructable<ObjectGraph>;
|
|
9
11
|
//# sourceMappingURL=ObjectGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ObjectGraph = void 0;
|
|
15
|
+
exports.isGraph = exports.ObjectGraph = void 0;
|
|
16
16
|
var lodash_1 = require("lodash");
|
|
17
17
|
var Memoize_1 = __importDefault(require("../decorators/Memoize"));
|
|
18
18
|
var ProviderBinder_1 = require("./ProviderBinder");
|
|
@@ -41,4 +41,9 @@ var ObjectGraph = /** @class */ (function () {
|
|
|
41
41
|
return ObjectGraph;
|
|
42
42
|
}());
|
|
43
43
|
exports.ObjectGraph = ObjectGraph;
|
|
44
|
+
Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
|
|
45
|
+
function isGraph(object) {
|
|
46
|
+
return Reflect.get(object, 'typeDiscriminator') === 'ObjectGraph';
|
|
47
|
+
}
|
|
48
|
+
exports.isGraph = isGraph;
|
|
44
49
|
//# sourceMappingURL=ObjectGraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAGpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAND,sBAAI,6BAAI;aAAR;YACE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IAVD;QADC,IAAA,iBAAO,GAAE;;;2CAGT;IASH,kBAAC;CAAA,AAfD,IAeC;AAfqB,kCAAW;AAiBjC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC;AAFD,0BAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBinder.d.ts","sourceRoot":"","sources":["../../../src/graph/ProviderBinder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"ProviderBinder.d.ts","sourceRoot":"","sources":["../../../src/graph/ProviderBinder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAM/D"}
|
|
@@ -8,10 +8,9 @@ exports.bindProviders = void 0;
|
|
|
8
8
|
var ProvidedPropertiesStore_1 = __importDefault(require("../ProvidedPropertiesStore"));
|
|
9
9
|
function bindProviders(graph) {
|
|
10
10
|
ProvidedPropertiesStore_1.default.getMangledProperties(graph)
|
|
11
|
+
.filter(function (method) { return graph[method]; })
|
|
11
12
|
.forEach(function (method) {
|
|
12
|
-
|
|
13
|
-
graph[method] = graph[method].bind(graph);
|
|
14
|
-
}
|
|
13
|
+
graph[method] = graph[method].bind(graph);
|
|
15
14
|
});
|
|
16
15
|
}
|
|
17
16
|
exports.bindProviders = bindProviders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBinder.js","sourceRoot":"","sources":["../../../src/graph/ProviderBinder.ts"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,uFAAiE;AAGjE,SAAgB,aAAa,CAAC,KAAkC;IAC9D,iCAAuB,CAAC,oBAAoB,CAAC,KAAK,CAAC;SAChD,
|
|
1
|
+
{"version":3,"file":"ProviderBinder.js","sourceRoot":"","sources":["../../../src/graph/ProviderBinder.ts"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,uFAAiE;AAGjE,SAAgB,aAAa,CAAC,KAAkC;IAC9D,iCAAuB,CAAC,oBAAoB,CAAC,KAAK,CAAC;SAChD,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,KAAK,CAAC,MAAM,CAAC,EAAb,CAAa,CAAC;SACjC,OAAO,CAAC,UAAC,MAAM;QACd,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC;AAND,sCAMC"}
|
|
@@ -4,10 +4,12 @@ import { Middleware } from './Middleware';
|
|
|
4
4
|
export declare class GraphRegistry {
|
|
5
5
|
private readonly constructorToInstance;
|
|
6
6
|
private readonly instanceToConstructor;
|
|
7
|
+
private readonly nameToInstance;
|
|
7
8
|
private readonly graphToSubgraphs;
|
|
8
9
|
private readonly graphMiddlewares;
|
|
9
10
|
register(constructor: Constructable<Graph>, subgraphs?: Constructable<Graph>[]): void;
|
|
10
11
|
getSubgraphs(graph: Graph): Graph[];
|
|
12
|
+
getGraphInstance(name: string): Graph;
|
|
11
13
|
resolve<T extends Graph>(Graph: Constructable<T>, props?: any): T;
|
|
12
14
|
private has;
|
|
13
15
|
private getFirst;
|
|
@@ -16,6 +18,7 @@ export declare class GraphRegistry {
|
|
|
16
18
|
clear(graph: Graph): void;
|
|
17
19
|
addGraphMiddleware(middleware: Middleware<Graph>): void;
|
|
18
20
|
clearGraphMiddlewares(): void;
|
|
21
|
+
reset(): void;
|
|
19
22
|
}
|
|
20
23
|
declare const _default: GraphRegistry;
|
|
21
24
|
export default _default;
|
|
@@ -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;AAG1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAE/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,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;IASjE,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,GAAG;
|
|
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;AAG1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAE/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIrC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IASjE,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAInB,KAAK,CAAC,KAAK,EAAE,KAAK;IAOlB,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,qBAAqB;IAIrB,KAAK;CAKN;;AAED,wBAAmC"}
|
|
@@ -9,6 +9,7 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
9
9
|
function GraphRegistry() {
|
|
10
10
|
this.constructorToInstance = new Map();
|
|
11
11
|
this.instanceToConstructor = new Map();
|
|
12
|
+
this.nameToInstance = new Map();
|
|
12
13
|
this.graphToSubgraphs = new Map();
|
|
13
14
|
this.graphMiddlewares = new GraphMiddlewareChain_1.default();
|
|
14
15
|
}
|
|
@@ -23,6 +24,9 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
23
24
|
var subgraphs = (_a = this.graphToSubgraphs.get(Graph)) !== null && _a !== void 0 ? _a : new Set();
|
|
24
25
|
return Array.from(subgraphs).map(function (G) { return _this.resolve(G); });
|
|
25
26
|
};
|
|
27
|
+
GraphRegistry.prototype.getGraphInstance = function (name) {
|
|
28
|
+
return this.nameToInstance.get(name);
|
|
29
|
+
};
|
|
26
30
|
GraphRegistry.prototype.resolve = function (Graph, props) {
|
|
27
31
|
if (this.isSingleton(Graph) && this.has(Graph)) {
|
|
28
32
|
return this.getFirst(Graph);
|
|
@@ -43,6 +47,7 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
43
47
|
graphs.add(graph);
|
|
44
48
|
this.constructorToInstance.set(Graph, graphs);
|
|
45
49
|
this.instanceToConstructor.set(graph, Graph);
|
|
50
|
+
this.nameToInstance.set(graph.name, graph);
|
|
46
51
|
};
|
|
47
52
|
GraphRegistry.prototype.isSingleton = function (Graph) {
|
|
48
53
|
var _a;
|
|
@@ -52,6 +57,7 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
52
57
|
var Graph = this.instanceToConstructor.get(graph);
|
|
53
58
|
this.instanceToConstructor.delete(graph);
|
|
54
59
|
this.constructorToInstance.get(Graph).delete(graph);
|
|
60
|
+
this.nameToInstance.delete(graph.name);
|
|
55
61
|
};
|
|
56
62
|
GraphRegistry.prototype.addGraphMiddleware = function (middleware) {
|
|
57
63
|
this.graphMiddlewares.add(middleware);
|
|
@@ -59,6 +65,11 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
59
65
|
GraphRegistry.prototype.clearGraphMiddlewares = function () {
|
|
60
66
|
this.graphMiddlewares.clear();
|
|
61
67
|
};
|
|
68
|
+
GraphRegistry.prototype.reset = function () {
|
|
69
|
+
this.instanceToConstructor.clear();
|
|
70
|
+
this.constructorToInstance.clear();
|
|
71
|
+
this.nameToInstance.clear();
|
|
72
|
+
};
|
|
62
73
|
return GraphRegistry;
|
|
63
74
|
}());
|
|
64
75
|
exports.GraphRegistry = GraphRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;;AAGA,gFAA0D;AAE1D;IAAA;QACmB,0BAAqB,GAAG,IAAI,GAAG,EAAoC,CAAC;QACpE,0BAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,qBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;QAC9E,qBAAgB,GAAG,IAAI,8BAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -8,11 +8,13 @@ export { Singleton } from './decorators/Singleton';
|
|
|
8
8
|
export { ObjectGraph } from './graph/ObjectGraph';
|
|
9
9
|
export { Graph as IGraph } from './graph/Graph';
|
|
10
10
|
export { Provides } from './decorators/provides/Provides';
|
|
11
|
-
export { Injectable } from './decorators/
|
|
12
|
-
export { Inject } from './decorators/
|
|
11
|
+
export { Injectable } from './decorators/inject/Injectable';
|
|
12
|
+
export { Inject } from './decorators/inject/Inject';
|
|
13
|
+
export { LazyInject } from './decorators/inject/LazyInject';
|
|
13
14
|
export { GraphMiddleware } from './graph/registry/GraphMiddleware';
|
|
14
15
|
export { GraphResolveChain as ResolveChain } from './graph/registry/GraphResolveChain';
|
|
15
16
|
export declare const Obsidian: _Obsidian;
|
|
16
17
|
export declare const injectComponent: <P>(Target: React.FunctionComponent<P>, Graph: Constructable<_ObjectGraph>) => React.FunctionComponent<Partial<P>>;
|
|
17
18
|
export declare const injectHook: <Args, Result>(hook: (args: Args) => Result, Graph: Constructable<_ObjectGraph>) => (args?: Partial<Args> | undefined) => Result;
|
|
19
|
+
export { testKit } from '../testkit';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvF,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,iDAEnB,cAAc,YAAY,CAAC,wCACQ,CAAC;AAG7C,eAAO,MAAM,UAAU,sDAEd,cAAc,YAAY,CAAC,iDACC,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.injectHook = exports.injectComponent = exports.Obsidian = exports.GraphMiddleware = exports.Inject = exports.Injectable = exports.Provides = exports.ObjectGraph = exports.Singleton = exports.Graph = void 0;
|
|
16
|
+
exports.testKit = exports.injectHook = exports.injectComponent = exports.Obsidian = exports.GraphMiddleware = exports.LazyInject = exports.Inject = exports.Injectable = exports.Provides = exports.ObjectGraph = exports.Singleton = exports.Graph = void 0;
|
|
17
17
|
var ComponentInjector_1 = __importDefault(require("./injectors/components/ComponentInjector"));
|
|
18
18
|
var Obsidian_1 = __importDefault(require("./Obsidian"));
|
|
19
19
|
var HookInjector_1 = __importDefault(require("./injectors/hooks/HookInjector"));
|
|
@@ -26,10 +26,12 @@ var ObjectGraph_1 = require("./graph/ObjectGraph");
|
|
|
26
26
|
Object.defineProperty(exports, "ObjectGraph", { enumerable: true, get: function () { return ObjectGraph_1.ObjectGraph; } });
|
|
27
27
|
var Provides_1 = require("./decorators/provides/Provides");
|
|
28
28
|
Object.defineProperty(exports, "Provides", { enumerable: true, get: function () { return Provides_1.Provides; } });
|
|
29
|
-
var
|
|
30
|
-
Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return
|
|
31
|
-
var
|
|
32
|
-
Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return
|
|
29
|
+
var Injectable_1 = require("./decorators/inject/Injectable");
|
|
30
|
+
Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return Injectable_1.Injectable; } });
|
|
31
|
+
var Inject_1 = require("./decorators/inject/Inject");
|
|
32
|
+
Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return Inject_1.Inject; } });
|
|
33
|
+
var LazyInject_1 = require("./decorators/inject/LazyInject");
|
|
34
|
+
Object.defineProperty(exports, "LazyInject", { enumerable: true, get: function () { return LazyInject_1.LazyInject; } });
|
|
33
35
|
var GraphMiddleware_1 = require("./graph/registry/GraphMiddleware");
|
|
34
36
|
Object.defineProperty(exports, "GraphMiddleware", { enumerable: true, get: function () { return GraphMiddleware_1.GraphMiddleware; } });
|
|
35
37
|
exports.Obsidian = new Obsidian_1.default();
|
|
@@ -39,4 +41,6 @@ exports.injectComponent = injectComponent;
|
|
|
39
41
|
var hookInjector = new HookInjector_1.default();
|
|
40
42
|
var injectHook = function (hook, Graph) { return hookInjector.inject(hook, Graph); };
|
|
41
43
|
exports.injectHook = injectHook;
|
|
44
|
+
var testkit_1 = require("../testkit");
|
|
45
|
+
Object.defineProperty(exports, "testKit", { enumerable: true, get: function () { return testkit_1.testKit; } });
|
|
42
46
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,+FAAyE;AACzE,wDAAmC;AACnC,gFAA0D;AAG1D,0CAAwB;AAExB,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,2DAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,+FAAyE;AACzE,wDAAmC;AACnC,gFAA0D;AAG1D,0CAAwB;AAExB,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,2DAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,6DAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,qDAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,6DAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,oEAAmE;AAA1D,kHAAA,eAAe,OAAA;AAEX,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,MAAkC,EAClC,KAAkC,IAC/B,OAAA,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAvC,CAAuC,CAAC;AAHhC,QAAA,eAAe,mBAGiB;AAE7C,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AACjC,IAAM,UAAU,GAAG,UACxB,IAA4B,EAC5B,KAAkC,IAC/B,OAAA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAhC,CAAgC,CAAC;AAHzB,QAAA,UAAU,cAGe;AAEtC,sCAAqC;AAA5B,kGAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Constructable } from '../../types';
|
|
2
|
+
import { GraphRegistry } from '../../graph/registry/GraphRegistry';
|
|
3
|
+
import { Graph } from '../../graph/Graph';
|
|
4
|
+
import InjectionMetadata from './InjectionMetadata';
|
|
5
|
+
export default class ClassInjector {
|
|
6
|
+
private graphRegistry;
|
|
7
|
+
private injectionMetadata;
|
|
8
|
+
constructor(graphRegistry: GraphRegistry, injectionMetadata?: InjectionMetadata);
|
|
9
|
+
inject(Graph: Constructable<Graph>): (Target: Constructable<any>) => any;
|
|
10
|
+
private createProxyHandler;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ClassInjector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,YAChB,cAAc,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;CA8B3B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
var InjectionMetadata_1 = __importDefault(require("./InjectionMetadata"));
|
|
16
|
+
var LazyInjector_1 = require("./LazyInjector");
|
|
17
|
+
var ClassInjector = /** @class */ (function () {
|
|
18
|
+
function ClassInjector(graphRegistry, injectionMetadata) {
|
|
19
|
+
if (injectionMetadata === void 0) { injectionMetadata = new InjectionMetadata_1.default(); }
|
|
20
|
+
this.graphRegistry = graphRegistry;
|
|
21
|
+
this.injectionMetadata = injectionMetadata;
|
|
22
|
+
}
|
|
23
|
+
ClassInjector.prototype.inject = function (Graph) {
|
|
24
|
+
var _this = this;
|
|
25
|
+
return function (Target) {
|
|
26
|
+
return new Proxy(Target, _this.createProxyHandler(Graph, _this.graphRegistry, _this.injectionMetadata));
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
ClassInjector.prototype.createProxyHandler = function (Graph, graphRegistry, injectionMetadata) {
|
|
30
|
+
return new /** @class */ (function () {
|
|
31
|
+
function Handler() {
|
|
32
|
+
}
|
|
33
|
+
Handler.prototype.construct = function (target, args, newTarget) {
|
|
34
|
+
var graph = graphRegistry.resolve(Graph);
|
|
35
|
+
Reflect.defineMetadata(LazyInjector_1.GRAPH_INSTANCE_NAME_KEY, graph.name, target);
|
|
36
|
+
var argsToInject = this.injectConstructorArgs(args, graph, target);
|
|
37
|
+
var createdObject = Reflect.construct(target, argsToInject, newTarget);
|
|
38
|
+
this.injectProperties(target, createdObject, graph);
|
|
39
|
+
return createdObject;
|
|
40
|
+
};
|
|
41
|
+
Handler.prototype.injectConstructorArgs = function (args, graph, target) {
|
|
42
|
+
var argsToInject = injectionMetadata.getConstructorArgsToInject(target);
|
|
43
|
+
if (!argsToInject.hasArgs())
|
|
44
|
+
return args;
|
|
45
|
+
return __spreadArray(__spreadArray([], args, true), new Array(Math.abs(args.length - argsToInject.size())), true).map(function (value, idx) {
|
|
46
|
+
return value !== null && value !== void 0 ? value : graph.retrieve(argsToInject.getProperty(idx));
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
Handler.prototype.injectProperties = function (target, createdObject, graph) {
|
|
50
|
+
injectionMetadata.getPropertiesToInject(target).forEach(function (key) {
|
|
51
|
+
Reflect.set(createdObject, key, graph.retrieve(key));
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
return Handler;
|
|
55
|
+
}())();
|
|
56
|
+
};
|
|
57
|
+
return ClassInjector;
|
|
58
|
+
}());
|
|
59
|
+
exports.default = ClassInjector;
|
|
60
|
+
//# sourceMappingURL=ClassInjector.js.map
|