@warlock.js/cache 4.1.15 → 4.2.1
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/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/cjs/index.cjs +32 -28
- package/cjs/index.cjs.map +1 -1
- package/esm/cache-manager.d.mts +1 -1
- package/esm/cache-manager.d.mts.map +1 -1
- package/esm/cache-manager.mjs +1 -1
- package/esm/cache-manager.mjs.map +1 -1
- package/esm/cached/auto-key.d.mts +1 -1
- package/esm/cached/auto-key.d.mts.map +1 -1
- package/esm/cached/auto-key.mjs +1 -1
- package/esm/cached/auto-key.mjs.map +1 -1
- package/esm/cached/cached.d.mts +1 -1
- package/esm/cached/cached.d.mts.map +1 -1
- package/esm/cached/cached.mjs +1 -1
- package/esm/cached/cached.mjs.map +1 -1
- package/esm/cached/normalize-args.d.mts +1 -1
- package/esm/cached/normalize-args.d.mts.map +1 -1
- package/esm/cached/normalize-args.mjs +1 -1
- package/esm/cached/normalize-args.mjs.map +1 -1
- package/esm/drivers/base-cache-driver.d.mts +2 -2
- package/esm/drivers/base-cache-driver.d.mts.map +1 -1
- package/esm/drivers/base-cache-driver.mjs +4 -2
- package/esm/drivers/base-cache-driver.mjs.map +1 -1
- package/esm/drivers/file-cache-driver.d.mts +1 -1
- package/esm/drivers/file-cache-driver.d.mts.map +1 -1
- package/esm/drivers/file-cache-driver.mjs +1 -1
- package/esm/drivers/file-cache-driver.mjs.map +1 -1
- package/esm/drivers/lru-memory-cache-driver.d.mts +1 -1
- package/esm/drivers/lru-memory-cache-driver.d.mts.map +1 -1
- package/esm/drivers/lru-memory-cache-driver.mjs +1 -1
- package/esm/drivers/lru-memory-cache-driver.mjs.map +1 -1
- package/esm/drivers/memory-cache-driver.d.mts +1 -1
- package/esm/drivers/memory-cache-driver.d.mts.map +1 -1
- package/esm/drivers/memory-cache-driver.mjs +1 -1
- package/esm/drivers/memory-cache-driver.mjs.map +1 -1
- package/esm/drivers/memory-extended-cache-driver.d.mts +1 -1
- package/esm/drivers/memory-extended-cache-driver.d.mts.map +1 -1
- package/esm/drivers/memory-extended-cache-driver.mjs +1 -1
- package/esm/drivers/memory-extended-cache-driver.mjs.map +1 -1
- package/esm/drivers/mock-cache-driver.d.mts +1 -1
- package/esm/drivers/mock-cache-driver.d.mts.map +1 -1
- package/esm/drivers/mock-cache-driver.mjs +1 -1
- package/esm/drivers/mock-cache-driver.mjs.map +1 -1
- package/esm/drivers/null-cache-driver.d.mts +1 -1
- package/esm/drivers/null-cache-driver.d.mts.map +1 -1
- package/esm/drivers/null-cache-driver.mjs +1 -1
- package/esm/drivers/null-cache-driver.mjs.map +1 -1
- package/esm/drivers/pg-cache-driver.d.mts +1 -1
- package/esm/drivers/pg-cache-driver.d.mts.map +1 -1
- package/esm/drivers/pg-cache-driver.mjs +1 -1
- package/esm/drivers/pg-cache-driver.mjs.map +1 -1
- package/esm/drivers/redis-cache-driver.d.mts +1 -1
- package/esm/drivers/redis-cache-driver.d.mts.map +1 -1
- package/esm/drivers/redis-cache-driver.mjs +10 -8
- package/esm/drivers/redis-cache-driver.mjs.map +1 -1
- package/esm/list/memory-cache-list.d.mts +1 -1
- package/esm/list/memory-cache-list.d.mts.map +1 -1
- package/esm/list/memory-cache-list.mjs +1 -1
- package/esm/list/memory-cache-list.mjs.map +1 -1
- package/esm/metrics.d.mts +1 -1
- package/esm/metrics.d.mts.map +1 -1
- package/esm/metrics.mjs +1 -1
- package/esm/metrics.mjs.map +1 -1
- package/esm/scoped-cache.d.mts +1 -1
- package/esm/scoped-cache.d.mts.map +1 -1
- package/esm/scoped-cache.mjs +1 -1
- package/esm/scoped-cache.mjs.map +1 -1
- package/esm/tagged-cache.d.mts +1 -1
- package/esm/tagged-cache.d.mts.map +1 -1
- package/esm/tagged-cache.mjs +1 -1
- package/esm/tagged-cache.mjs.map +1 -1
- package/esm/tagged-scoped-cache.d.mts +1 -1
- package/esm/tagged-scoped-cache.d.mts.map +1 -1
- package/esm/tagged-scoped-cache.mjs +1 -1
- package/esm/tagged-scoped-cache.mjs.map +1 -1
- package/esm/types.d.mts +2 -2
- package/esm/types.d.mts.map +1 -1
- package/esm/types.mjs +1 -1
- package/esm/types.mjs.map +1 -1
- package/esm/utils.d.mts +1 -1
- package/esm/utils.d.mts.map +1 -1
- package/esm/utils.mjs +1 -1
- package/esm/utils.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Changelog — @warlock.js/cache
|
|
2
|
+
|
|
3
|
+
All notable changes to `@warlock.js/cache` are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## 4.2.0
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Redis driver now logs a failed initial `connect()` at `log.fatal` (was `log.error`). Boot-time cache connection failures are unrecoverable in practice — `fatal` makes "page on fatal only" alerting clean, aligned with the cascade drivers and the herald connector.
|
|
14
|
+
|
|
15
|
+
## 4.1.15
|
|
16
|
+
|
|
17
|
+
- Baseline — per-package changelog tracking starts at this version.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Hassan Zohdy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/cjs/index.cjs
CHANGED
|
@@ -34,7 +34,7 @@ let _warlock_js_fs = require("@warlock.js/fs");
|
|
|
34
34
|
let path = require("path");
|
|
35
35
|
path = __toESM(path, 1);
|
|
36
36
|
|
|
37
|
-
//#region
|
|
37
|
+
//#region ../@warlock.js/cache/src/metrics.ts
|
|
38
38
|
/**
|
|
39
39
|
* Default size of the circular latency-sample buffer. 1000 samples covers
|
|
40
40
|
* "tell me the current p95" for every realistic workload while keeping the
|
|
@@ -229,7 +229,7 @@ var CacheMetricsCollector = class {
|
|
|
229
229
|
};
|
|
230
230
|
|
|
231
231
|
//#endregion
|
|
232
|
-
//#region
|
|
232
|
+
//#region ../@warlock.js/cache/src/types.ts
|
|
233
233
|
/**
|
|
234
234
|
* Base error class for cache-related errors
|
|
235
235
|
*/
|
|
@@ -289,7 +289,7 @@ var CacheConcurrencyError = class extends CacheError {
|
|
|
289
289
|
};
|
|
290
290
|
|
|
291
291
|
//#endregion
|
|
292
|
-
//#region
|
|
292
|
+
//#region ../@warlock.js/cache/src/utils.ts
|
|
293
293
|
/**
|
|
294
294
|
* Make a proper key for the cache
|
|
295
295
|
*/
|
|
@@ -505,7 +505,7 @@ let CACHE_FOR = /* @__PURE__ */ function(CACHE_FOR) {
|
|
|
505
505
|
}({});
|
|
506
506
|
|
|
507
507
|
//#endregion
|
|
508
|
-
//#region
|
|
508
|
+
//#region ../@warlock.js/cache/src/tagged-scoped-cache.ts
|
|
509
509
|
/**
|
|
510
510
|
* One-shot tagged write handle on top of a {@link ScopedCache}.
|
|
511
511
|
*
|
|
@@ -643,7 +643,7 @@ var TaggedScopedCache = class {
|
|
|
643
643
|
};
|
|
644
644
|
|
|
645
645
|
//#endregion
|
|
646
|
-
//#region
|
|
646
|
+
//#region ../@warlock.js/cache/src/scoped-cache.ts
|
|
647
647
|
/**
|
|
648
648
|
* Scoped view over a cache source. Returned by `cache.namespace(prefix, options?)`.
|
|
649
649
|
*
|
|
@@ -912,7 +912,7 @@ var ScopedCache = class ScopedCache {
|
|
|
912
912
|
};
|
|
913
913
|
|
|
914
914
|
//#endregion
|
|
915
|
-
//#region
|
|
915
|
+
//#region ../@warlock.js/cache/src/cache-manager.ts
|
|
916
916
|
var CacheManager = class {
|
|
917
917
|
constructor() {
|
|
918
918
|
this.loadedDrivers = {};
|
|
@@ -1392,7 +1392,7 @@ var CacheManager = class {
|
|
|
1392
1392
|
const cache = new CacheManager();
|
|
1393
1393
|
|
|
1394
1394
|
//#endregion
|
|
1395
|
-
//#region
|
|
1395
|
+
//#region ../@warlock.js/cache/src/cached/auto-key.ts
|
|
1396
1396
|
/**
|
|
1397
1397
|
* Derive a cache key from a prefix and a set of function arguments.
|
|
1398
1398
|
*
|
|
@@ -1443,7 +1443,7 @@ function serializePrimitive(value) {
|
|
|
1443
1443
|
}
|
|
1444
1444
|
|
|
1445
1445
|
//#endregion
|
|
1446
|
-
//#region
|
|
1446
|
+
//#region ../@warlock.js/cache/src/cached/normalize-args.ts
|
|
1447
1447
|
/**
|
|
1448
1448
|
* Resolve the positional-or-options arguments of `cached()` into a single
|
|
1449
1449
|
* normalized config. Keeps the wrapper body free of shape-checks.
|
|
@@ -1465,7 +1465,7 @@ function normalizeCachedArgs(prefixOrOptions, maybeTtl) {
|
|
|
1465
1465
|
}
|
|
1466
1466
|
|
|
1467
1467
|
//#endregion
|
|
1468
|
-
//#region
|
|
1468
|
+
//#region ../@warlock.js/cache/src/cached/cached.ts
|
|
1469
1469
|
function cached(fn, prefixOrOptions, maybeTtl) {
|
|
1470
1470
|
const config = normalizeCachedArgs(prefixOrOptions, maybeTtl);
|
|
1471
1471
|
const buildRememberOptions = () => ({
|
|
@@ -1485,7 +1485,7 @@ function cached(fn, prefixOrOptions, maybeTtl) {
|
|
|
1485
1485
|
}
|
|
1486
1486
|
|
|
1487
1487
|
//#endregion
|
|
1488
|
-
//#region
|
|
1488
|
+
//#region ../@warlock.js/cache/src/list/memory-cache-list.ts
|
|
1489
1489
|
/**
|
|
1490
1490
|
* Generic array-backed {@link CacheListAccessor}.
|
|
1491
1491
|
*
|
|
@@ -1602,7 +1602,7 @@ var MemoryCacheList = class {
|
|
|
1602
1602
|
};
|
|
1603
1603
|
|
|
1604
1604
|
//#endregion
|
|
1605
|
-
//#region
|
|
1605
|
+
//#region ../@warlock.js/cache/src/tagged-cache.ts
|
|
1606
1606
|
/**
|
|
1607
1607
|
* Tagged Cache Wrapper
|
|
1608
1608
|
* Wraps a cache driver to automatically manage tag relationships
|
|
@@ -1747,7 +1747,7 @@ var TaggedCache = class {
|
|
|
1747
1747
|
};
|
|
1748
1748
|
|
|
1749
1749
|
//#endregion
|
|
1750
|
-
//#region
|
|
1750
|
+
//#region ../@warlock.js/cache/src/drivers/base-cache-driver.ts
|
|
1751
1751
|
const messages = {
|
|
1752
1752
|
clearing: "Clearing namespace",
|
|
1753
1753
|
cleared: "Namespace cleared",
|
|
@@ -1765,6 +1765,7 @@ const messages = {
|
|
|
1765
1765
|
connected: "Connected to the cache engine.",
|
|
1766
1766
|
disconnecting: "Disconnecting from the cache engine.",
|
|
1767
1767
|
disconnected: "Disconnected from the cache engine.",
|
|
1768
|
+
connectionFailed: "Failed to connect to the cache engine.",
|
|
1768
1769
|
error: "Error occurred"
|
|
1769
1770
|
};
|
|
1770
1771
|
var BaseCacheDriver = class {
|
|
@@ -2079,7 +2080,8 @@ var BaseCacheDriver = class {
|
|
|
2079
2080
|
*/
|
|
2080
2081
|
log(operation, key) {
|
|
2081
2082
|
if (!this.shouldLog) return;
|
|
2082
|
-
if (key) key = key.
|
|
2083
|
+
if (typeof key === "string") key = key.replace(/\//g, ".");
|
|
2084
|
+
if (operation === "connectionFailed") _warlock_js_logger.log.fatal(`cache.${this.name}`, operation, key);
|
|
2083
2085
|
if (operation == "notFound" || operation == "expired") return _warlock_js_logger.log.warn("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
|
|
2084
2086
|
if (operation.endsWith("ed")) return _warlock_js_logger.log.success("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
|
|
2085
2087
|
_warlock_js_logger.log.info("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
|
|
@@ -2261,7 +2263,7 @@ var BaseCacheDriver = class {
|
|
|
2261
2263
|
};
|
|
2262
2264
|
|
|
2263
2265
|
//#endregion
|
|
2264
|
-
//#region
|
|
2266
|
+
//#region ../@warlock.js/cache/src/drivers/file-cache-driver.ts
|
|
2265
2267
|
var FileCacheDriver = class extends BaseCacheDriver {
|
|
2266
2268
|
constructor(..._args) {
|
|
2267
2269
|
super(..._args);
|
|
@@ -2428,7 +2430,7 @@ var FileCacheDriver = class extends BaseCacheDriver {
|
|
|
2428
2430
|
};
|
|
2429
2431
|
|
|
2430
2432
|
//#endregion
|
|
2431
|
-
//#region
|
|
2433
|
+
//#region ../@warlock.js/cache/src/drivers/lru-memory-cache-driver.ts
|
|
2432
2434
|
var CacheNode = class {
|
|
2433
2435
|
constructor(key, value, ttl) {
|
|
2434
2436
|
this.key = key;
|
|
@@ -2740,7 +2742,7 @@ var LRUMemoryCacheDriver = class extends BaseCacheDriver {
|
|
|
2740
2742
|
};
|
|
2741
2743
|
|
|
2742
2744
|
//#endregion
|
|
2743
|
-
//#region
|
|
2745
|
+
//#region ../@warlock.js/cache/src/drivers/memory-cache-driver.ts
|
|
2744
2746
|
var MemoryCacheDriver = class extends BaseCacheDriver {
|
|
2745
2747
|
/**
|
|
2746
2748
|
* {@inheritdoc}
|
|
@@ -2975,7 +2977,7 @@ var MemoryCacheDriver = class extends BaseCacheDriver {
|
|
|
2975
2977
|
};
|
|
2976
2978
|
|
|
2977
2979
|
//#endregion
|
|
2978
|
-
//#region
|
|
2980
|
+
//#region ../@warlock.js/cache/src/drivers/memory-extended-cache-driver.ts
|
|
2979
2981
|
var MemoryExtendedCacheDriver = class extends MemoryCacheDriver {
|
|
2980
2982
|
constructor(..._args) {
|
|
2981
2983
|
super(..._args);
|
|
@@ -3003,7 +3005,7 @@ var MemoryExtendedCacheDriver = class extends MemoryCacheDriver {
|
|
|
3003
3005
|
};
|
|
3004
3006
|
|
|
3005
3007
|
//#endregion
|
|
3006
|
-
//#region
|
|
3008
|
+
//#region ../@warlock.js/cache/src/drivers/mock-cache-driver.ts
|
|
3007
3009
|
/**
|
|
3008
3010
|
* In-memory cache driver with introspection helpers, intended for use as a
|
|
3009
3011
|
* test double in downstream packages.
|
|
@@ -3225,7 +3227,7 @@ var MockCacheDriver = class extends BaseCacheDriver {
|
|
|
3225
3227
|
};
|
|
3226
3228
|
|
|
3227
3229
|
//#endregion
|
|
3228
|
-
//#region
|
|
3230
|
+
//#region ../@warlock.js/cache/src/drivers/null-cache-driver.ts
|
|
3229
3231
|
var NullCacheDriver = class extends BaseCacheDriver {
|
|
3230
3232
|
/**
|
|
3231
3233
|
* {@inheritdoc}
|
|
@@ -3312,7 +3314,7 @@ var NullCacheDriver = class extends BaseCacheDriver {
|
|
|
3312
3314
|
};
|
|
3313
3315
|
|
|
3314
3316
|
//#endregion
|
|
3315
|
-
//#region
|
|
3317
|
+
//#region ../@warlock.js/cache/src/drivers/pg-cache-driver.ts
|
|
3316
3318
|
/**
|
|
3317
3319
|
* Allowed characters in a Postgres identifier (table name). We accept the
|
|
3318
3320
|
* conservative ASCII subset and reject anything else — interpolating an
|
|
@@ -3744,7 +3746,7 @@ var PgCacheDriver = class extends BaseCacheDriver {
|
|
|
3744
3746
|
};
|
|
3745
3747
|
|
|
3746
3748
|
//#endregion
|
|
3747
|
-
//#region
|
|
3749
|
+
//#region ../@warlock.js/cache/src/drivers/redis-cache-driver.ts
|
|
3748
3750
|
/**
|
|
3749
3751
|
* Cached Redis module (loaded once, reused)
|
|
3750
3752
|
*/
|
|
@@ -3960,18 +3962,20 @@ var RedisCacheDriver = class extends BaseCacheDriver {
|
|
|
3960
3962
|
...options,
|
|
3961
3963
|
...this.options.clientOptions || {}
|
|
3962
3964
|
};
|
|
3963
|
-
this.log("connecting");
|
|
3964
|
-
const { createClient } = RedisClient;
|
|
3965
|
-
this.client = createClient(clientOptions);
|
|
3966
|
-
this.client.on("error", (error) => {
|
|
3967
|
-
this.log("error", error.message);
|
|
3968
|
-
});
|
|
3969
3965
|
try {
|
|
3966
|
+
this.log("connecting");
|
|
3967
|
+
const { createClient } = RedisClient;
|
|
3968
|
+
this.client = createClient(clientOptions);
|
|
3969
|
+
this.client.on("error", (error) => {
|
|
3970
|
+
if (error.code === "ECONNREFUSED") this.log("connectionFailed", error);
|
|
3971
|
+
else this.log("error", error.message);
|
|
3972
|
+
});
|
|
3970
3973
|
await this.client.connect();
|
|
3971
3974
|
this.log("connected");
|
|
3972
3975
|
await this.emit("connected");
|
|
3973
3976
|
} catch (error) {
|
|
3974
|
-
|
|
3977
|
+
console.log("Err", error);
|
|
3978
|
+
_warlock_js_logger.log.fatal("cache", "redis", error);
|
|
3975
3979
|
await this.emit("error", { error });
|
|
3976
3980
|
}
|
|
3977
3981
|
}
|