forked from ttc/micro-service-api
-first commit
This commit is contained in:
38
node_modules/@redis/client/dist/lib/single-entry-cache.js
generated
vendored
Normal file
38
node_modules/@redis/client/dist/lib/single-entry-cache.js
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class SingleEntryCache {
|
||||
#cached;
|
||||
#serializedKey;
|
||||
/**
|
||||
* Retrieves an instance from the cache based on the provided key object.
|
||||
*
|
||||
* @param keyObj - The key object to look up in the cache.
|
||||
* @returns The cached instance if found, undefined otherwise.
|
||||
*
|
||||
* @remarks
|
||||
* This method uses JSON.stringify for comparison, which may not work correctly
|
||||
* if the properties in the key object are rearranged or reordered.
|
||||
*/
|
||||
get(keyObj) {
|
||||
return JSON.stringify(keyObj, makeCircularReplacer()) === this.#serializedKey ? this.#cached : undefined;
|
||||
}
|
||||
set(keyObj, obj) {
|
||||
this.#cached = obj;
|
||||
this.#serializedKey = JSON.stringify(keyObj, makeCircularReplacer());
|
||||
}
|
||||
}
|
||||
exports.default = SingleEntryCache;
|
||||
function makeCircularReplacer() {
|
||||
const seen = new WeakSet();
|
||||
return function serialize(_, value) {
|
||||
if (value && typeof value === 'object') {
|
||||
if (seen.has(value)) {
|
||||
return 'circular';
|
||||
}
|
||||
seen.add(value);
|
||||
return value;
|
||||
}
|
||||
return value;
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=single-entry-cache.js.map
|
||||
Reference in New Issue
Block a user