react-obsidian 0.0.9 → 0.0.10
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/dist/src/decorators/provides/MemoizeDescriptor.d.ts +2 -0
- package/dist/src/decorators/provides/MemoizeDescriptor.d.ts.map +1 -0
- package/dist/src/decorators/provides/MemoizeDescriptor.js +23 -0
- package/dist/src/decorators/provides/MemoizeDescriptor.js.map +1 -0
- package/dist/src/decorators/provides/Provides.js +2 -2
- 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 +4 -3
- package/dist/src/graph/ObjectGraph.js.map +1 -1
- package/dist/src/graph/autobind.d.ts +2 -0
- package/dist/src/graph/autobind.d.ts.map +1 -0
- package/dist/src/graph/autobind.js +12 -0
- package/dist/src/graph/autobind.js.map +1 -0
- package/dist/test/integration/fixtures/Subgraph.d.ts +1 -0
- package/dist/test/integration/fixtures/Subgraph.d.ts.map +1 -1
- package/dist/test/integration/fixtures/Subgraph.js +11 -1
- package/dist/test/integration/fixtures/Subgraph.js.map +1 -1
- package/package.json +1 -1
- package/src/decorators/provides/MemoizeDescriptor.ts +14 -0
- package/src/decorators/provides/Provides.ts +2 -2
- package/src/graph/ObjectGraph.ts +4 -2
- package/src/graph/autobind.ts +7 -0
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts +0 -2
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts.map +0 -1
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js +0 -20
- package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js.map +0 -1
- package/src/decorators/provides/PropertyDescriptorToSingleton.ts +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoizeDescriptor.d.ts","sourceRoot":"","sources":["../../../../src/decorators/provides/MemoizeDescriptor.ts"],"names":[],"mappings":"AACA,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,CAYzG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.memoizeDescriptor = void 0;
|
|
4
|
+
/* eslint-disable no-param-reassign */
|
|
5
|
+
function memoizeDescriptor(propertyKey, descriptor) {
|
|
6
|
+
var originalValue = descriptor.value;
|
|
7
|
+
descriptor.value = function value() {
|
|
8
|
+
var args = [];
|
|
9
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
10
|
+
args[_i] = arguments[_i];
|
|
11
|
+
}
|
|
12
|
+
var key = "memoized".concat(propertyKey);
|
|
13
|
+
if (Reflect.hasMetadata(key, this)) {
|
|
14
|
+
return Reflect.getMetadata(key, this);
|
|
15
|
+
}
|
|
16
|
+
var result = originalValue.apply(this, args);
|
|
17
|
+
Reflect.defineMetadata(key, result, this);
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
return descriptor;
|
|
21
|
+
}
|
|
22
|
+
exports.memoizeDescriptor = memoizeDescriptor;
|
|
23
|
+
//# sourceMappingURL=MemoizeDescriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoizeDescriptor.js","sourceRoot":"","sources":["../../../../src/decorators/provides/MemoizeDescriptor.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,SAAgB,iBAAiB,CAAC,WAAmB,EAAE,UAA8B;IACnF,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IACvC,UAAU,CAAC,KAAK,GAAG,SAAS,KAAK;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC9C,IAAM,GAAG,GAAG,kBAAW,WAAW,CAAE,CAAC;QACrC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAClC,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACvC;QACD,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAZD,8CAYC"}
|
|
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Provides = void 0;
|
|
7
7
|
var ProvidedPropertiesStore_1 = __importDefault(require("../../ProvidedPropertiesStore"));
|
|
8
|
-
var
|
|
8
|
+
var MemoizeDescriptor_1 = require("./MemoizeDescriptor");
|
|
9
9
|
function Provides(_a) {
|
|
10
10
|
var _b = _a === void 0 ? {} : _a, name = _b.name;
|
|
11
11
|
return function provide(graph, propertyKey, descriptor) {
|
|
12
12
|
ProvidedPropertiesStore_1.default.set(graph, propertyKey, name);
|
|
13
|
-
return (0,
|
|
13
|
+
return (0, MemoizeDescriptor_1.memoizeDescriptor)(propertyKey, descriptor);
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
exports.Provides = Provides;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":";;;;;;AAEA,0FAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":";;;;;;AAEA,0FAAoE;AACpE,yDAAwD;AAOxD,SAAgB,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IAC7B,OAAO,SAAS,OAAO,CAAC,KAAY,EAAE,WAAmB,EAAE,UAA8B;QACvF,iCAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAK,CAAC,CAAC;QACvD,OAAO,IAAA,qCAAiB,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AALD,4BAKC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Scope } from '../types';
|
|
2
2
|
import { Graph } from './Graph';
|
|
3
3
|
export declare abstract class ObjectGraph<T = unknown> implements Graph {
|
|
4
|
-
protected
|
|
4
|
+
protected _props?: T | undefined;
|
|
5
5
|
scope: Scope;
|
|
6
6
|
private propertyRetriever;
|
|
7
7
|
get name(): string;
|
|
8
|
-
constructor(
|
|
8
|
+
constructor(_props?: T | undefined);
|
|
9
9
|
retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=ObjectGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAUjD,SAAS,CAAC,MAAM,CAAC;IARtB,KAAK,EAAG,KAAK,CAAC;IACrB,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF"}
|
|
@@ -15,12 +15,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.ObjectGraph = void 0;
|
|
16
16
|
var lodash_1 = require("lodash");
|
|
17
17
|
var Memoize_1 = __importDefault(require("../decorators/Memoize"));
|
|
18
|
+
var autobind_1 = require("./autobind");
|
|
18
19
|
var PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
|
|
19
20
|
var ObjectGraph = /** @class */ (function () {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.props = props;
|
|
21
|
+
function ObjectGraph(_props) {
|
|
22
|
+
this._props = _props;
|
|
23
23
|
this.propertyRetriever = new PropertyRetriever_1.default(this);
|
|
24
|
+
(0, autobind_1.autobind)(this);
|
|
24
25
|
}
|
|
25
26
|
Object.defineProperty(ObjectGraph.prototype, "name", {
|
|
26
27
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAE5C,uCAAsC;AAEtC,0EAAoD;AAEpD;IAUE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAND,sBAAI,6BAAI;aAAR;YACE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IAVD;QADC,IAAA,iBAAO,GAAE;;;2CAGT;IASH,kBAAC;CAAA,AAjBD,IAiBC;AAjBqB,kCAAW"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autobind.d.ts","sourceRoot":"","sources":["../../../src/graph/autobind.ts"],"names":[],"mappings":"AACA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAKnD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.autobind = void 0;
|
|
4
|
+
/* eslint-disable no-param-reassign */
|
|
5
|
+
function autobind(target) {
|
|
6
|
+
var methods = Object.getOwnPropertyNames(Object.getPrototypeOf(target));
|
|
7
|
+
methods
|
|
8
|
+
.filter(function (method) { return (method !== 'constructor'); })
|
|
9
|
+
.forEach(function (method) { target[method] = target[method].bind(target); });
|
|
10
|
+
}
|
|
11
|
+
exports.autobind = autobind;
|
|
12
|
+
//# sourceMappingURL=autobind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autobind.js","sourceRoot":"","sources":["../../../src/graph/autobind.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,SAAgB,QAAQ,CAAC,MAA2B;IAClD,IAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,OAAO;SACJ,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC,MAAM,KAAK,aAAa,CAAC,EAA1B,CAA0B,CAAC;SAC9C,OAAO,CAAC,UAAC,MAAM,IAAO,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AALD,4BAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subgraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Subgraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,WAAW,EAAY,MAAM,cAAc,CAAC;AAE5D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAE/C,cAAc,IAAI,cAAc;IAKhC,kBAAkB,IAAI,MAAM;IAK5B,gBAAgB,IAAI,MAAM;IAK1B,UAAU,IAAI,MAAM;CAGrB"}
|
|
@@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
var lodash_1 = require("lodash");
|
|
30
31
|
var src_1 = require("../../../src");
|
|
31
32
|
var injectedValues_1 = __importDefault(require("./injectedValues"));
|
|
32
33
|
var StringProvider_1 = __importDefault(require("./StringProvider"));
|
|
@@ -42,7 +43,10 @@ var Subgraph = /** @class */ (function (_super) {
|
|
|
42
43
|
return injectedValues_1.default.fromSubgraph;
|
|
43
44
|
};
|
|
44
45
|
Subgraph.prototype.unusedDependency = function () {
|
|
45
|
-
throw Error('This dependency should not have been resolved since it not required by anyone.');
|
|
46
|
+
throw Error('This dependency should not have been resolved since it is not required by anyone.');
|
|
47
|
+
};
|
|
48
|
+
Subgraph.prototype.instanceId = function () {
|
|
49
|
+
return (0, lodash_1.uniqueId)('graph');
|
|
46
50
|
};
|
|
47
51
|
__decorate([
|
|
48
52
|
(0, src_1.Provides)(),
|
|
@@ -62,6 +66,12 @@ var Subgraph = /** @class */ (function (_super) {
|
|
|
62
66
|
__metadata("design:paramtypes", []),
|
|
63
67
|
__metadata("design:returntype", String)
|
|
64
68
|
], Subgraph.prototype, "unusedDependency", null);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, src_1.Provides)(),
|
|
71
|
+
__metadata("design:type", Function),
|
|
72
|
+
__metadata("design:paramtypes", []),
|
|
73
|
+
__metadata("design:returntype", String)
|
|
74
|
+
], Subgraph.prototype, "instanceId", null);
|
|
65
75
|
Subgraph = __decorate([
|
|
66
76
|
(0, src_1.Graph)()
|
|
67
77
|
], Subgraph);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA4D;AAC5D,oEAA8C;AAC9C,oEAA8C;AAG9C;IAAsC,4BAAW;IAAjD;;
|
|
1
|
+
{"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,oCAA4D;AAC5D,oEAA8C;AAC9C,oEAA8C;AAG9C;IAAsC,4BAAW;IAAjD;;IAoBA,CAAC;IAlBC,iCAAc,GAAd;QACE,OAAO,IAAI,wBAAc,EAAE,CAAC;IAC9B,CAAC;IAGD,qCAAkB,GAAlB;QACE,OAAO,wBAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAGD,mCAAgB,GAAhB;QACE,MAAM,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACnG,CAAC;IAGD,6BAAU,GAAV;QACE,OAAO,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAjBD;QADC,IAAA,cAAQ,GAAE;;;wCACO,wBAAc;kDAE/B;IAGD;QADC,IAAA,cAAQ,GAAE;;;;sDAGV;IAGD;QADC,IAAA,cAAQ,GAAE;;;;oDAGV;IAGD;QADC,IAAA,cAAQ,GAAE;;;;8CAGV;IAnBkB,QAAQ;QAD5B,IAAA,WAAK,GAAE;OACa,QAAQ,CAoB5B;IAAD,eAAC;CAAA,AApBD,CAAsC,iBAAW,GAoBhD;kBApBoB,QAAQ"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
export function memoizeDescriptor(propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {
|
|
3
|
+
const originalValue = descriptor.value;
|
|
4
|
+
descriptor.value = function value(...args: any[]) {
|
|
5
|
+
const key = `memoized${propertyKey}`;
|
|
6
|
+
if (Reflect.hasMetadata(key, this)) {
|
|
7
|
+
return Reflect.getMetadata(key, this);
|
|
8
|
+
}
|
|
9
|
+
const result = originalValue.apply(this, args);
|
|
10
|
+
Reflect.defineMetadata(key, result, this);
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
return descriptor;
|
|
14
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Scope } from '../../types';
|
|
2
2
|
import { Graph } from '../../graph/Graph';
|
|
3
3
|
import providedPropertiesStore from '../../ProvidedPropertiesStore';
|
|
4
|
-
import
|
|
4
|
+
import { memoizeDescriptor } from './MemoizeDescriptor';
|
|
5
5
|
|
|
6
6
|
interface ProvidesParams {
|
|
7
7
|
scope?: Scope;
|
|
@@ -11,6 +11,6 @@ interface ProvidesParams {
|
|
|
11
11
|
export function Provides({ name }: Partial<ProvidesParams> = {}) {
|
|
12
12
|
return function provide(graph: Graph, propertyKey: string, descriptor: PropertyDescriptor) {
|
|
13
13
|
providedPropertiesStore.set(graph, propertyKey, name!);
|
|
14
|
-
return
|
|
14
|
+
return memoizeDescriptor(propertyKey, descriptor);
|
|
15
15
|
};
|
|
16
16
|
}
|
package/src/graph/ObjectGraph.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { uniqueId } from 'lodash';
|
|
2
2
|
import Memoize from '../decorators/Memoize';
|
|
3
3
|
import { Scope } from '../types';
|
|
4
|
+
import { autobind } from './autobind';
|
|
4
5
|
import { Graph } from './Graph';
|
|
5
6
|
import PropertyRetriever from './PropertyRetriever';
|
|
6
7
|
|
|
@@ -14,8 +15,9 @@ export abstract class ObjectGraph<T = unknown> implements Graph {
|
|
|
14
15
|
return uniqueId(this.constructor.name);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
constructor(protected _props?: T) {
|
|
19
|
+
autobind(this);
|
|
20
|
+
}
|
|
19
21
|
|
|
20
22
|
retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined {
|
|
21
23
|
return this.propertyRetriever.retrieve(property, receiver) as Dependency | undefined;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
export function autobind(target: Record<string, any>) {
|
|
3
|
+
const methods = Object.getOwnPropertyNames(Object.getPrototypeOf(target));
|
|
4
|
+
methods
|
|
5
|
+
.filter((method) => (method !== 'constructor'))
|
|
6
|
+
.forEach((method) => { target[method] = target[method].bind(target); });
|
|
7
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
-
}
|