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
|
@@ -1,34 +0,0 @@
|
|
|
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 = exports.Injectable = void 0;
|
|
7
|
-
var GraphRegistry_1 = __importDefault(require("../graph/registry/GraphRegistry"));
|
|
8
|
-
var injectionMetadataKey = 'injectionMetadata';
|
|
9
|
-
function Injectable(Graph) {
|
|
10
|
-
return function (Target) {
|
|
11
|
-
var proxy = {
|
|
12
|
-
construct: function (target, args, newTarget) {
|
|
13
|
-
var _a;
|
|
14
|
-
var keysToInject = (_a = Reflect.getMetadata(injectionMetadataKey, target)) !== null && _a !== void 0 ? _a : [];
|
|
15
|
-
var createdObject = Reflect.construct(target, args, newTarget);
|
|
16
|
-
var graph = GraphRegistry_1.default.resolve(Graph);
|
|
17
|
-
for (var _i = 0, keysToInject_1 = keysToInject; _i < keysToInject_1.length; _i++) {
|
|
18
|
-
var key = keysToInject_1[_i];
|
|
19
|
-
Reflect.set(createdObject, key, graph.retrieve(key));
|
|
20
|
-
}
|
|
21
|
-
return createdObject;
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
return new Proxy(Target, proxy);
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
exports.Injectable = Injectable;
|
|
28
|
-
function Inject(target, propertyKey) {
|
|
29
|
-
var _a;
|
|
30
|
-
var keysToInject = (_a = Reflect.getMetadata(injectionMetadataKey, target.constructor)) !== null && _a !== void 0 ? _a : new Set();
|
|
31
|
-
Reflect.defineMetadata(injectionMetadataKey, keysToInject.add(propertyKey), target.constructor);
|
|
32
|
-
}
|
|
33
|
-
exports.Inject = Inject;
|
|
34
|
-
//# sourceMappingURL=injectClass.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injectClass.js","sourceRoot":"","sources":["../../../src/decorators/injectClass.ts"],"names":[],"mappings":";;;;;;AACA,kFAA4D;AAG5D,IAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,SAAgB,UAAU,CAAyC,KAAiC;IAClG,OAAO,UAAC,MAAS;QACf,IAAM,KAAK,GAAG;YACZ,SAAS,EAAT,UAAU,MAAW,EAAE,IAAW,EAAE,SAAc;;gBAChD,IAAM,YAAY,GAAa,MAAA,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;gBAEvF,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAM,KAAK,GAAG,uBAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,KAAkB,UAAY,EAAZ,6BAAY,EAAZ,0BAAY,EAAZ,IAAY,EAAE;oBAA3B,IAAM,GAAG,qBAAA;oBACZ,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;iBACtD;gBACD,OAAO,aAAa,CAAC;YACvB,CAAC;SACF,CAAC;QACF,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAhBD,gCAgBC;AAED,SAAgB,MAAM,CAAC,MAAc,EAAE,WAAmB;;IACxD,IAAM,YAAY,GAAG,MAAA,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,mCAAI,IAAI,GAAG,EAAE,CAAC;IAChG,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAClG,CAAC;AAHD,wBAGC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian-provide/helpers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,WAAW,EACX,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,cAAc,CAAC;AAGtB,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,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAE3G;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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian-provide/helpers/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,oCAAyC;AASzC,iCAA6B;AAE7B,SAAgB,kBAAkB,CAAC,SAAoB;IACrD,IAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,YAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QAClC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC;YAChC,IAAI,YAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;gBACzB,OAAO,YAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;aACvD;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,KAAK,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,gDAWC;AAED,SAAgB,0BAA0B,CAAC,IAAiB,EAAE,SAAoB;;IAChF,IAAM,QAAQ,GAAG,MAAA,oBAAoB,CAAC,SAAS,CAAC,mCAAI,YAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC3E,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAC,CAAC,cAAc,CACvC,YAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EACpB,YAAC,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CACrC,CAAC,CAAC;IACF,SAAS,CAAC,UAA6B,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC;AAPD,gEAOC;AAED,SAAgB,oBAAoB,CAAC,SAAoB;IACvD,IAAI,YAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QAC5C,OAAO,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,YAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAvB,CAAuB,CAAqB,CAAC;KAChG;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AALD,oDAKC;AAED,SAAgB,aAAa,CAAC,IAAiB;IAC7C,IAAI,YAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACnD,MAAM,IAAI,KAAK,CAAC,0EAAmE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;AACtG,CAAC;AAHD,sCAGC;AAED,SAAgB,oBAAoB,CAAC,UAA+C;IAClF,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,UAAC,SAAS,IAAK,OAAA,IAAA,YAAG,EAAC,SAAS,EAAE,wBAAwB,CAAC,KAAK,UAAU,EAAvD,CAAuD,CAAC,CAAC;AAClG,CAAC;AAFD,oDAEC;AAED,SAAgB,gBAAgB,CAAC,SAAqB;IACpD,OAAO,IAAA,YAAG,EAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;AAClD,CAAC;AAFD,4CAEC;AAED,SAAgB,+BAA+B,CAAC,MAA4B;IAC1E,OAAO,YAAC,CAAC,aAAa,CAAC,MAAM;SAC1B,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,YAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC;SAChC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,YAAC,CAAC,cAAc,CAAC,YAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,YAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAA5D,CAA4D,CAAC,CAAC,CAAC;AAC/E,CAAC;AAJD,0EAIC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian-provide/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AA0ClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var helpers_1 = require("./helpers");
|
|
4
|
-
var providerArgumentsTransformer = {
|
|
5
|
-
visitor: {
|
|
6
|
-
Program: function (path) {
|
|
7
|
-
path.traverse(internalVisitor);
|
|
8
|
-
},
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
var internalVisitor = {
|
|
12
|
-
ClassMethod: {
|
|
13
|
-
enter: function (_a) {
|
|
14
|
-
var node = _a.node;
|
|
15
|
-
var decorator = (0, helpers_1.getProviderDecorator)(node.decorators);
|
|
16
|
-
if ((0, helpers_1.getDecoratorName)(decorator) === 'Provides') {
|
|
17
|
-
convertProviderParamsToDestructuringAssignment(node);
|
|
18
|
-
saveUnmangledMethodNameInProviderArguments(node, decorator);
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
function convertProviderParamsToDestructuringAssignment(node) {
|
|
24
|
-
if (node.params.length === 0)
|
|
25
|
-
return;
|
|
26
|
-
var destructuredParams = (0, helpers_1.paramsToDestructuringAssignment)(node.params);
|
|
27
|
-
node.params.length = 0;
|
|
28
|
-
node.params.push(destructuredParams);
|
|
29
|
-
}
|
|
30
|
-
function saveUnmangledMethodNameInProviderArguments(node, decorator) {
|
|
31
|
-
if ((0, helpers_1.providerIsNotNamed)(decorator)) {
|
|
32
|
-
(0, helpers_1.addNameToProviderArguments)(node, decorator);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function plugin() {
|
|
36
|
-
return providerArgumentsTransformer;
|
|
37
|
-
}
|
|
38
|
-
exports.default = plugin;
|
|
39
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian-provide/index.ts"],"names":[],"mappings":";;AAGA,qCAMmB;AAEnB,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,IAAM,SAAS,GAAG,IAAA,8BAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,UAAU,EAAE;gBAC9C,8CAA8C,CAAC,IAAI,CAAC,CAAC;gBACrD,0CAA0C,CAAC,IAAI,EAAE,SAAU,CAAC,CAAC;aAC9D;QACH,CAAC;KACF;CACF,CAAC;AAEF,SAAS,8CAA8C,CAAC,IAAiB;IACvE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACrC,IAAM,kBAAkB,GAAG,IAAA,yCAA+B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,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;AAED,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAFD,yBAEC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Scope } from './types';
|
|
2
|
-
|
|
3
|
-
class ScopedValuesRegistry {
|
|
4
|
-
private readonly values: Map<string, any> = new Map();
|
|
5
|
-
|
|
6
|
-
has(scope: Scope, property: string): boolean {
|
|
7
|
-
return this.values.has(scope.toString() + property);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
get(scope: Scope, property: string): any {
|
|
11
|
-
if (this.values.has(scope.toString() + property)) {
|
|
12
|
-
return this.values.get(scope.toString() + property);
|
|
13
|
-
}
|
|
14
|
-
throw new Error(`Property ${property} does not exist`);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
set(scope: Scope, property: string, value: any) {
|
|
18
|
-
this.values.set(scope.toString() + property, value);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
clear(scope: Scope, property: string) {
|
|
22
|
-
this.values.delete(scope.toString() + property);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export default new ScopedValuesRegistry();
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Constructable } from '../types';
|
|
2
|
-
import graphRegistry from '../graph/registry/GraphRegistry';
|
|
3
|
-
import { ObjectGraph } from '../graph/ObjectGraph';
|
|
4
|
-
|
|
5
|
-
const injectionMetadataKey = 'injectionMetadata';
|
|
6
|
-
|
|
7
|
-
export function Injectable<T extends { new(...args: any[]): any }>(Graph: Constructable<ObjectGraph>): any {
|
|
8
|
-
return (Target: T) => {
|
|
9
|
-
const proxy = {
|
|
10
|
-
construct(target: any, args: any[], newTarget: any): new() => {} {
|
|
11
|
-
const keysToInject: string[] = Reflect.getMetadata(injectionMetadataKey, target) ?? [];
|
|
12
|
-
|
|
13
|
-
const createdObject = Reflect.construct(target, args, newTarget);
|
|
14
|
-
const graph = graphRegistry.resolve(Graph);
|
|
15
|
-
for (const key of keysToInject) {
|
|
16
|
-
Reflect.set(createdObject, key, graph.retrieve(key));
|
|
17
|
-
}
|
|
18
|
-
return createdObject;
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
return new Proxy(Target, proxy);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function Inject(target: Object, propertyKey: string) {
|
|
26
|
-
const keysToInject = Reflect.getMetadata(injectionMetadataKey, target.constructor) ?? new Set();
|
|
27
|
-
Reflect.defineMetadata(injectionMetadataKey, keysToInject.add(propertyKey), target.constructor);
|
|
28
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-param-reassign */
|
|
2
|
-
import { ClassMethod, Decorator, Program } from '@babel/types';
|
|
3
|
-
import { NodePath, PluginObj } from '@babel/core';
|
|
4
|
-
import {
|
|
5
|
-
addNameToProviderArguments,
|
|
6
|
-
getDecoratorName,
|
|
7
|
-
getProviderDecorator,
|
|
8
|
-
paramsToDestructuringAssignment,
|
|
9
|
-
providerIsNotNamed,
|
|
10
|
-
} from './helpers';
|
|
11
|
-
|
|
12
|
-
const providerArgumentsTransformer: PluginObj = {
|
|
13
|
-
visitor: {
|
|
14
|
-
Program(path: NodePath<Program>) {
|
|
15
|
-
path.traverse(internalVisitor);
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const internalVisitor = {
|
|
21
|
-
ClassMethod: {
|
|
22
|
-
enter({ node }: NodePath<ClassMethod>) {
|
|
23
|
-
const decorator = getProviderDecorator(node.decorators);
|
|
24
|
-
if (getDecoratorName(decorator) === 'Provides') {
|
|
25
|
-
convertProviderParamsToDestructuringAssignment(node);
|
|
26
|
-
saveUnmangledMethodNameInProviderArguments(node, decorator!);
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
function convertProviderParamsToDestructuringAssignment(node: ClassMethod) {
|
|
33
|
-
if (node.params.length === 0) return;
|
|
34
|
-
const destructuredParams = paramsToDestructuringAssignment(node.params);
|
|
35
|
-
node.params.length = 0;
|
|
36
|
-
node.params.push(destructuredParams);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function saveUnmangledMethodNameInProviderArguments(node: ClassMethod, decorator: Decorator) {
|
|
40
|
-
if (providerIsNotNamed(decorator)) {
|
|
41
|
-
addNameToProviderArguments(node, decorator);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export default function plugin() {
|
|
46
|
-
return providerArgumentsTransformer;
|
|
47
|
-
}
|