corexxx 1.0.95 → 1.0.97
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/dcache.d.ts +1 -1
- package/dist/dcache.js +24 -23
- package/dist/dcache.js.map +1 -1
- package/package.json +1 -1
- package/src/dcache.ts +18 -17
package/dist/dcache.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare namespace dcache {
|
|
2
2
|
function memoizeAsync(func: Function, timeoutms?: number, customKey?: string): (...args: any) => Promise<any>;
|
|
3
3
|
function memoize(func: Function, timeoutms?: number, customKey?: string): (...args: any) => any;
|
|
4
|
+
function ensureOneCallAsync(func: Function): (...args: any) => Promise<null | undefined>;
|
|
4
5
|
}
|
|
5
|
-
export declare function ensureOneCallAsync(func: Function): (...args: any) => Promise<void>;
|
package/dist/dcache.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.dcache = void 0;
|
|
13
13
|
const dlog_1 = require("./dlog");
|
|
14
14
|
var dcache;
|
|
15
15
|
(function (dcache) {
|
|
@@ -66,28 +66,29 @@ var dcache;
|
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
68
|
dcache.memoize = memoize;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
69
|
+
function ensureOneCallAsync(func) {
|
|
70
|
+
const cache = {};
|
|
71
|
+
return function memoized(...args) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const key = JSON.stringify(args);
|
|
74
|
+
if (!cache[key]) {
|
|
75
|
+
cache[key] = true;
|
|
76
|
+
try {
|
|
77
|
+
yield func(...args);
|
|
78
|
+
cache[key] = false;
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
cache[key] = false;
|
|
82
|
+
throw e;
|
|
83
|
+
}
|
|
80
84
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
else {
|
|
86
|
+
dlog_1.dlog.d("Perf:avoid call as another call in progress");
|
|
87
|
+
return null;
|
|
84
88
|
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
exports.ensureOneCallAsync = ensureOneCallAsync;
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
dcache.ensureOneCallAsync = ensureOneCallAsync;
|
|
93
|
+
})(dcache = exports.dcache || (exports.dcache = {}));
|
|
93
94
|
//# sourceMappingURL=dcache.js.map
|
package/dist/dcache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dcache.js","sourceRoot":"","sources":["../src/dcache.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iCAA8B;AAC9B,IAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"dcache.js","sourceRoot":"","sources":["../src/dcache.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iCAA8B;AAC9B,IAAiB,MAAM,CAqEtB;AArED,WAAiB,MAAM;IACrB;;;;;;;;;;QAUI;IACJ,gCAAgC;IAChC,SAAgB,YAAY,CAAC,IAAc,EAAE,SAAkB,EAAE,SAAkB;QACjF,MAAM,KAAK,GAAY,EAAE,CAAC;QAC1B,OAAO,SAAe,QAAQ,CAAC,GAAG,IAAS;;gBACzC,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACf,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACjC,IAAI,SAAS,EAAE;wBACb,UAAU,CAAC,GAAG,EAAE;4BACd,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;wBACzB,CAAC,EAAE,SAAS,CAAC,CAAC;qBACf;iBACF;qBAAM;oBACL,WAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;iBAC3C;gBACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;SAAA,CAAC;IACJ,CAAC;IAhBe,mBAAY,eAgB3B,CAAA;IAED,YAAY;IACZ,SAAgB,OAAO,CAAC,IAAc,EAAE,SAAkB,EAAE,SAAkB;QAC5E,MAAM,KAAK,GAAY,EAAE,CAAC;QAC1B,OAAO,SAAS,QAAQ,CAAC,GAAG,IAAS;YACnC,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACf,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3B,IAAI,SAAS,EAAE;oBACb,UAAU,CAAC,GAAG,EAAE;wBACd,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;oBACzB,CAAC,EAAE,SAAS,CAAC,CAAC;iBACf;aACF;iBAAM;gBACL,WAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;aAC3C;YACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAhBe,cAAO,UAgBtB,CAAA;IAED,SAAgB,kBAAkB,CAAC,IAAc;QAC/C,MAAM,KAAK,GAAY,EAAE,CAAC;QAC1B,OAAO,SAAe,QAAQ,CAAC,GAAG,IAAS;;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACf,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAClB,IAAI;wBACF,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;wBACpB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qBACpB;oBAAC,OAAO,CAAC,EAAE;wBACV,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBACnB,MAAM,CAAC,CAAC;qBACT;iBACF;qBAAM;oBACL,WAAI,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC;oBACtD,OAAO,IAAI,CAAC;iBACb;YACH,CAAC;SAAA,CAAC;IACJ,CAAC;IAlBe,yBAAkB,qBAkBjC,CAAA;AACH,CAAC,EArEgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAqEtB"}
|
package/package.json
CHANGED
package/src/dcache.ts
CHANGED
|
@@ -49,23 +49,24 @@ export namespace dcache {
|
|
|
49
49
|
return cache[key];
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
}
|
|
53
52
|
|
|
54
|
-
export function ensureOneCallAsync(func: Function) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
53
|
+
export function ensureOneCallAsync(func: Function) {
|
|
54
|
+
const cache: TObject = {};
|
|
55
|
+
return async function memoized(...args: any) {
|
|
56
|
+
const key = JSON.stringify(args);
|
|
57
|
+
if (!cache[key]) {
|
|
58
|
+
cache[key] = true;
|
|
59
|
+
try {
|
|
60
|
+
await func(...args);
|
|
61
|
+
cache[key] = false;
|
|
62
|
+
} catch (e) {
|
|
63
|
+
cache[key] = false;
|
|
64
|
+
throw e;
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
dlog.d("Perf:avoid call as another call in progress");
|
|
68
|
+
return null;
|
|
66
69
|
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
};
|
|
70
|
+
};
|
|
71
|
+
}
|
|
71
72
|
}
|