react-obsidian 0.0.3 → 0.0.4
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 +1 -0
- package/README.md +0 -1
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts +2 -0
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts.map +1 -0
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js +20 -0
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js.map +1 -0
- package/dist/src/{Provides.d.ts → decorators/provides/Provides.d.ts} +1 -1
- package/dist/src/decorators/provides/Provides.d.ts.map +1 -0
- package/dist/src/{Provides.js → decorators/provides/Provides.js} +3 -2
- package/dist/src/decorators/provides/Provides.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/transformers/babel-plugin-obsidian-provide/index.d.ts.map +1 -1
- package/dist/transformers/babel-plugin-obsidian-provide/index.js +2 -0
- package/dist/transformers/babel-plugin-obsidian-provide/index.js.map +1 -1
- package/package.json +1 -1
- package/src/decorators/provides/PropertyDescriptorToSingleton.ts +11 -0
- package/src/{Provides.ts → decorators/provides/Provides.ts} +4 -3
- package/src/index.ts +1 -1
- package/transformers/babel-plugin-obsidian-provide/index.ts +1 -0
- package/dist/src/Provides.d.ts.map +0 -1
- package/dist/src/Provides.js.map +0 -1
package/.eslintrc.json
CHANGED
package/README.md
CHANGED
|
@@ -145,7 +145,6 @@ module.exports = {
|
|
|
145
145
|
presets: ['module:metro-react-native-babel-preset'],
|
|
146
146
|
plugins: [
|
|
147
147
|
['@babel/plugin-proposal-decorators', {legacy: true}],
|
|
148
|
-
['@babel/plugin-proposal-class-properties', {legacy: true}],
|
|
149
148
|
[`${__dirname}/../dist/transformers/babel-plugin-obsidian-provide`],
|
|
150
149
|
],
|
|
151
150
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyDescriptorToSingleton.d.ts","sourceRoot":"","sources":["../../../../src/decorators/provides/PropertyDescriptorToSingleton.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,CASxF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable no-param-reassign */
|
|
4
|
+
function makeSingleton(descriptor) {
|
|
5
|
+
var originalValue = descriptor.value;
|
|
6
|
+
var createdDependency;
|
|
7
|
+
descriptor.value = function value() {
|
|
8
|
+
var args = [];
|
|
9
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
10
|
+
args[_i] = arguments[_i];
|
|
11
|
+
}
|
|
12
|
+
if (createdDependency)
|
|
13
|
+
return createdDependency;
|
|
14
|
+
createdDependency = originalValue.apply(this, args);
|
|
15
|
+
return createdDependency;
|
|
16
|
+
};
|
|
17
|
+
return descriptor;
|
|
18
|
+
}
|
|
19
|
+
exports.default = makeSingleton;
|
|
20
|
+
//# sourceMappingURL=PropertyDescriptorToSingleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyDescriptorToSingleton.js","sourceRoot":"","sources":["../../../../src/decorators/provides/PropertyDescriptorToSingleton.ts"],"names":[],"mappings":";;AAAA,sCAAsC;AACtC,SAAwB,aAAa,CAAC,UAA8B;IAClE,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IACvC,IAAI,iBAAsB,CAAC;IAC3B,UAAU,CAAC,KAAK,GAAG,SAAS,KAAK;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC9C,IAAI,iBAAiB;YAAE,OAAO,iBAAiB,CAAC;QAChD,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AATD,gCASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provides.d.ts","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAItC,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAE,OAAO,CAAC,cAAc,CAAM,WACvB,KAAK,eAAe,MAAM,cAAc,kBAAkB,wBAI1F;AACD,eAAe,QAAQ,CAAC"}
|
|
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var ProvidedPropertiesStore_1 = __importDefault(require("
|
|
6
|
+
var ProvidedPropertiesStore_1 = __importDefault(require("../../ProvidedPropertiesStore"));
|
|
7
|
+
var PropertyDescriptorToSingleton_1 = __importDefault(require("./PropertyDescriptorToSingleton"));
|
|
7
8
|
function Provides(_a) {
|
|
8
9
|
var _b = _a === void 0 ? {} : _a, name = _b.name;
|
|
9
10
|
return function provide(graph, propertyKey, descriptor) {
|
|
10
11
|
ProvidedPropertiesStore_1.default.set(graph, propertyKey, name);
|
|
11
|
-
return descriptor;
|
|
12
|
+
return (0, PropertyDescriptorToSingleton_1.default)(descriptor);
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
15
|
exports.default = Provides;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":";;;;;AAEA,0FAAoE;AACpE,kGAA4D;AAO5D,SAAS,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IACtB,OAAO,SAAS,OAAO,CAAC,KAAY,EAAE,WAAmB,EAAE,UAA8B;QACvF,iCAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAK,CAAC,CAAC;QACvD,OAAO,IAAA,uCAAa,EAAC,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AACD,kBAAe,QAAQ,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { Constructable } from '@Obsidian';
|
|
3
3
|
import _Graph from './decorators/Graph';
|
|
4
4
|
import _ObjectGraph from './graph/ObjectGraph';
|
|
5
|
-
import _Provides from './Provides';
|
|
5
|
+
import _Provides from './decorators/provides/Provides';
|
|
6
6
|
import { Inject as _Inject, Injectable as _Injectable } from './decorators/injectClass';
|
|
7
7
|
import _obsidian from './Obsidian';
|
|
8
8
|
export declare const Graph: typeof _Graph;
|
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,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,eAAO,MAAM,KAAK,eAAS,CAAC;AAC5B,eAAO,MAAM,WAAW,qBAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,kBAAY,CAAC;AAClC,eAAO,MAAM,UAAU,oBAAc,CAAC;AACtC,eAAO,MAAM,MAAM,gBAAU,CAAC;AAC9B,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,qDAEjB,cAAc,YAAY,CAAC,wCACU,CAAC;AAGjD,eAAO,MAAM,UAAU,wDAEZ,cAAc,YAAY,CAAC,iDACC,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.injectHook = exports.injectComponent = exports.Obsidian = exports.Inject
|
|
|
7
7
|
var Graph_1 = __importDefault(require("./decorators/Graph"));
|
|
8
8
|
var ObjectGraph_1 = __importDefault(require("./graph/ObjectGraph"));
|
|
9
9
|
var ComponentInjector_1 = __importDefault(require("./injectors/components/ComponentInjector"));
|
|
10
|
-
var Provides_1 = __importDefault(require("./Provides"));
|
|
10
|
+
var Provides_1 = __importDefault(require("./decorators/provides/Provides"));
|
|
11
11
|
var injectClass_1 = require("./decorators/injectClass");
|
|
12
12
|
var Obsidian_1 = __importDefault(require("./Obsidian"));
|
|
13
13
|
var HookInjector_1 = __importDefault(require("./injectors/hooks/HookInjector"));
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,6DAAwC;AACxC,oEAA+C;AAC/C,+FAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,6DAAwC;AACxC,oEAA+C;AAC/C,+FAAyE;AACzE,4EAAuD;AACvD,wDAAwF;AACxF,wDAAmC;AACnC,gFAA0D;AAE7C,QAAA,KAAK,GAAG,eAAM,CAAC;AACf,QAAA,WAAW,GAAG,qBAAY,CAAC;AAC3B,QAAA,QAAQ,GAAG,kBAAS,CAAC;AACrB,QAAA,UAAU,GAAG,wBAAW,CAAC;AACzB,QAAA,MAAM,GAAG,oBAAO,CAAC;AACjB,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,QAAoC,EACpC,OAAoC,IACjC,OAAA,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA3C,CAA2C,CAAC;AAHpC,QAAA,eAAe,mBAGqB;AAEjD,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AACjC,IAAM,UAAU,GAAG,UACxB,IAA4B,EAC5B,OAAoC,IACjC,OAAA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAlC,CAAkC,CAAC;AAH3B,QAAA,UAAU,cAGiB"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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"}
|
|
@@ -21,6 +21,8 @@ var internalVisitor = {
|
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
23
|
function convertProviderParamsToDestructuringAssignment(node) {
|
|
24
|
+
if (node.params.length === 0)
|
|
25
|
+
return;
|
|
24
26
|
var destructuredParams = (0, helpers_1.paramsToDestructuringAssignment)(node.params);
|
|
25
27
|
node.params.length = 0;
|
|
26
28
|
node.params.push(destructuredParams);
|
|
@@ -1 +1 @@
|
|
|
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,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
|
+
{"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
export default function makeSingleton(descriptor: PropertyDescriptor): PropertyDescriptor {
|
|
3
|
+
const originalValue = descriptor.value;
|
|
4
|
+
let createdDependency: any;
|
|
5
|
+
descriptor.value = function value(...args: any[]) {
|
|
6
|
+
if (createdDependency) return createdDependency;
|
|
7
|
+
createdDependency = originalValue.apply(this, args);
|
|
8
|
+
return createdDependency;
|
|
9
|
+
};
|
|
10
|
+
return descriptor;
|
|
11
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Scope } from '@Obsidian';
|
|
2
|
-
import Graph from '
|
|
3
|
-
import providedPropertiesStore from '
|
|
2
|
+
import Graph from '../../graph/Graph';
|
|
3
|
+
import providedPropertiesStore from '../../ProvidedPropertiesStore';
|
|
4
|
+
import makeSingleton from './PropertyDescriptorToSingleton';
|
|
4
5
|
|
|
5
6
|
interface ProvidesParams {
|
|
6
7
|
scope?: Scope;
|
|
@@ -10,7 +11,7 @@ interface ProvidesParams {
|
|
|
10
11
|
function Provides({ name }: Partial<ProvidesParams> = {}) {
|
|
11
12
|
return function provide(graph: Graph, propertyKey: string, descriptor: PropertyDescriptor) {
|
|
12
13
|
providedPropertiesStore.set(graph, propertyKey, name!);
|
|
13
|
-
return descriptor;
|
|
14
|
+
return makeSingleton(descriptor);
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
export default Provides;
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Constructable } from '@Obsidian';
|
|
|
3
3
|
import _Graph from './decorators/Graph';
|
|
4
4
|
import _ObjectGraph from './graph/ObjectGraph';
|
|
5
5
|
import ComponentInjector from './injectors/components/ComponentInjector';
|
|
6
|
-
import _Provides from './Provides';
|
|
6
|
+
import _Provides from './decorators/provides/Provides';
|
|
7
7
|
import { Inject as _Inject, Injectable as _Injectable } from './decorators/injectClass';
|
|
8
8
|
import _obsidian from './Obsidian';
|
|
9
9
|
import HookInjector from './injectors/hooks/HookInjector';
|
|
@@ -30,6 +30,7 @@ const internalVisitor = {
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
function convertProviderParamsToDestructuringAssignment(node: ClassMethod) {
|
|
33
|
+
if (node.params.length === 0) return;
|
|
33
34
|
const destructuredParams = paramsToDestructuringAssignment(node.params);
|
|
34
35
|
node.params.length = 0;
|
|
35
36
|
node.params.push(destructuredParams);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Provides.d.ts","sourceRoot":"","sources":["../../src/Provides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,eAAe,CAAC;AAGlC,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAE,OAAO,CAAC,cAAc,CAAM,WACvB,KAAK,eAAe,MAAM,cAAc,kBAAkB,wBAI1F;AACD,eAAe,QAAQ,CAAC"}
|
package/dist/src/Provides.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../src/Provides.ts"],"names":[],"mappings":";;;;;AAEA,sFAAgE;AAOhE,SAAS,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IACtB,OAAO,SAAS,OAAO,CAAC,KAAY,EAAE,WAAmB,EAAE,UAA8B;QACvF,iCAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAK,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AACD,kBAAe,QAAQ,CAAC"}
|