react-obsidian 0.0.17 → 0.0.18
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/.eslintrc.json +9 -3
- package/README.md +7 -1
- package/dist/src/Obsidian.d.ts +1 -1
- package/dist/src/Obsidian.d.ts.map +1 -1
- package/dist/src/Obsidian.js +2 -2
- package/dist/src/Obsidian.js.map +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/injectors/class/LazyInjector.d.ts +2 -1
- package/dist/src/injectors/class/LazyInjector.d.ts.map +1 -1
- package/dist/src/injectors/class/LazyInjector.js +2 -2
- package/dist/src/injectors/class/LazyInjector.js.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.js +5 -1
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
- package/package.json +2 -1
- package/src/Obsidian.ts +2 -2
- package/src/injectors/class/LazyInjector.ts +3 -2
package/.eslintrc.json
CHANGED
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"plugins": [
|
|
25
25
|
"react",
|
|
26
26
|
"@typescript-eslint",
|
|
27
|
-
"import-newlines"
|
|
27
|
+
"import-newlines",
|
|
28
|
+
"unused-imports"
|
|
28
29
|
],
|
|
29
30
|
"rules": {
|
|
30
31
|
"max-len": ["error", {"code": 115}],
|
|
@@ -82,8 +83,13 @@
|
|
|
82
83
|
"@typescript-eslint/quotes": ["error", "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
|
|
83
84
|
"@typescript-eslint/lines-between-class-members": "off",
|
|
84
85
|
"@typescript-eslint/no-explicit-any": "off",
|
|
85
|
-
"
|
|
86
|
-
"
|
|
86
|
+
"import/prefer-default-export": "off",
|
|
87
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
88
|
+
"unused-imports/no-unused-imports": "error",
|
|
89
|
+
"unused-imports/no-unused-vars": [
|
|
90
|
+
"error",
|
|
91
|
+
{ "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" }
|
|
92
|
+
]
|
|
87
93
|
},
|
|
88
94
|
"settings": {
|
|
89
95
|
"import/resolver": {
|
package/README.md
CHANGED
|
@@ -139,7 +139,7 @@ class Presenter {
|
|
|
139
139
|
}
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
TypeScript's compiler won't let you construct the class without providing the argument `
|
|
142
|
+
TypeScript's compiler won't let you construct the class without providing the argument `biLogger` as it's not optional.
|
|
143
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
144
|
|
|
145
145
|
```typescript
|
|
@@ -148,6 +148,9 @@ class Presenter {
|
|
|
148
148
|
constructor(biLogger?: BiLogger);
|
|
149
149
|
constructor(@Inject() public biLogger: BiLogger) { }
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
// Now you can instantiate the class without providing it's constructor dependencies
|
|
153
|
+
const presenter = new Presenter();
|
|
151
154
|
```
|
|
152
155
|
|
|
153
156
|
### Obtaining dependencies from a graph
|
|
@@ -282,6 +285,9 @@ module.exports = {
|
|
|
282
285
|
### Jest
|
|
283
286
|
react-obsidian publishes untranspiled code. If you're using Jest, you'll need to add react-obsidian to [transformIgnorePatterns](https://jestjs.io/docs/configuration#transformignorepatterns-arraystring) so it's transpiled before tests are executed.
|
|
284
287
|
|
|
288
|
+
### Peer Dependencies
|
|
289
|
+
Obsidian has a peer dependency on `lodash`.
|
|
290
|
+
|
|
285
291
|
## Related
|
|
286
292
|
|
|
287
293
|
* [InversifyJS](https://github.com/inversify/InversifyJS)
|
package/dist/src/Obsidian.d.ts
CHANGED
|
@@ -3,7 +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
|
+
inject<T extends object>(target: T, graph?: ObjectGraph): object;
|
|
7
7
|
addGraphMiddleware(middleware: GraphMiddleware): void;
|
|
8
8
|
clearGraphMiddlewares(): void;
|
|
9
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;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;
|
|
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,EAAE,KAAK,CAAC,EAAE,WAAW;IAIvD,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB"}
|
package/dist/src/Obsidian.js
CHANGED
|
@@ -11,8 +11,8 @@ var Obsidian = /** @class */ (function () {
|
|
|
11
11
|
Obsidian.prototype.obtain = function (Graph, props) {
|
|
12
12
|
return GraphRegistry_1.default.resolve(Graph, props);
|
|
13
13
|
};
|
|
14
|
-
Obsidian.prototype.inject = function (target) {
|
|
15
|
-
return LazyInjector_1.default.inject(target);
|
|
14
|
+
Obsidian.prototype.inject = function (target, graph) {
|
|
15
|
+
return LazyInjector_1.default.inject(target, graph);
|
|
16
16
|
};
|
|
17
17
|
Obsidian.prototype.addGraphMiddleware = function (middleware) {
|
|
18
18
|
GraphRegistry_1.default.addGraphMiddleware(middleware);
|
package/dist/src/Obsidian.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,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;
|
|
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,EAAE,KAAmB;QACrD,OAAO,sBAAY,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
1
2
|
export declare const GRAPH_INSTANCE_NAME_KEY = "GRAPH_INSTANCE_NAME";
|
|
2
3
|
declare class LazyInjector<T extends object> {
|
|
3
|
-
inject(target: T): T;
|
|
4
|
+
inject(target: T, sourceGraph?: ObjectGraph): T;
|
|
4
5
|
private getGraphInstance;
|
|
5
6
|
}
|
|
6
7
|
declare const _default: LazyInjector<object>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LazyInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,cAAM,YAAY,CAAC,CAAC,SAAS,MAAM;IACjC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,CAAC;IAS/C,OAAO,CAAC,gBAAgB;CAIzB;;AAED,wBAAkC"}
|
|
@@ -10,9 +10,9 @@ exports.GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
|
|
|
10
10
|
var LazyInjector = /** @class */ (function () {
|
|
11
11
|
function LazyInjector() {
|
|
12
12
|
}
|
|
13
|
-
LazyInjector.prototype.inject = function (target) {
|
|
13
|
+
LazyInjector.prototype.inject = function (target, sourceGraph) {
|
|
14
14
|
var injectionMetadata = new InjectionMetadata_1.default();
|
|
15
|
-
var graph = this.getGraphInstance(target);
|
|
15
|
+
var graph = sourceGraph !== null && sourceGraph !== void 0 ? sourceGraph : this.getGraphInstance(target);
|
|
16
16
|
injectionMetadata.getLazyPropertiesToInject(target.constructor).forEach(function (key) {
|
|
17
17
|
Reflect.set(target, key, graph.retrieve(key));
|
|
18
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"LazyInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":";;;;;;AACA,qFAA+D;AAC/D,0EAAoD;AAEvC,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D;IAAA;IAcA,CAAC;IAbC,6BAAM,GAAN,UAAO,MAAS,EAAE,WAAyB;QACzC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;QAClD,IAAM,KAAK,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3D,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAC1E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,uCAAgB,GAAxB,UAAyB,MAAS;QAChC,IAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,+BAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3F,OAAO,uBAAa,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IACH,mBAAC;AAAD,CAAC,AAdD,IAcC;AAED,kBAAe,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,oFAA2D;AAE3D,kEAA4C;AAC5C,wDAAkC;AAGlC;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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-obsidian",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "Dependency injection framework for React and React Native applications",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepack": "npm run lint && tsc --project tsconfig.prod.json",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
48
48
|
"eslint-plugin-react": "^7.26.1",
|
|
49
49
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
50
|
+
"eslint-plugin-unused-imports": "1.x.x",
|
|
50
51
|
"jest": "27.x.x",
|
|
51
52
|
"lodash": "^4.17.21",
|
|
52
53
|
"react": "17.0.2",
|
package/src/Obsidian.ts
CHANGED
|
@@ -12,8 +12,8 @@ export default class Obsidian {
|
|
|
12
12
|
return graphRegistry.resolve(Graph, props) as unknown as ServiceLocator<T>;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
inject<T extends object>(target: T) {
|
|
16
|
-
return lazyInjector.inject(target);
|
|
15
|
+
inject<T extends object>(target: T, graph?: ObjectGraph) {
|
|
16
|
+
return lazyInjector.inject(target, graph);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
addGraphMiddleware(middleware: GraphMiddleware) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
1
2
|
import graphRegistry from '../../graph/registry/GraphRegistry';
|
|
2
3
|
import InjectionMetadata from './InjectionMetadata';
|
|
3
4
|
|
|
4
5
|
export const GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
|
|
5
6
|
|
|
6
7
|
class LazyInjector<T extends object> {
|
|
7
|
-
inject(target: T): T {
|
|
8
|
+
inject(target: T, sourceGraph?: ObjectGraph): T {
|
|
8
9
|
const injectionMetadata = new InjectionMetadata();
|
|
9
|
-
const graph = this.getGraphInstance(target);
|
|
10
|
+
const graph = sourceGraph ?? this.getGraphInstance(target);
|
|
10
11
|
injectionMetadata.getLazyPropertiesToInject(target.constructor).forEach((key) => {
|
|
11
12
|
Reflect.set(target, key, graph.retrieve(key));
|
|
12
13
|
});
|