ts-packages 2.0.0 → 3.0.0
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/package.json +1 -1
- package/packages/cache/README.md +105 -9
- package/packages/cache/dist/cjs/adapters/memcache/MemcacheCache.d.ts +1 -54
- package/packages/cache/dist/cjs/adapters/memcache/MemcacheCache.js +75 -281
- package/packages/cache/dist/cjs/adapters/memory/MemoryCache.js +76 -22
- package/packages/cache/dist/cjs/adapters/redis/RedisCache.js +84 -26
- package/packages/cache/dist/cjs/core/BaseCache.js +13 -4
- package/packages/cache/dist/cjs/core/factory.js +26 -4
- package/packages/cache/dist/cjs/errors/CacheError.d.ts +10 -7
- package/packages/cache/dist/cjs/errors/CacheError.js +6 -11
- package/packages/cache/dist/cjs/errors/cacheErrorCodes.d.ts +22 -0
- package/packages/cache/dist/cjs/errors/cacheErrorCodes.js +24 -0
- package/packages/cache/dist/cjs/errors/index.js +3 -0
- package/packages/cache/dist/cjs/middleware/express/cacheMiddleware.js +8 -8
- package/packages/cache/dist/cjs/session/SessionStore.js +84 -28
- package/packages/cache/dist/esm/adapters/memcache/MemcacheCache.d.ts +1 -54
- package/packages/cache/dist/esm/adapters/memcache/MemcacheCache.js +75 -281
- package/packages/cache/dist/esm/adapters/memory/MemoryCache.js +76 -22
- package/packages/cache/dist/esm/adapters/redis/RedisCache.js +84 -26
- package/packages/cache/dist/esm/core/BaseCache.js +13 -4
- package/packages/cache/dist/esm/core/factory.js +26 -4
- package/packages/cache/dist/esm/errors/CacheError.d.ts +10 -7
- package/packages/cache/dist/esm/errors/CacheError.js +6 -11
- package/packages/cache/dist/esm/errors/cacheErrorCodes.d.ts +22 -0
- package/packages/cache/dist/esm/errors/cacheErrorCodes.js +21 -0
- package/packages/cache/dist/esm/errors/index.js +3 -0
- package/packages/cache/dist/esm/middleware/express/cacheMiddleware.js +8 -8
- package/packages/cache/dist/esm/session/SessionStore.js +84 -28
- package/packages/cache/dist/types/adapters/memcache/MemcacheCache.d.ts +1 -54
- package/packages/cache/dist/types/errors/CacheError.d.ts +10 -7
- package/packages/cache/dist/types/errors/cacheErrorCodes.d.ts +22 -0
- package/packages/cache/package.json +8 -6
- package/packages/cache/src/adapters/memcache/MemcacheCache.ts +79 -352
- package/packages/cache/src/adapters/memory/MemoryCache.ts +76 -77
- package/packages/cache/src/adapters/redis/RedisCache.ts +84 -86
- package/packages/cache/src/core/BaseCache.ts +13 -14
- package/packages/cache/src/core/factory.ts +27 -16
- package/packages/cache/src/errors/CacheError.ts +16 -17
- package/packages/cache/src/errors/cacheErrorCodes.ts +24 -0
- package/packages/cache/src/errors/index.ts +5 -0
- package/packages/cache/src/middleware/express/cacheMiddleware.ts +8 -8
- package/packages/cache/src/session/SessionStore.ts +84 -84
- package/packages/errors-utils/README.md +54 -57
- package/packages/errors-utils/dist/cjs/constants/errorCodes.d.ts +28 -23
- package/packages/errors-utils/dist/cjs/constants/errorCodes.js +57 -22
- package/packages/errors-utils/dist/cjs/constants/errorMessages.d.ts +8 -1
- package/packages/errors-utils/dist/cjs/constants/errorMessages.js +72 -29
- package/packages/errors-utils/dist/cjs/error/AppError.d.ts +2 -2
- package/packages/errors-utils/dist/cjs/error/AppError.js +2 -2
- package/packages/errors-utils/dist/cjs/error/ServiceUnavailableError.d.ts +4 -0
- package/packages/errors-utils/dist/cjs/error/ServiceUnavailableError.js +11 -0
- package/packages/errors-utils/dist/cjs/error/TokenExpiredError.d.ts +2 -2
- package/packages/errors-utils/dist/cjs/error/TokenExpiredError.js +2 -2
- package/packages/errors-utils/dist/cjs/error/TokenMalformedError.d.ts +2 -2
- package/packages/errors-utils/dist/cjs/error/TokenMalformedError.js +2 -2
- package/packages/errors-utils/dist/cjs/error/UnauthorizedError.d.ts +1 -2
- package/packages/errors-utils/dist/cjs/error/UnauthorizedError.js +2 -2
- package/packages/errors-utils/dist/cjs/error/index.d.ts +14 -0
- package/packages/errors-utils/dist/cjs/error/index.js +39 -0
- package/packages/errors-utils/dist/cjs/errorRegistry/errorRegistry.d.ts +19 -0
- package/packages/errors-utils/dist/cjs/errorRegistry/errorRegistry.js +63 -0
- package/packages/errors-utils/dist/cjs/errorRegistry/index.d.ts +3 -0
- package/packages/errors-utils/dist/cjs/errorRegistry/index.js +6 -0
- package/packages/errors-utils/dist/cjs/index.d.ts +3 -9
- package/packages/errors-utils/dist/cjs/index.js +12 -9
- package/packages/errors-utils/dist/cjs/middleware/express/{errorHandler.js → errorHandler.middleware.js} +4 -4
- package/packages/errors-utils/dist/cjs/middleware/express/index.d.ts +2 -2
- package/packages/errors-utils/dist/cjs/middleware/express/index.js +2 -2
- package/packages/errors-utils/dist/esm/constants/errorCodes.d.ts +28 -23
- package/packages/errors-utils/dist/esm/constants/errorCodes.js +57 -22
- package/packages/errors-utils/dist/esm/constants/errorMessages.d.ts +8 -1
- package/packages/errors-utils/dist/esm/constants/errorMessages.js +72 -29
- package/packages/errors-utils/dist/esm/error/AppError.d.ts +2 -2
- package/packages/errors-utils/dist/esm/error/AppError.js +2 -2
- package/packages/errors-utils/dist/esm/error/ServiceUnavailableError.d.ts +4 -0
- package/packages/errors-utils/dist/esm/error/ServiceUnavailableError.js +7 -0
- package/packages/errors-utils/dist/esm/error/TokenExpiredError.d.ts +2 -2
- package/packages/errors-utils/dist/esm/error/TokenExpiredError.js +2 -2
- package/packages/errors-utils/dist/esm/error/TokenMalformedError.d.ts +2 -2
- package/packages/errors-utils/dist/esm/error/TokenMalformedError.js +2 -2
- package/packages/errors-utils/dist/esm/error/UnauthorizedError.d.ts +1 -2
- package/packages/errors-utils/dist/esm/error/UnauthorizedError.js +2 -2
- package/packages/errors-utils/dist/esm/error/index.d.ts +14 -0
- package/packages/errors-utils/dist/esm/error/index.js +23 -0
- package/packages/errors-utils/dist/esm/errorRegistry/errorRegistry.d.ts +19 -0
- package/packages/errors-utils/dist/esm/errorRegistry/errorRegistry.js +59 -0
- package/packages/errors-utils/dist/esm/errorRegistry/index.d.ts +3 -0
- package/packages/errors-utils/dist/esm/errorRegistry/index.js +3 -0
- package/packages/errors-utils/dist/esm/index.d.ts +3 -9
- package/packages/errors-utils/dist/esm/index.js +12 -9
- package/packages/errors-utils/dist/esm/middleware/express/{errorHandler.js → errorHandler.middleware.js} +5 -5
- package/packages/errors-utils/dist/esm/middleware/express/index.d.ts +2 -2
- package/packages/errors-utils/dist/esm/middleware/express/index.js +2 -2
- package/packages/errors-utils/dist/types/constants/errorCodes.d.ts +28 -23
- package/packages/errors-utils/dist/types/constants/errorMessages.d.ts +8 -1
- package/packages/errors-utils/dist/types/error/AppError.d.ts +2 -2
- package/packages/errors-utils/dist/types/error/ServiceUnavailableError.d.ts +4 -0
- package/packages/errors-utils/dist/types/error/TokenExpiredError.d.ts +2 -2
- package/packages/errors-utils/dist/types/error/TokenMalformedError.d.ts +2 -2
- package/packages/errors-utils/dist/types/error/UnauthorizedError.d.ts +1 -2
- package/packages/errors-utils/dist/types/error/index.d.ts +14 -0
- package/packages/errors-utils/dist/types/errorRegistry/errorRegistry.d.ts +19 -0
- package/packages/errors-utils/dist/types/errorRegistry/index.d.ts +3 -0
- package/packages/errors-utils/dist/types/index.d.ts +3 -9
- package/packages/errors-utils/dist/types/middleware/express/index.d.ts +2 -2
- package/packages/errors-utils/package.json +4 -4
- package/packages/errors-utils/src/constants/errorCodes.ts +64 -23
- package/packages/errors-utils/src/constants/errorMessages.ts +91 -34
- package/packages/errors-utils/src/error/AppError.ts +3 -2
- package/packages/errors-utils/src/error/ServiceUnavailableError.ts +8 -0
- package/packages/errors-utils/src/error/TokenExpiredError.ts +2 -2
- package/packages/errors-utils/src/error/TokenMalformedError.ts +2 -2
- package/packages/errors-utils/src/error/UnauthorizedError.ts +8 -8
- package/packages/errors-utils/src/error/index.ts +26 -0
- package/packages/errors-utils/src/errorRegistry/errorRegistry.ts +74 -0
- package/packages/errors-utils/src/errorRegistry/index.ts +4 -0
- package/packages/errors-utils/src/index.ts +12 -10
- package/packages/errors-utils/src/middleware/express/{errorHandler.ts → errorHandler.middleware.ts} +5 -5
- package/packages/errors-utils/src/middleware/express/index.ts +2 -2
- package/packages/js-extensions/README.md +174 -425
- package/packages/js-extensions/dist/cjs/array/array-extensions.js +84 -50
- package/packages/js-extensions/dist/cjs/core/performance.d.ts +1 -0
- package/packages/js-extensions/dist/cjs/core/performance.js +6 -0
- package/packages/js-extensions/dist/cjs/core/version.d.ts +1 -0
- package/packages/js-extensions/dist/cjs/core/version.js +9 -0
- package/packages/js-extensions/dist/cjs/index.d.ts +1 -0
- package/packages/js-extensions/dist/cjs/index.js +1 -0
- package/packages/js-extensions/dist/cjs/number/number-extensions.js +85 -97
- package/packages/js-extensions/dist/cjs/object/object-extensions.js +102 -103
- package/packages/js-extensions/dist/cjs/string/string-extensions.js +66 -43
- package/packages/js-extensions/dist/cjs/types/global-augmentations.d.ts +1 -0
- package/packages/js-extensions/dist/cjs/utils/defineExtension.d.ts +1 -0
- package/packages/js-extensions/dist/cjs/utils/defineExtension.js +13 -0
- package/packages/js-extensions/dist/cjs/utils/index.d.ts +1 -0
- package/packages/js-extensions/dist/cjs/utils/index.js +1 -0
- package/packages/js-extensions/dist/esm/array/array-extensions.js +84 -50
- package/packages/js-extensions/dist/esm/core/performance.d.ts +1 -0
- package/packages/js-extensions/dist/esm/core/performance.js +5 -0
- package/packages/js-extensions/dist/esm/core/version.d.ts +1 -0
- package/packages/js-extensions/dist/esm/core/version.js +5 -0
- package/packages/js-extensions/dist/esm/index.d.ts +1 -0
- package/packages/js-extensions/dist/esm/index.js +1 -0
- package/packages/js-extensions/dist/esm/number/number-extensions.js +86 -98
- package/packages/js-extensions/dist/esm/object/object-extensions.js +102 -103
- package/packages/js-extensions/dist/esm/string/string-extensions.js +66 -43
- package/packages/js-extensions/dist/esm/types/global-augmentations.d.ts +1 -0
- package/packages/js-extensions/dist/esm/utils/defineExtension.d.ts +1 -0
- package/packages/js-extensions/dist/esm/utils/defineExtension.js +10 -0
- package/packages/js-extensions/dist/esm/utils/index.d.ts +1 -0
- package/packages/js-extensions/dist/esm/utils/index.js +1 -0
- package/packages/js-extensions/dist/types/core/performance.d.ts +1 -0
- package/packages/js-extensions/dist/types/core/version.d.ts +1 -0
- package/packages/js-extensions/dist/types/index.d.ts +1 -0
- package/packages/js-extensions/dist/types/types/global-augmentations.d.ts +1 -0
- package/packages/js-extensions/dist/types/utils/defineExtension.d.ts +1 -0
- package/packages/js-extensions/dist/types/utils/index.d.ts +1 -0
- package/packages/js-extensions/package.json +8 -4
- package/packages/js-extensions/src/array/array-extensions.ts +268 -150
- package/packages/js-extensions/src/core/performance.ts +11 -0
- package/packages/js-extensions/src/core/version.ts +7 -0
- package/packages/js-extensions/src/index.ts +2 -0
- package/packages/js-extensions/src/number/number-extensions.ts +90 -123
- package/packages/js-extensions/src/object/object-extensions.ts +102 -130
- package/packages/js-extensions/src/string/string-extensions.ts +80 -76
- package/packages/js-extensions/src/types/global-augmentations.ts +2 -1
- package/packages/js-extensions/src/utils/defineExtension.ts +14 -0
- package/packages/js-extensions/src/utils/index.ts +1 -0
- package/packages/response-utils/README.md +156 -198
- package/packages/response-utils/dist/cjs/core/BaseResponder.js +20 -4
- package/packages/response-utils/dist/cjs/index.d.ts +0 -1
- package/packages/response-utils/dist/cjs/index.js +1 -25
- package/packages/response-utils/dist/esm/core/BaseResponder.js +20 -4
- package/packages/response-utils/dist/esm/index.d.ts +0 -1
- package/packages/response-utils/dist/esm/index.js +0 -2
- package/packages/response-utils/dist/types/index.d.ts +0 -1
- package/packages/response-utils/package.json +1 -1
- package/packages/response-utils/src/core/BaseResponder.ts +25 -4
- package/packages/response-utils/src/index.ts +0 -3
- package/packages/response-utils/src/middleware/express/expressMiddleware.ts +1 -1
- package/packages/security/README.md +153 -355
- package/packages/security/dist/cjs/core/crypto/cryptoManager.js +34 -17
- package/packages/security/dist/cjs/core/jwt/decode.js +4 -1
- package/packages/security/dist/cjs/core/jwt/generateTokens.js +4 -1
- package/packages/security/dist/cjs/core/jwt/jwtManager.d.ts +19 -43
- package/packages/security/dist/cjs/core/jwt/jwtManager.js +84 -199
- package/packages/security/dist/cjs/core/jwt/parseDuration.js +3 -2
- package/packages/security/dist/cjs/core/jwt/signToken.js +2 -1
- package/packages/security/dist/cjs/core/jwt/validateToken.d.ts +10 -7
- package/packages/security/dist/cjs/core/jwt/validateToken.js +19 -10
- package/packages/security/dist/cjs/core/jwt/verify.d.ts +8 -9
- package/packages/security/dist/cjs/core/jwt/verify.js +59 -14
- package/packages/security/dist/cjs/core/password/hash.js +4 -4
- package/packages/security/dist/cjs/core/password/passwordManager.d.ts +1 -1
- package/packages/security/dist/cjs/core/password/passwordManager.js +36 -80
- package/packages/security/dist/cjs/core/password/strength.js +12 -6
- package/packages/security/dist/cjs/core/password/utils.d.ts +12 -0
- package/packages/security/dist/cjs/core/password/utils.js +16 -1
- package/packages/security/dist/cjs/core/password/verify.js +4 -4
- package/packages/security/dist/cjs/index.d.ts +2 -7
- package/packages/security/dist/esm/core/crypto/cryptoManager.js +34 -17
- package/packages/security/dist/esm/core/jwt/decode.js +4 -1
- package/packages/security/dist/esm/core/jwt/generateTokens.js +4 -1
- package/packages/security/dist/esm/core/jwt/jwtManager.d.ts +19 -43
- package/packages/security/dist/esm/core/jwt/jwtManager.js +85 -200
- package/packages/security/dist/esm/core/jwt/parseDuration.js +3 -2
- package/packages/security/dist/esm/core/jwt/signToken.js +2 -1
- package/packages/security/dist/esm/core/jwt/validateToken.d.ts +10 -7
- package/packages/security/dist/esm/core/jwt/validateToken.js +19 -10
- package/packages/security/dist/esm/core/jwt/verify.d.ts +8 -9
- package/packages/security/dist/esm/core/jwt/verify.js +58 -13
- package/packages/security/dist/esm/core/password/hash.js +4 -4
- package/packages/security/dist/esm/core/password/passwordManager.d.ts +1 -1
- package/packages/security/dist/esm/core/password/passwordManager.js +36 -80
- package/packages/security/dist/esm/core/password/strength.js +12 -6
- package/packages/security/dist/esm/core/password/utils.d.ts +12 -0
- package/packages/security/dist/esm/core/password/utils.js +16 -1
- package/packages/security/dist/esm/core/password/verify.js +4 -4
- package/packages/security/dist/esm/index.d.ts +2 -7
- package/packages/security/dist/types/core/jwt/jwtManager.d.ts +19 -43
- package/packages/security/dist/types/core/jwt/validateToken.d.ts +10 -7
- package/packages/security/dist/types/core/jwt/verify.d.ts +8 -9
- package/packages/security/dist/types/core/password/passwordManager.d.ts +1 -1
- package/packages/security/dist/types/core/password/utils.d.ts +12 -0
- package/packages/security/dist/types/index.d.ts +2 -7
- package/packages/security/package.json +3 -3
- package/packages/security/src/core/crypto/cryptoManager.ts +53 -21
- package/packages/security/src/core/jwt/decode.ts +4 -1
- package/packages/security/src/core/jwt/generateTokens.ts +4 -1
- package/packages/security/src/core/jwt/jwtManager.ts +105 -257
- package/packages/security/src/core/jwt/parseDuration.ts +4 -2
- package/packages/security/src/core/jwt/signToken.ts +2 -1
- package/packages/security/src/core/jwt/validateToken.ts +21 -13
- package/packages/security/src/core/jwt/verify.ts +82 -20
- package/packages/security/src/core/password/hash.ts +10 -4
- package/packages/security/src/core/password/passwordManager.ts +38 -108
- package/packages/security/src/core/password/strength.ts +13 -8
- package/packages/security/src/core/password/utils.ts +19 -3
- package/packages/security/src/core/password/verify.ts +6 -4
- package/packages/server-utils/README.md +1 -1
- package/packages/server-utils/dist/cjs/core/server.js +6 -6
- package/packages/server-utils/dist/cjs/middleware/auth.middleware.d.ts +1 -2
- package/packages/server-utils/dist/cjs/middleware/auth.middleware.js +17 -14
- package/packages/server-utils/dist/cjs/middleware/cache.middleware.js +2 -2
- package/packages/server-utils/dist/cjs/middleware/errorHandler.middleware.d.ts +1 -1
- package/packages/server-utils/dist/cjs/middleware/errorHandler.middleware.js +34 -17
- package/packages/server-utils/dist/cjs/middleware/session.middleware.js +8 -8
- package/packages/server-utils/dist/cjs/middleware/validation.middleware.js +2 -2
- package/packages/server-utils/dist/esm/core/server.js +6 -6
- package/packages/server-utils/dist/esm/middleware/auth.middleware.d.ts +1 -2
- package/packages/server-utils/dist/esm/middleware/auth.middleware.js +18 -15
- package/packages/server-utils/dist/esm/middleware/cache.middleware.js +2 -2
- package/packages/server-utils/dist/esm/middleware/errorHandler.middleware.d.ts +1 -1
- package/packages/server-utils/dist/esm/middleware/errorHandler.middleware.js +34 -17
- package/packages/server-utils/dist/esm/middleware/session.middleware.js +8 -8
- package/packages/server-utils/dist/esm/middleware/validation.middleware.js +2 -2
- package/packages/server-utils/dist/types/middleware/auth.middleware.d.ts +1 -2
- package/packages/server-utils/dist/types/middleware/errorHandler.middleware.d.ts +1 -1
- package/packages/server-utils/package.json +4 -4
- package/packages/server-utils/src/core/server.ts +6 -6
- package/packages/server-utils/src/middleware/auth.middleware.ts +40 -27
- package/packages/server-utils/src/middleware/cache.middleware.ts +2 -2
- package/packages/server-utils/src/middleware/errorHandler.middleware.ts +39 -24
- package/packages/server-utils/src/middleware/session.middleware.ts +11 -8
- package/packages/server-utils/src/middleware/validation.middleware.ts +2 -3
- package/packages/errors-utils/dist/cjs/error/RateLimitError.d.ts +0 -4
- package/packages/errors-utils/dist/cjs/error/RateLimitError.js +0 -11
- package/packages/errors-utils/dist/cjs/utils/mapAppErrorToResponder.d.ts +0 -3
- package/packages/errors-utils/dist/cjs/utils/mapAppErrorToResponder.js +0 -27
- package/packages/errors-utils/dist/esm/error/RateLimitError.d.ts +0 -4
- package/packages/errors-utils/dist/esm/error/RateLimitError.js +0 -7
- package/packages/errors-utils/dist/esm/utils/mapAppErrorToResponder.d.ts +0 -3
- package/packages/errors-utils/dist/esm/utils/mapAppErrorToResponder.js +0 -24
- package/packages/errors-utils/dist/types/error/RateLimitError.d.ts +0 -4
- package/packages/errors-utils/dist/types/utils/mapAppErrorToResponder.d.ts +0 -3
- package/packages/errors-utils/src/error/RateLimitError.ts +0 -8
- package/packages/errors-utils/src/utils/mapAppErrorToResponder.ts +0 -38
- package/packages/response-utils/src/legacy.ts +0 -30
- /package/packages/errors-utils/dist/cjs/middleware/express/{errorConverter.d.ts → errorConverter.middleware.d.ts} +0 -0
- /package/packages/errors-utils/dist/cjs/middleware/express/{errorConverter.js → errorConverter.middleware.js} +0 -0
- /package/packages/errors-utils/dist/cjs/middleware/express/{errorHandler.d.ts → errorHandler.middleware.d.ts} +0 -0
- /package/packages/errors-utils/dist/esm/middleware/express/{errorConverter.d.ts → errorConverter.middleware.d.ts} +0 -0
- /package/packages/errors-utils/dist/esm/middleware/express/{errorConverter.js → errorConverter.middleware.js} +0 -0
- /package/packages/errors-utils/dist/esm/middleware/express/{errorHandler.d.ts → errorHandler.middleware.d.ts} +0 -0
- /package/packages/errors-utils/dist/types/middleware/express/{errorConverter.d.ts → errorConverter.middleware.d.ts} +0 -0
- /package/packages/errors-utils/dist/types/middleware/express/{errorHandler.d.ts → errorHandler.middleware.d.ts} +0 -0
- /package/packages/errors-utils/src/middleware/express/{errorConverter.ts → errorConverter.middleware.ts} +0 -0
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import Memcached from 'memcached';
|
|
2
|
+
import { CACHE_ERROR_CODES } from 'src/errors/cacheErrorCodes';
|
|
2
3
|
import { BaseCache } from '../../core/BaseCache';
|
|
3
4
|
import { CacheError } from '../../errors';
|
|
4
|
-
/**
|
|
5
|
-
* Memcache adapter
|
|
6
|
-
*/
|
|
7
5
|
export class MemcacheCache extends BaseCache {
|
|
8
6
|
constructor(memcacheConfig) {
|
|
9
7
|
super(memcacheConfig);
|
|
@@ -11,362 +9,158 @@ export class MemcacheCache extends BaseCache {
|
|
|
11
9
|
this.client = null;
|
|
12
10
|
this.isConnected = false;
|
|
13
11
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Connect to Memcache
|
|
16
|
-
*/
|
|
17
12
|
async connect() {
|
|
18
13
|
try {
|
|
19
14
|
const servers = Array.isArray(this.memcacheConfig.servers)
|
|
20
15
|
? this.memcacheConfig.servers
|
|
21
16
|
: [this.memcacheConfig.servers];
|
|
22
|
-
|
|
17
|
+
this.client = new Memcached(servers, {
|
|
23
18
|
retries: 2,
|
|
24
19
|
retry: 30000,
|
|
25
20
|
remove: true,
|
|
26
|
-
|
|
27
|
-
maxValue: 1048576, // 1MB default
|
|
21
|
+
maxValue: 1048576,
|
|
28
22
|
idle: 30000,
|
|
29
|
-
};
|
|
30
|
-
if (this.memcacheConfig.username) {
|
|
31
|
-
;
|
|
32
|
-
options.username = this.memcacheConfig.username;
|
|
33
|
-
}
|
|
34
|
-
if (this.memcacheConfig.password) {
|
|
35
|
-
;
|
|
36
|
-
options.password = this.memcacheConfig.password;
|
|
37
|
-
}
|
|
38
|
-
this.client = new Memcached(servers, options);
|
|
23
|
+
});
|
|
39
24
|
this.isConnected = true;
|
|
40
|
-
// Test connection
|
|
41
25
|
await this.ping();
|
|
42
26
|
}
|
|
43
|
-
catch (
|
|
44
|
-
throw new CacheError(
|
|
27
|
+
catch (error) {
|
|
28
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_CONNECTION_FAILED, {
|
|
29
|
+
adapter: 'memcache',
|
|
30
|
+
operation: 'connect',
|
|
31
|
+
cause: error instanceof Error ? error : undefined,
|
|
32
|
+
});
|
|
45
33
|
}
|
|
46
34
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Ensure client is connected
|
|
49
|
-
*/
|
|
50
35
|
async ensureConnected() {
|
|
51
36
|
if (!this.client) {
|
|
52
37
|
await this.connect();
|
|
53
38
|
}
|
|
54
39
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Ping memcache
|
|
57
|
-
*/
|
|
58
40
|
async ping() {
|
|
59
41
|
return new Promise((resolve, reject) => {
|
|
60
|
-
if (!this.client)
|
|
61
|
-
reject(new Error('
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
this.client.touch('__ping', 1, (err) => {
|
|
65
|
-
if (err)
|
|
66
|
-
reject(err);
|
|
67
|
-
else
|
|
68
|
-
resolve();
|
|
69
|
-
});
|
|
42
|
+
if (!this.client)
|
|
43
|
+
return reject(new Error('Client not initialized'));
|
|
44
|
+
this.client.touch('__ping', 1, (err) => (err ? reject(err) : resolve()));
|
|
70
45
|
});
|
|
71
46
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
47
|
+
async exists(key) {
|
|
48
|
+
try {
|
|
49
|
+
const value = await this.get(key);
|
|
50
|
+
return value !== null;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
54
|
+
adapter: 'memcache',
|
|
55
|
+
operation: 'exists',
|
|
56
|
+
details: { key },
|
|
57
|
+
cause: error instanceof Error ? error : undefined,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
75
61
|
async get(key) {
|
|
76
62
|
try {
|
|
77
63
|
await this.ensureConnected();
|
|
78
64
|
const fullKey = this.buildKey(key);
|
|
79
65
|
return new Promise((resolve, reject) => {
|
|
80
66
|
this.client.get(fullKey, (err, data) => {
|
|
81
|
-
if (err)
|
|
82
|
-
reject(err);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (data === undefined || data === null) {
|
|
86
|
-
this.recordMiss();
|
|
87
|
-
resolve(null);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
this.recordHit();
|
|
67
|
+
if (err)
|
|
68
|
+
return reject(err);
|
|
69
|
+
if (data == null)
|
|
70
|
+
return resolve(null);
|
|
91
71
|
try {
|
|
92
|
-
|
|
93
|
-
resolve(this.deserialize(data));
|
|
94
|
-
}
|
|
95
|
-
else if (Buffer.isBuffer(data)) {
|
|
96
|
-
resolve(this.deserialize(data.toString()));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
// Unknown shape from memcached client - treat as miss
|
|
100
|
-
this.recordMiss();
|
|
101
|
-
resolve(null);
|
|
102
|
-
}
|
|
72
|
+
resolve(this.deserialize(Buffer.isBuffer(data) ? data.toString() : data));
|
|
103
73
|
}
|
|
104
|
-
catch (
|
|
105
|
-
reject(
|
|
74
|
+
catch (e) {
|
|
75
|
+
reject(e);
|
|
106
76
|
}
|
|
107
77
|
});
|
|
108
78
|
});
|
|
109
79
|
}
|
|
110
|
-
catch (
|
|
111
|
-
throw new CacheError(
|
|
80
|
+
catch (error) {
|
|
81
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_KEY_NOT_FOUND, {
|
|
82
|
+
adapter: 'memcache',
|
|
83
|
+
operation: 'get',
|
|
84
|
+
details: { key },
|
|
85
|
+
cause: error instanceof Error ? error : undefined,
|
|
86
|
+
});
|
|
112
87
|
}
|
|
113
88
|
}
|
|
114
|
-
/**
|
|
115
|
-
* Set a value in Memcache
|
|
116
|
-
*/
|
|
117
89
|
async set(key, value, ttl) {
|
|
118
90
|
try {
|
|
119
91
|
await this.ensureConnected();
|
|
120
92
|
const fullKey = this.buildKey(key);
|
|
121
|
-
const serialized = this.serialize(value);
|
|
122
|
-
const expiry = ttl ?? this.ttl;
|
|
123
93
|
return new Promise((resolve, reject) => {
|
|
124
|
-
this.client.set(fullKey,
|
|
125
|
-
if (err) {
|
|
126
|
-
reject(err);
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
this.recordSet();
|
|
130
|
-
resolve();
|
|
131
|
-
}
|
|
132
|
-
});
|
|
94
|
+
this.client.set(fullKey, this.serialize(value), ttl ?? this.ttl, (err) => (err ? reject(err) : resolve()));
|
|
133
95
|
});
|
|
134
96
|
}
|
|
135
|
-
catch (
|
|
136
|
-
throw new CacheError(
|
|
97
|
+
catch (error) {
|
|
98
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
99
|
+
adapter: 'memcache',
|
|
100
|
+
operation: 'set',
|
|
101
|
+
details: { key },
|
|
102
|
+
cause: error instanceof Error ? error : undefined,
|
|
103
|
+
});
|
|
137
104
|
}
|
|
138
105
|
}
|
|
139
|
-
/**
|
|
140
|
-
* Delete a key from Memcache
|
|
141
|
-
*/
|
|
142
106
|
async delete(key) {
|
|
143
107
|
try {
|
|
144
108
|
await this.ensureConnected();
|
|
145
109
|
const fullKey = this.buildKey(key);
|
|
146
110
|
return new Promise((resolve, reject) => {
|
|
147
|
-
this.client.del(fullKey, (err) =>
|
|
148
|
-
if (err) {
|
|
149
|
-
reject(err);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
this.recordDelete();
|
|
153
|
-
resolve(true);
|
|
154
|
-
}
|
|
155
|
-
});
|
|
111
|
+
this.client.del(fullKey, (err) => (err ? reject(err) : resolve(true)));
|
|
156
112
|
});
|
|
157
113
|
}
|
|
158
|
-
catch (
|
|
159
|
-
throw new CacheError(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
*/
|
|
165
|
-
async exists(key) {
|
|
166
|
-
try {
|
|
167
|
-
const value = await this.get(key);
|
|
168
|
-
return value !== null;
|
|
169
|
-
}
|
|
170
|
-
catch (err) {
|
|
171
|
-
throw new CacheError(`Failed to check existence of key "${key}" in Memcache`, 'MEMCACHE_EXISTS_ERROR', 'memcache', err);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Clear all keys (Memcache limitation: flushes entire cache)
|
|
176
|
-
*/
|
|
177
|
-
async clear() {
|
|
178
|
-
try {
|
|
179
|
-
await this.ensureConnected();
|
|
180
|
-
return new Promise((resolve, reject) => {
|
|
181
|
-
this.client.flush((err) => {
|
|
182
|
-
if (err) {
|
|
183
|
-
reject(err);
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
resolve();
|
|
187
|
-
}
|
|
188
|
-
});
|
|
114
|
+
catch (error) {
|
|
115
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
116
|
+
adapter: 'memcache',
|
|
117
|
+
operation: 'delete',
|
|
118
|
+
details: { key },
|
|
119
|
+
cause: error instanceof Error ? error : undefined,
|
|
189
120
|
});
|
|
190
121
|
}
|
|
191
|
-
catch (err) {
|
|
192
|
-
throw new CacheError('Failed to clear Memcache', 'MEMCACHE_CLEAR_ERROR', 'memcache', err);
|
|
193
|
-
}
|
|
194
122
|
}
|
|
195
|
-
|
|
196
|
-
* Get multiple values at once
|
|
197
|
-
*/
|
|
198
|
-
async getMultiple(keys) {
|
|
123
|
+
async clear() {
|
|
199
124
|
try {
|
|
200
125
|
await this.ensureConnected();
|
|
201
|
-
const fullKeys = keys.map((k) => this.buildKey(k));
|
|
202
126
|
return new Promise((resolve, reject) => {
|
|
203
|
-
this.client.
|
|
204
|
-
if (err) {
|
|
205
|
-
reject(err);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
const result = {};
|
|
209
|
-
if (!data || typeof data !== 'object') {
|
|
210
|
-
// Treat as all misses
|
|
211
|
-
for (const key of keys) {
|
|
212
|
-
this.recordMiss();
|
|
213
|
-
result[key] = null;
|
|
214
|
-
}
|
|
215
|
-
resolve(result);
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
const map = data;
|
|
219
|
-
keys.forEach((key) => {
|
|
220
|
-
const fullKey = this.buildKey(key);
|
|
221
|
-
const value = map[fullKey];
|
|
222
|
-
if (value === undefined || value === null) {
|
|
223
|
-
this.recordMiss();
|
|
224
|
-
result[key] = null;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
this.recordHit();
|
|
228
|
-
try {
|
|
229
|
-
if (typeof value === 'string') {
|
|
230
|
-
result[key] = this.deserialize(value);
|
|
231
|
-
}
|
|
232
|
-
else if (Buffer.isBuffer(value)) {
|
|
233
|
-
result[key] = this.deserialize(value.toString());
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
// Unknown, treat as miss
|
|
237
|
-
this.recordMiss();
|
|
238
|
-
result[key] = null;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
catch (parseErr) {
|
|
242
|
-
reject(parseErr);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
resolve(result);
|
|
247
|
-
});
|
|
127
|
+
this.client.flush((err) => (err ? reject(err) : resolve()));
|
|
248
128
|
});
|
|
249
129
|
}
|
|
250
|
-
catch (
|
|
251
|
-
throw new CacheError(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
* Set multiple values at once
|
|
256
|
-
*/
|
|
257
|
-
async setMultiple(data, ttl) {
|
|
258
|
-
try {
|
|
259
|
-
await this.ensureConnected();
|
|
260
|
-
const expiry = ttl ?? this.ttl;
|
|
261
|
-
const promises = [];
|
|
262
|
-
for (const [key, value] of Object.entries(data)) {
|
|
263
|
-
const fullKey = this.buildKey(key);
|
|
264
|
-
const serialized = this.serialize(value);
|
|
265
|
-
promises.push(new Promise((resolve, reject) => {
|
|
266
|
-
this.client.set(fullKey, serialized, expiry, (err) => {
|
|
267
|
-
if (err)
|
|
268
|
-
reject(err);
|
|
269
|
-
else
|
|
270
|
-
resolve();
|
|
271
|
-
});
|
|
272
|
-
}));
|
|
273
|
-
}
|
|
274
|
-
return Promise.all(promises).then(() => {
|
|
275
|
-
this.stats.sets += Object.keys(data).length;
|
|
130
|
+
catch (error) {
|
|
131
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_OPERATION_TIMEOUT, {
|
|
132
|
+
adapter: 'memcache',
|
|
133
|
+
operation: 'clear',
|
|
134
|
+
cause: error instanceof Error ? error : undefined,
|
|
276
135
|
});
|
|
277
136
|
}
|
|
278
|
-
catch (err) {
|
|
279
|
-
throw new CacheError('Failed to set multiple keys in Memcache', 'MEMCACHE_SET_MULTIPLE_ERROR', 'memcache', err);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Delete multiple keys at once
|
|
284
|
-
*/
|
|
285
|
-
async deleteMultiple(keys) {
|
|
286
|
-
try {
|
|
287
|
-
await this.ensureConnected();
|
|
288
|
-
const fullKeys = keys.map((k) => this.buildKey(k));
|
|
289
|
-
let deletedCount = 0;
|
|
290
|
-
await Promise.all(fullKeys.map((key) => new Promise((resolve, reject) => {
|
|
291
|
-
this.client.del(key, (err) => {
|
|
292
|
-
if (err) {
|
|
293
|
-
reject(err);
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
deletedCount++;
|
|
297
|
-
resolve();
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
})));
|
|
301
|
-
this.stats.deletes += deletedCount;
|
|
302
|
-
return deletedCount;
|
|
303
|
-
}
|
|
304
|
-
catch (err) {
|
|
305
|
-
throw new CacheError('Failed to delete multiple keys from Memcache', 'MEMCACHE_DELETE_MULTIPLE_ERROR', 'memcache', err);
|
|
306
|
-
}
|
|
307
137
|
}
|
|
308
|
-
/**
|
|
309
|
-
* Increment a numeric value (not natively supported by Memcache in this library)
|
|
310
|
-
*/
|
|
311
|
-
async increment(key, amount = 1) {
|
|
312
|
-
try {
|
|
313
|
-
const current = await this.get(key);
|
|
314
|
-
const value = (typeof current === 'number' ? current : 0) + amount;
|
|
315
|
-
await this.set(key, value);
|
|
316
|
-
return value;
|
|
317
|
-
}
|
|
318
|
-
catch (err) {
|
|
319
|
-
throw new CacheError(`Failed to increment key "${key}" in Memcache`, 'MEMCACHE_INCREMENT_ERROR', 'memcache', err);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Decrement a numeric value
|
|
324
|
-
*/
|
|
325
|
-
async decrement(key, amount = 1) {
|
|
326
|
-
try {
|
|
327
|
-
const current = await this.get(key);
|
|
328
|
-
const value = (typeof current === 'number' ? current : 0) - amount;
|
|
329
|
-
await this.set(key, value);
|
|
330
|
-
return value;
|
|
331
|
-
}
|
|
332
|
-
catch (err) {
|
|
333
|
-
throw new CacheError(`Failed to decrement key "${key}" in Memcache`, 'MEMCACHE_DECREMENT_ERROR', 'memcache', err);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* Check if Memcache is alive
|
|
338
|
-
*/
|
|
339
138
|
async isAlive() {
|
|
340
139
|
try {
|
|
341
140
|
await this.ping();
|
|
342
|
-
return {
|
|
343
|
-
isAlive: true,
|
|
344
|
-
adapter: 'memcache',
|
|
345
|
-
timestamp: new Date(),
|
|
346
|
-
};
|
|
141
|
+
return { isAlive: true, adapter: 'memcache', timestamp: new Date() };
|
|
347
142
|
}
|
|
348
|
-
catch (
|
|
143
|
+
catch (error) {
|
|
349
144
|
return {
|
|
350
145
|
isAlive: false,
|
|
351
146
|
adapter: 'memcache',
|
|
352
147
|
timestamp: new Date(),
|
|
353
|
-
error:
|
|
148
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
354
149
|
};
|
|
355
150
|
}
|
|
356
151
|
}
|
|
357
|
-
/**
|
|
358
|
-
* Close Memcache connection
|
|
359
|
-
*/
|
|
360
152
|
async close() {
|
|
361
153
|
try {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
this.client = null;
|
|
366
|
-
}
|
|
154
|
+
this.client?.end();
|
|
155
|
+
this.client = null;
|
|
156
|
+
this.isConnected = false;
|
|
367
157
|
}
|
|
368
|
-
catch (
|
|
369
|
-
throw new CacheError(
|
|
158
|
+
catch (error) {
|
|
159
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
160
|
+
adapter: 'memcache',
|
|
161
|
+
operation: 'close',
|
|
162
|
+
cause: error instanceof Error ? error : undefined,
|
|
163
|
+
});
|
|
370
164
|
}
|
|
371
165
|
}
|
|
372
166
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CACHE_ERROR_CODES } from 'src/errors/cacheErrorCodes';
|
|
1
2
|
import { BaseCache } from '../../core/BaseCache';
|
|
2
3
|
import { CacheError } from '../../errors';
|
|
3
4
|
/**
|
|
@@ -46,8 +47,13 @@ export class MemoryCache extends BaseCache {
|
|
|
46
47
|
this.recordHit();
|
|
47
48
|
return entry.value;
|
|
48
49
|
}
|
|
49
|
-
catch (
|
|
50
|
-
throw new CacheError(
|
|
50
|
+
catch (error) {
|
|
51
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_KEY_NOT_FOUND, {
|
|
52
|
+
adapter: 'memory',
|
|
53
|
+
operation: 'get',
|
|
54
|
+
details: { key },
|
|
55
|
+
cause: error instanceof Error ? error : undefined,
|
|
56
|
+
});
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
59
|
/**
|
|
@@ -70,8 +76,13 @@ export class MemoryCache extends BaseCache {
|
|
|
70
76
|
this.store.set(fullKey, { value, expiresAt });
|
|
71
77
|
this.recordSet();
|
|
72
78
|
}
|
|
73
|
-
catch (
|
|
74
|
-
throw new CacheError(
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
81
|
+
adapter: 'memory',
|
|
82
|
+
operation: 'set',
|
|
83
|
+
details: { key },
|
|
84
|
+
cause: error instanceof Error ? error : undefined,
|
|
85
|
+
});
|
|
75
86
|
}
|
|
76
87
|
}
|
|
77
88
|
/**
|
|
@@ -86,8 +97,13 @@ export class MemoryCache extends BaseCache {
|
|
|
86
97
|
}
|
|
87
98
|
return deleted;
|
|
88
99
|
}
|
|
89
|
-
catch (
|
|
90
|
-
throw new CacheError(
|
|
100
|
+
catch (error) {
|
|
101
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
102
|
+
adapter: 'memory',
|
|
103
|
+
operation: 'delete',
|
|
104
|
+
details: { key },
|
|
105
|
+
cause: error instanceof Error ? error : undefined,
|
|
106
|
+
});
|
|
91
107
|
}
|
|
92
108
|
}
|
|
93
109
|
/**
|
|
@@ -107,8 +123,13 @@ export class MemoryCache extends BaseCache {
|
|
|
107
123
|
}
|
|
108
124
|
return true;
|
|
109
125
|
}
|
|
110
|
-
catch (
|
|
111
|
-
throw new CacheError(
|
|
126
|
+
catch (error) {
|
|
127
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
128
|
+
adapter: 'memory',
|
|
129
|
+
operation: 'exists',
|
|
130
|
+
details: { key },
|
|
131
|
+
cause: error instanceof Error ? error : undefined,
|
|
132
|
+
});
|
|
112
133
|
}
|
|
113
134
|
}
|
|
114
135
|
/**
|
|
@@ -129,8 +150,12 @@ export class MemoryCache extends BaseCache {
|
|
|
129
150
|
this.store.clear();
|
|
130
151
|
}
|
|
131
152
|
}
|
|
132
|
-
catch (
|
|
133
|
-
throw new CacheError(
|
|
153
|
+
catch (error) {
|
|
154
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_OPERATION_TIMEOUT, {
|
|
155
|
+
adapter: 'memory',
|
|
156
|
+
operation: 'clear',
|
|
157
|
+
cause: error instanceof Error ? error : undefined,
|
|
158
|
+
});
|
|
134
159
|
}
|
|
135
160
|
}
|
|
136
161
|
/**
|
|
@@ -161,8 +186,13 @@ export class MemoryCache extends BaseCache {
|
|
|
161
186
|
}
|
|
162
187
|
return result;
|
|
163
188
|
}
|
|
164
|
-
catch (
|
|
165
|
-
throw new CacheError(
|
|
189
|
+
catch (error) {
|
|
190
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
191
|
+
adapter: 'memory',
|
|
192
|
+
operation: 'getMultiple',
|
|
193
|
+
details: { keys },
|
|
194
|
+
cause: error instanceof Error ? error : undefined,
|
|
195
|
+
});
|
|
166
196
|
}
|
|
167
197
|
}
|
|
168
198
|
/**
|
|
@@ -178,8 +208,13 @@ export class MemoryCache extends BaseCache {
|
|
|
178
208
|
}
|
|
179
209
|
this.stats.sets += Object.keys(data).length;
|
|
180
210
|
}
|
|
181
|
-
catch (
|
|
182
|
-
throw new CacheError(
|
|
211
|
+
catch (error) {
|
|
212
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
213
|
+
adapter: 'memory',
|
|
214
|
+
operation: 'setMultiple',
|
|
215
|
+
details: { keys: Object.keys(data) },
|
|
216
|
+
cause: error instanceof Error ? error : undefined,
|
|
217
|
+
});
|
|
183
218
|
}
|
|
184
219
|
}
|
|
185
220
|
/**
|
|
@@ -197,8 +232,13 @@ export class MemoryCache extends BaseCache {
|
|
|
197
232
|
this.stats.deletes += count;
|
|
198
233
|
return count;
|
|
199
234
|
}
|
|
200
|
-
catch (
|
|
201
|
-
throw new CacheError(
|
|
235
|
+
catch (error) {
|
|
236
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
237
|
+
adapter: 'memory',
|
|
238
|
+
operation: 'deleteMultiple',
|
|
239
|
+
details: { keys },
|
|
240
|
+
cause: error instanceof Error ? error : undefined,
|
|
241
|
+
});
|
|
202
242
|
}
|
|
203
243
|
}
|
|
204
244
|
/**
|
|
@@ -219,8 +259,13 @@ export class MemoryCache extends BaseCache {
|
|
|
219
259
|
this.store.set(fullKey, { value: value, expiresAt });
|
|
220
260
|
return value;
|
|
221
261
|
}
|
|
222
|
-
catch (
|
|
223
|
-
throw new CacheError(
|
|
262
|
+
catch (error) {
|
|
263
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
264
|
+
adapter: 'memory',
|
|
265
|
+
operation: 'increment',
|
|
266
|
+
details: { key },
|
|
267
|
+
cause: error instanceof Error ? error : undefined,
|
|
268
|
+
});
|
|
224
269
|
}
|
|
225
270
|
}
|
|
226
271
|
/**
|
|
@@ -241,8 +286,13 @@ export class MemoryCache extends BaseCache {
|
|
|
241
286
|
this.store.set(fullKey, { value: value, expiresAt });
|
|
242
287
|
return value;
|
|
243
288
|
}
|
|
244
|
-
catch (
|
|
245
|
-
throw new CacheError(
|
|
289
|
+
catch (error) {
|
|
290
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
291
|
+
adapter: 'memory',
|
|
292
|
+
operation: 'decrement',
|
|
293
|
+
details: { key },
|
|
294
|
+
cause: error instanceof Error ? error : undefined,
|
|
295
|
+
});
|
|
246
296
|
}
|
|
247
297
|
}
|
|
248
298
|
/**
|
|
@@ -266,8 +316,12 @@ export class MemoryCache extends BaseCache {
|
|
|
266
316
|
}
|
|
267
317
|
this.store.clear();
|
|
268
318
|
}
|
|
269
|
-
catch (
|
|
270
|
-
throw new CacheError(
|
|
319
|
+
catch (error) {
|
|
320
|
+
throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
|
|
321
|
+
adapter: 'memory',
|
|
322
|
+
operation: 'close',
|
|
323
|
+
cause: error instanceof Error ? error : undefined,
|
|
324
|
+
});
|
|
271
325
|
}
|
|
272
326
|
}
|
|
273
327
|
}
|