react-obsidian 0.0.12 → 0.0.16
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 +105 -10
- 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/Graph.d.ts +2 -3
- package/dist/src/decorators/Graph.d.ts.map +1 -1
- package/dist/src/decorators/Graph.js +2 -3
- package/dist/src/decorators/Graph.js.map +1 -1
- package/dist/src/decorators/Singleton.d.ts +4 -0
- package/dist/src/decorators/Singleton.d.ts.map +1 -0
- package/dist/src/decorators/Singleton.js +12 -0
- package/dist/src/decorators/Singleton.js.map +1 -0
- 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/decorators/provides/MemoizeDescriptor.d.ts.map +1 -1
- package/dist/src/decorators/provides/MemoizeDescriptor.js +4 -4
- package/dist/src/decorators/provides/MemoizeDescriptor.js.map +1 -1
- package/dist/src/decorators/provides/Provides.d.ts +0 -2
- package/dist/src/decorators/provides/Provides.d.ts.map +1 -1
- package/dist/src/decorators/provides/Provides.js.map +1 -1
- package/dist/src/graph/ObjectGraph.d.ts +2 -2
- 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 +11 -8
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.js +34 -22
- package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -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/src/types/index.d.ts +0 -1
- package/dist/src/types/index.d.ts.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/SingletonGraph.d.ts +6 -0
- package/dist/test/integration/fixtures/SingletonGraph.d.ts.map +1 -0
- package/dist/test/integration/fixtures/SingletonGraph.js +53 -0
- package/dist/test/integration/fixtures/SingletonGraph.js.map +1 -0
- package/dist/test/integration/fixtures/UniqueNumberGraph.d.ts +8 -0
- package/dist/test/integration/fixtures/UniqueNumberGraph.d.ts.map +1 -0
- package/dist/test/integration/fixtures/UniqueNumberGraph.js +62 -0
- package/dist/test/integration/fixtures/UniqueNumberGraph.js.map +1 -0
- 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 +13 -12
- package/src/Obsidian.ts +5 -0
- package/src/decorators/Graph.ts +2 -5
- package/src/decorators/Singleton.ts +14 -0
- 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/decorators/provides/MemoizeDescriptor.ts +3 -4
- package/src/decorators/provides/Provides.ts +0 -2
- package/src/graph/ObjectGraph.ts +7 -3
- package/src/graph/ProviderBinder.ts +2 -3
- package/src/graph/registry/GraphRegistry.ts +40 -32
- package/src/index.ts +6 -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/src/types/index.ts +0 -2
- 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/ScopedValuesRegistry.d.ts +0 -11
- package/dist/src/ScopedValuesRegistry.d.ts.map +0 -1
- package/dist/src/ScopedValuesRegistry.js +0 -25
- package/dist/src/ScopedValuesRegistry.js.map +0 -1
- 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/ScopedValuesRegistry.ts +0 -26
- package/src/decorators/injectClass.ts +0 -28
- package/transformers/babel-plugin-obsidian-provide/index.ts +0 -47
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniqueNumberGraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/UniqueNumberGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAGZ,MAAM,cAAc,CAAC;AAEtB,qBACa,iBAAkB,SAAQ,WAAW;IACpC,OAAO,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,MAAM,MAAM;IAKvD,eAAe,IAAI,MAAM;IAKzB,cAAc,IAAI,MAAM;CAGzB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.UniqueNumberGraph = void 0;
|
|
28
|
+
var src_1 = require("../../../src");
|
|
29
|
+
var UniqueNumberGraph = /** @class */ (function (_super) {
|
|
30
|
+
__extends(UniqueNumberGraph, _super);
|
|
31
|
+
function UniqueNumberGraph(uniqueNumberGenerator) {
|
|
32
|
+
var _this = _super.call(this) || this;
|
|
33
|
+
_this.uniqueNumberGenerator = uniqueNumberGenerator;
|
|
34
|
+
return _this;
|
|
35
|
+
}
|
|
36
|
+
UniqueNumberGraph.prototype.singletonNumber = function () {
|
|
37
|
+
return this.uniqueNumberGenerator();
|
|
38
|
+
};
|
|
39
|
+
UniqueNumberGraph.prototype.instanceNumber = function () {
|
|
40
|
+
return this.uniqueNumberGenerator();
|
|
41
|
+
};
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, src_1.Provides)(),
|
|
44
|
+
(0, src_1.Singleton)(),
|
|
45
|
+
__metadata("design:type", Function),
|
|
46
|
+
__metadata("design:paramtypes", []),
|
|
47
|
+
__metadata("design:returntype", Number)
|
|
48
|
+
], UniqueNumberGraph.prototype, "singletonNumber", null);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, src_1.Provides)(),
|
|
51
|
+
__metadata("design:type", Function),
|
|
52
|
+
__metadata("design:paramtypes", []),
|
|
53
|
+
__metadata("design:returntype", Number)
|
|
54
|
+
], UniqueNumberGraph.prototype, "instanceNumber", null);
|
|
55
|
+
UniqueNumberGraph = __decorate([
|
|
56
|
+
(0, src_1.Graph)(),
|
|
57
|
+
__metadata("design:paramtypes", [Function])
|
|
58
|
+
], UniqueNumberGraph);
|
|
59
|
+
return UniqueNumberGraph;
|
|
60
|
+
}(src_1.ObjectGraph));
|
|
61
|
+
exports.UniqueNumberGraph = UniqueNumberGraph;
|
|
62
|
+
//# sourceMappingURL=UniqueNumberGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniqueNumberGraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/UniqueNumberGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAKsB;AAGtB;IAAuC,qCAAW;IAChD,2BAAoB,qBAAmC;QAAvD,YACE,iBAAO,SACR;QAFmB,2BAAqB,GAArB,qBAAqB,CAAc;;IAEvD,CAAC;IAGD,2CAAe,GAAf;QACE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAGD,0CAAc,GAAd;QACE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAPD;QADC,IAAA,cAAQ,GAAE;QAAE,IAAA,eAAS,GAAE;;;;4DAGvB;IAGD;QADC,IAAA,cAAQ,GAAE;;;;2DAGV;IAbU,iBAAiB;QAD7B,IAAA,WAAK,GAAE;;OACK,iBAAiB,CAc7B;IAAD,wBAAC;CAAA,AAdD,CAAuC,iBAAW,GAcjD;AAdY,8CAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectedValues.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/injectedValues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"injectedValues.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/injectedValues.ts"],"names":[],"mappings":";;;;;AAAA,wBAIE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectedValues.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/injectedValues.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"injectedValues.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/injectedValues.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,qBAAqB;IACzC,aAAa,EAAE,6BAA6B;CAC7C,CAAC"}
|
package/dist/testkit/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ObjectGraph
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { ObjectGraph } from '../src/graph/ObjectGraph';
|
|
2
|
+
import { Constructable } from '../src/types';
|
|
3
|
+
declare class TestKit {
|
|
4
|
+
mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph> | ((props: any) => ObjectGraph)>): void;
|
|
4
5
|
}
|
|
5
|
-
declare const
|
|
6
|
-
export
|
|
6
|
+
export declare const testKit: TestKit;
|
|
7
|
+
export {};
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQ7C,cAAM,OAAO;IACJ,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;CAY/G;AAED,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
package/dist/testkit/index.js
CHANGED
|
@@ -14,15 +14,22 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
17
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
|
|
21
|
+
exports.testKit = void 0;
|
|
22
|
+
var ObjectGraph_1 = require("../src/graph/ObjectGraph");
|
|
23
|
+
var GraphMiddleware_1 = require("../src/graph/registry/GraphMiddleware");
|
|
24
|
+
var GraphRegistry_1 = __importDefault(require("../src/graph/registry/GraphRegistry"));
|
|
19
25
|
beforeEach(function () {
|
|
20
|
-
|
|
26
|
+
GraphRegistry_1.default.clearGraphMiddlewares();
|
|
27
|
+
GraphRegistry_1.default.reset();
|
|
21
28
|
});
|
|
22
|
-
var
|
|
23
|
-
function
|
|
29
|
+
var TestKit = /** @class */ (function () {
|
|
30
|
+
function TestKit() {
|
|
24
31
|
}
|
|
25
|
-
|
|
32
|
+
TestKit.prototype.mockGraphs = function (graphNameToGraph) {
|
|
26
33
|
var graphMiddleware = new /** @class */ (function (_super) {
|
|
27
34
|
__extends(class_1, _super);
|
|
28
35
|
function class_1() {
|
|
@@ -30,16 +37,16 @@ var Index = /** @class */ (function () {
|
|
|
30
37
|
}
|
|
31
38
|
class_1.prototype.resolve = function (resolveChain, Graph, props) {
|
|
32
39
|
if (graphNameToGraph[Graph.name]) {
|
|
33
|
-
var
|
|
34
|
-
return new
|
|
40
|
+
var GraphOrGenerator = graphNameToGraph[Graph.name];
|
|
41
|
+
return (0, ObjectGraph_1.isGraph)(GraphOrGenerator) ? new GraphOrGenerator(props) : GraphOrGenerator(props);
|
|
35
42
|
}
|
|
36
43
|
return resolveChain.proceed(Graph, props);
|
|
37
44
|
};
|
|
38
45
|
return class_1;
|
|
39
|
-
}(
|
|
40
|
-
|
|
46
|
+
}(GraphMiddleware_1.GraphMiddleware))();
|
|
47
|
+
GraphRegistry_1.default.addGraphMiddleware(graphMiddleware);
|
|
41
48
|
};
|
|
42
|
-
return
|
|
49
|
+
return TestKit;
|
|
43
50
|
}());
|
|
44
|
-
exports.
|
|
51
|
+
exports.testKit = new TestKit();
|
|
45
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,wDAAgE;AAChE,yEAAwE;AAExE,sFAAgE;AAEhE,UAAU,CAAC;IACT,uBAAa,CAAC,qBAAqB,EAAE,CAAC;IACtC,uBAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH;IAAA;IAaA,CAAC;IAZQ,4BAAU,GAAjB,UAAkB,gBAA4F;QAC5G,IAAM,eAAe,GAAG;YAAkB,2BAAe;YAA7B;;YAQ5B,CAAC;YAPC,yBAAO,GAAP,UAAe,YAA+B,EAAE,KAAiC,EAAE,KAAa;gBAC9F,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAChC,IAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtD,OAAO,IAAA,qBAAO,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAC1F;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,iCAAe,IAQtD,CAAC;QACJ,uBAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACH,cAAC;AAAD,CAAC,AAbD,IAaC;AAEY,QAAA,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC"}
|
package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.d.ts
RENAMED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ClassMethod, Decorator, Identifier, ObjectExpression, ObjectPattern } from '@babel/types';
|
|
1
|
+
import { ClassMethod, ClassProperty, Decorator, Identifier, ObjectExpression, ObjectPattern, TSParameterProperty } from '@babel/types';
|
|
2
|
+
export declare type AcceptedNodeType = Identifier | TSParameterProperty | ClassProperty;
|
|
2
3
|
export declare function providerIsNotNamed(decorator: Decorator): boolean;
|
|
3
4
|
export declare function addNameToProviderArguments(node: ClassMethod, decorator: Decorator): void;
|
|
4
5
|
export declare function getDecoratorArgument(decorator: Decorator): ObjectExpression | undefined;
|
|
5
6
|
export declare function getMethodName(node: ClassMethod): string;
|
|
6
|
-
export declare function
|
|
7
|
+
export declare function getDecoratorByName(decorators: Array<Decorator> | undefined | null, decoratorName: string): Decorator | undefined;
|
|
7
8
|
export declare function getDecoratorName(decorator?: Decorator): string | undefined;
|
|
8
9
|
export declare function paramsToDestructuringAssignment(params: (Identifier | any)[]): ObjectPattern;
|
|
10
|
+
export declare function passParamNameAsInjectArgument(node: AcceptedNodeType, decorator: Decorator): void;
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAKtB,oBAAY,gBAAgB,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAEhF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAWhE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,QAOjF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAKvF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAGvD;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,EAC/C,aAAa,EAAE,MAAM,GACpB,SAAS,GAAG,SAAS,CAEvB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,GAAG,aAAa,CAI3F;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,SAAS,QAOrB"}
|
package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.js
RENAMED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.paramsToDestructuringAssignment = exports.getDecoratorName = exports.
|
|
3
|
+
exports.passParamNameAsInjectArgument = exports.paramsToDestructuringAssignment = exports.getDecoratorName = exports.getDecoratorByName = exports.getMethodName = exports.getDecoratorArgument = exports.addNameToProviderArguments = exports.providerIsNotNamed = void 0;
|
|
4
4
|
/* eslint-disable no-param-reassign */
|
|
5
5
|
var core_1 = require("@babel/core");
|
|
6
6
|
var lodash_1 = require("lodash");
|
|
7
|
+
var never = '';
|
|
7
8
|
function providerIsNotNamed(decorator) {
|
|
8
9
|
var argument = getDecoratorArgument(decorator);
|
|
9
10
|
if (core_1.types.isObjectExpression(argument)) {
|
|
@@ -37,10 +38,10 @@ function getMethodName(node) {
|
|
|
37
38
|
throw new Error("Tried to get class name but encountered unexpected key of type: ".concat(node.key.type));
|
|
38
39
|
}
|
|
39
40
|
exports.getMethodName = getMethodName;
|
|
40
|
-
function
|
|
41
|
-
return decorators === null || decorators === void 0 ? void 0 : decorators.find(function (decorator) { return (0, lodash_1.get)(decorator, 'expression.callee.name') ===
|
|
41
|
+
function getDecoratorByName(decorators, decoratorName) {
|
|
42
|
+
return decorators === null || decorators === void 0 ? void 0 : decorators.find(function (decorator) { return (0, lodash_1.get)(decorator, 'expression.callee.name') === decoratorName; });
|
|
42
43
|
}
|
|
43
|
-
exports.
|
|
44
|
+
exports.getDecoratorByName = getDecoratorByName;
|
|
44
45
|
function getDecoratorName(decorator) {
|
|
45
46
|
return (0, lodash_1.get)(decorator, 'expression.callee.name');
|
|
46
47
|
}
|
|
@@ -51,4 +52,27 @@ function paramsToDestructuringAssignment(params) {
|
|
|
51
52
|
.map(function (p) { return core_1.types.objectProperty(core_1.types.identifier(p.name), core_1.types.identifier(p.name)); }));
|
|
52
53
|
}
|
|
53
54
|
exports.paramsToDestructuringAssignment = paramsToDestructuringAssignment;
|
|
55
|
+
function passParamNameAsInjectArgument(node, decorator) {
|
|
56
|
+
if (core_1.types.isCallExpression(decorator.expression)) {
|
|
57
|
+
decorator.expression.arguments = [
|
|
58
|
+
core_1.types.stringLiteral(getNodeName(node)),
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.passParamNameAsInjectArgument = passParamNameAsInjectArgument;
|
|
63
|
+
function getNodeName(node) {
|
|
64
|
+
if (core_1.types.isTSParameterProperty(node)) {
|
|
65
|
+
if (core_1.types.isIdentifier(node.parameter)) {
|
|
66
|
+
return node.parameter.name;
|
|
67
|
+
}
|
|
68
|
+
return never;
|
|
69
|
+
}
|
|
70
|
+
if (core_1.types.isClassProperty(node)) {
|
|
71
|
+
if (core_1.types.isIdentifier(node.key)) {
|
|
72
|
+
return node.key.name;
|
|
73
|
+
}
|
|
74
|
+
return never;
|
|
75
|
+
}
|
|
76
|
+
return node.name;
|
|
77
|
+
}
|
|
54
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"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"}
|
package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/index.d.ts
RENAMED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAmClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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 unmagler_1 = __importDefault(require("./unmagler"));
|
|
7
|
+
var providerArgumentsTransformer = {
|
|
8
|
+
visitor: {
|
|
9
|
+
Program: function (path) {
|
|
10
|
+
path.traverse(internalVisitor);
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
var internalVisitor = {
|
|
15
|
+
ClassMethod: {
|
|
16
|
+
enter: function (_a) {
|
|
17
|
+
var node = _a.node;
|
|
18
|
+
unmagler_1.default.saveClassMethod('Provides', node);
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
ClassProperty: {
|
|
22
|
+
enter: function (_a) {
|
|
23
|
+
var node = _a.node;
|
|
24
|
+
unmagler_1.default.saveClassProperty('Inject', node);
|
|
25
|
+
unmagler_1.default.saveClassProperty('LazyInject', node);
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
Identifier: {
|
|
29
|
+
enter: function (_a) {
|
|
30
|
+
var node = _a.node;
|
|
31
|
+
unmagler_1.default.saveIdentifier('Inject', node);
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
TSParameterProperty: {
|
|
35
|
+
enter: function (_a) {
|
|
36
|
+
var node = _a.node;
|
|
37
|
+
unmagler_1.default.saveTSParameterProperty('Inject', node);
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
function plugin() {
|
|
42
|
+
return providerArgumentsTransformer;
|
|
43
|
+
}
|
|
44
|
+
exports.default = plugin;
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;AASA,wDAAkC;AAElC,IAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,EAAP,UAAQ,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,IAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,EAAL,UAAM,EAA+B;gBAA7B,IAAI,UAAA;YACV,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF;IACD,aAAa,EAAE;QACb,KAAK,EAAL,UAAM,EAAiC;gBAA/B,IAAI,UAAA;YACV,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAL,UAAM,EAA8B;gBAA5B,IAAI,UAAA;YACV,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAL,UAAM,EAAuC;gBAArC,IAAI,UAAA;YACV,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC;AAEF,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAFD,yBAEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import saveMethod from './method';
|
|
2
|
+
import saveProperty from './property';
|
|
3
|
+
declare const _default: {
|
|
4
|
+
saveClassMethod: typeof saveMethod;
|
|
5
|
+
saveClassProperty: typeof saveProperty;
|
|
6
|
+
saveIdentifier: typeof saveProperty;
|
|
7
|
+
saveTSParameterProperty: typeof saveProperty;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,YAAY,MAAM,YAAY,CAAC;;;;;;;AAEtC,wBAKE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 method_1 = __importDefault(require("./method"));
|
|
7
|
+
var property_1 = __importDefault(require("./property"));
|
|
8
|
+
exports.default = {
|
|
9
|
+
saveClassMethod: method_1.default,
|
|
10
|
+
saveClassProperty: property_1.default,
|
|
11
|
+
saveIdentifier: property_1.default,
|
|
12
|
+
saveTSParameterProperty: property_1.default,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/index.ts"],"names":[],"mappings":";;;;;AAAA,oDAAkC;AAClC,wDAAsC;AAEtC,kBAAe;IACb,eAAe,EAAE,gBAAU;IAC3B,iBAAiB,EAAE,kBAAY;IAC/B,cAAc,EAAE,kBAAY;IAC5B,uBAAuB,EAAE,kBAAY;CACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,cAAc,CAAC;AAStD,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,QAMlD;AAeD,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var helpers_1 = require("../helpers");
|
|
4
|
+
function saveMethod(name, node) {
|
|
5
|
+
var decorator = (0, helpers_1.getDecoratorByName)(node.decorators, name);
|
|
6
|
+
if ((0, helpers_1.getDecoratorName)(decorator) === name) {
|
|
7
|
+
convertProviderParamsToDestructuringAssignment(node);
|
|
8
|
+
saveUnmangledMethodNameInProviderArguments(node, decorator);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function convertProviderParamsToDestructuringAssignment(node) {
|
|
12
|
+
if (node.params.length === 0) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
var destructuredParams = (0, helpers_1.paramsToDestructuringAssignment)(node.params);
|
|
16
|
+
// eslint-disable-next-line no-param-reassign
|
|
17
|
+
node.params.length = 0;
|
|
18
|
+
node.params.push(destructuredParams);
|
|
19
|
+
}
|
|
20
|
+
function saveUnmangledMethodNameInProviderArguments(node, decorator) {
|
|
21
|
+
if ((0, helpers_1.providerIsNotNamed)(decorator)) {
|
|
22
|
+
(0, helpers_1.addNameToProviderArguments)(node, decorator);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = saveMethod;
|
|
26
|
+
//# sourceMappingURL=method.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/method.ts"],"names":[],"mappings":";;AACA,sCAMoB;AAEpB,SAAS,UAAU,CAAC,IAAY,EAAE,IAAiB;IACjD,IAAM,SAAS,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxC,8CAA8C,CAAC,IAAI,CAAC,CAAC;QACrD,0CAA0C,CAAC,IAAI,EAAE,SAAU,CAAC,CAAC;KAC9D;AACH,CAAC;AAED,SAAS,8CAA8C,CAAC,IAAiB;IACvE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAAE,OAAO;KAAE;IACzC,IAAM,kBAAkB,GAAG,IAAA,yCAA+B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,6CAA6C;IAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,0CAA0C,CAAC,IAAiB,EAAE,SAAoB;IACzF,IAAI,IAAA,4BAAkB,EAAC,SAAS,CAAC,EAAE;QACjC,IAAA,oCAA0B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC7C;AACH,CAAC;AACD,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,iBAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,QAK7D;AAMD,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var helpers_1 = require("../helpers");
|
|
4
|
+
function savePropertyName(name, node) {
|
|
5
|
+
var decorator = (0, helpers_1.getDecoratorByName)(node.decorators, name);
|
|
6
|
+
if ((0, helpers_1.getDecoratorName)(decorator) === name && injectIsNotNamed(decorator)) {
|
|
7
|
+
(0, helpers_1.passParamNameAsInjectArgument)(node, decorator);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function injectIsNotNamed(decorator) {
|
|
11
|
+
return (0, helpers_1.getDecoratorArgument)(decorator) === undefined;
|
|
12
|
+
}
|
|
13
|
+
exports.default = savePropertyName;
|
|
14
|
+
//# sourceMappingURL=property.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":";;AACA,sCAMoB;AAEpB,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAsB;IAC5D,IAAM,SAAS,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,IAAI,IAAI,gBAAgB,CAAC,SAAU,CAAC,EAAE;QACxE,IAAA,uCAA6B,EAAC,IAAI,EAAE,SAAU,CAAC,CAAC;KACjD;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAoB;IAC5C,OAAO,IAAA,8BAAoB,EAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AACvD,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
|
package/example/babel.config.js
CHANGED
|
@@ -2,7 +2,7 @@ module.exports = {
|
|
|
2
2
|
presets: ['module:metro-react-native-babel-preset'],
|
|
3
3
|
plugins: [
|
|
4
4
|
['@babel/plugin-proposal-decorators', {legacy: true}],
|
|
5
|
-
['@babel/plugin-proposal-class-properties', {
|
|
6
|
-
[`${__dirname}/../dist/transformers/babel-plugin-obsidian
|
|
5
|
+
['@babel/plugin-proposal-class-properties', {loose: true}],
|
|
6
|
+
[`${__dirname}/../dist/transformers/babel-plugin-obsidian`],
|
|
7
7
|
],
|
|
8
8
|
};
|
package/jest.config.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require('setimmediate');
|
package/jest.setup.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
package/package.json
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-obsidian",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"description": "Dependency injection framework for React and React Native applications",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"prepack": "npm run lint && tsc --project tsconfig.prod.json",
|
|
7
|
+
"lint": "npx eslint src transformers test --ignore-pattern '*.d.ts' --ext .ts,.tsx,.js",
|
|
8
|
+
"pretest": "tsc",
|
|
9
|
+
"test": "npx jest"
|
|
10
|
+
},
|
|
5
11
|
"main": "src/index.ts",
|
|
6
12
|
"directories": {
|
|
7
13
|
"test": "test"
|
|
@@ -11,14 +17,14 @@
|
|
|
11
17
|
"reflect-metadata": "~0.1.13"
|
|
12
18
|
},
|
|
13
19
|
"peerDependencies": {
|
|
14
|
-
"react": "*"
|
|
20
|
+
"react": "*",
|
|
21
|
+
"lodash": "*"
|
|
15
22
|
},
|
|
16
23
|
"devDependencies": {
|
|
17
24
|
"@babel/core": "7.16.x",
|
|
18
|
-
"@babel/generator": "7.16.x",
|
|
19
|
-
"@babel/plugin-proposal-class-properties": "7.16.x",
|
|
20
25
|
"@babel/plugin-proposal-decorators": "7.16.x",
|
|
21
26
|
"@babel/preset-env": "7.16.x",
|
|
27
|
+
"babel-plugin-parameter-decorator": "1.x.x",
|
|
22
28
|
"@babel/preset-react": "7.16.x",
|
|
23
29
|
"@babel/preset-typescript": "7.16.x",
|
|
24
30
|
"@babel/types": "7.16.x",
|
|
@@ -40,17 +46,12 @@
|
|
|
40
46
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
41
47
|
"eslint-plugin-react": "^7.26.1",
|
|
42
48
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
43
|
-
"jest": "
|
|
49
|
+
"jest": "27.x.x",
|
|
44
50
|
"lodash": "^4.17.21",
|
|
45
51
|
"react": "17.0.2",
|
|
46
52
|
"react-dom": "17.0.2",
|
|
47
|
-
"typescript": "^4.
|
|
48
|
-
|
|
49
|
-
"scripts": {
|
|
50
|
-
"prepack": "npm run lint && tsc --project tsconfig.prod.json",
|
|
51
|
-
"lint": "npx eslint src transformers test --ignore-pattern '*.d.ts' --ext .ts,.tsx,.js",
|
|
52
|
-
"pretest": "tsc",
|
|
53
|
-
"test": "npx jest"
|
|
53
|
+
"typescript": "^4.5.4",
|
|
54
|
+
"setimmediate": "^1.0.5"
|
|
54
55
|
},
|
|
55
56
|
"repository": {
|
|
56
57
|
"type": "git",
|
package/src/Obsidian.ts
CHANGED
|
@@ -2,6 +2,7 @@ import graphRegistry from './graph/registry/GraphRegistry';
|
|
|
2
2
|
import { ObjectGraph } from './graph/ObjectGraph';
|
|
3
3
|
import { Constructable, GraphInternals, ServiceLocator } from './types';
|
|
4
4
|
import { GraphMiddleware } from './graph/registry/GraphMiddleware';
|
|
5
|
+
import lazyInjector from './injectors/class/LazyInjector';
|
|
5
6
|
|
|
6
7
|
export default class Obsidian {
|
|
7
8
|
obtain<T extends ObjectGraph<P>, P = any>(
|
|
@@ -11,6 +12,10 @@ export default class Obsidian {
|
|
|
11
12
|
return graphRegistry.resolve(Graph, props) as unknown as ServiceLocator<T>;
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
inject<T extends object>(target: T) {
|
|
16
|
+
return lazyInjector.inject(target);
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
addGraphMiddleware(middleware: GraphMiddleware) {
|
|
15
20
|
graphRegistry.addGraphMiddleware(middleware);
|
|
16
21
|
}
|
package/src/decorators/Graph.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import { Constructable
|
|
1
|
+
import { Constructable } from '../types';
|
|
2
2
|
import 'reflect-metadata';
|
|
3
3
|
import graphRegistry from '../graph/registry/GraphRegistry';
|
|
4
4
|
import { ObjectGraph } from '../graph/ObjectGraph';
|
|
5
5
|
|
|
6
6
|
interface GraphParams {
|
|
7
|
-
scope: Scope | undefined;
|
|
8
7
|
subgraphs: Constructable<ObjectGraph>[];
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
export function Graph({
|
|
12
|
-
scope,
|
|
13
11
|
subgraphs = [],
|
|
14
12
|
}: Partial<GraphParams> = {}) {
|
|
15
13
|
return <T extends ObjectGraph>(constructor: Constructable<T>) => {
|
|
16
|
-
|
|
17
|
-
graphRegistry.register(constructor, scope, subgraphs);
|
|
14
|
+
graphRegistry.register(constructor, subgraphs);
|
|
18
15
|
return constructor;
|
|
19
16
|
};
|
|
20
17
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Constructable } from '../types';
|
|
2
|
+
import { ObjectGraph } from '../graph/ObjectGraph';
|
|
3
|
+
|
|
4
|
+
export function Singleton() {
|
|
5
|
+
return function singleton(
|
|
6
|
+
constructorOrGraph: Constructable<ObjectGraph> | ObjectGraph,
|
|
7
|
+
_property?: string,
|
|
8
|
+
descriptor?: PropertyDescriptor,
|
|
9
|
+
): any {
|
|
10
|
+
const target = descriptor || constructorOrGraph;
|
|
11
|
+
Reflect.defineMetadata('isSingleton', true, target);
|
|
12
|
+
return target;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { isNumber } from 'lodash';
|
|
2
|
+
import InjectionMetadata from '../../injectors/class/InjectionMetadata';
|
|
3
|
+
|
|
4
|
+
export function Inject(name?: string) {
|
|
5
|
+
return (
|
|
6
|
+
target: Object | any,
|
|
7
|
+
_propertyKey?: string,
|
|
8
|
+
indexOrPropertyDescriptor?: number | PropertyDescriptor,
|
|
9
|
+
) => {
|
|
10
|
+
const metadata = new InjectionMetadata();
|
|
11
|
+
if (isNumber(indexOrPropertyDescriptor)) {
|
|
12
|
+
metadata.saveConstructorParamMetadata(target, name!, indexOrPropertyDescriptor);
|
|
13
|
+
} else {
|
|
14
|
+
metadata.savePropertyMetadata(target.constructor, name!);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Constructable } from '../../types';
|
|
2
|
+
import { Graph } from '../../graph/Graph';
|
|
3
|
+
import graphRegistry from '../../graph/registry/GraphRegistry';
|
|
4
|
+
import ClassInjector from '../../injectors/class/ClassInjector';
|
|
5
|
+
|
|
6
|
+
export function Injectable(Graph: Constructable<Graph>): any {
|
|
7
|
+
return new ClassInjector(graphRegistry).inject(Graph);
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import InjectionMetadata from '../../injectors/class/InjectionMetadata';
|
|
2
|
+
|
|
3
|
+
export function LazyInject(name?: string): any {
|
|
4
|
+
return (target: object) => {
|
|
5
|
+
const metadata = new InjectionMetadata();
|
|
6
|
+
metadata.saveLazyPropertyMetadata(target.constructor, name!);
|
|
7
|
+
};
|
|
8
|
+
}
|