@knaus94/prisma-extension-cache-manager 1.5.69 → 1.5.72

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/README.md CHANGED
@@ -6,6 +6,7 @@ A caching extension for [Prisma](https://www.prisma.io/), compatible with [cache
6
6
 
7
7
  - [cache-manager](https://www.npmjs.com/package/cache-manager) compatibility
8
8
  - Only model queries can be cacheable (no $query or $queryRaw)
9
+ - Supported Decimal
9
10
 
10
11
  ## Installation
11
12
 
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ const msgpack_lite_1 = require("msgpack-lite");
10
10
  * В дальнейшем используем его encode/decode для сериализации/десериализации.
11
11
  */
12
12
  const codec = (0, msgpack_lite_1.createCodec)();
13
- const TYPE_DECIMAL = 0x07;
13
+ const TYPE_DECIMAL = 0x3F;
14
14
  const TYPE_DATE = 0x0d;
15
15
  /**
16
16
  * Регистрируем тип `Decimal`.
@@ -18,10 +18,10 @@ const TYPE_DATE = 0x0d;
18
18
  * - При декодировании восстанавливаем обратно в `Decimal`.
19
19
  */
20
20
  codec.addExtPacker(TYPE_DECIMAL, library_1.Decimal, (decimal) => {
21
- return Buffer.from(decimal.toString());
21
+ return (0, msgpack_lite_1.encode)(decimal.toString());
22
22
  });
23
23
  codec.addExtUnpacker(TYPE_DECIMAL, (buffer) => {
24
- return new library_1.Decimal(buffer.toString());
24
+ return new library_1.Decimal((0, msgpack_lite_1.decode)(buffer));
25
25
  });
26
26
  /**
27
27
  * Регистрируем тип `Date`.
@@ -29,10 +29,10 @@ codec.addExtUnpacker(TYPE_DECIMAL, (buffer) => {
29
29
  * - При декодировании восстанавливаем обратно в `Date`.
30
30
  */
31
31
  codec.addExtPacker(TYPE_DATE, Date, (date) => {
32
- return Buffer.from(date.toISOString());
32
+ return (0, msgpack_lite_1.encode)(date.toISOString());
33
33
  });
34
34
  codec.addExtUnpacker(TYPE_DATE, (buffer) => {
35
- return new Date(buffer.toString());
35
+ return new Date((0, msgpack_lite_1.decode)(buffer));
36
36
  });
37
37
  /**
38
38
  * Генерирует уникальный ключ для кеширования на основе модели и аргументов запроса.
@@ -55,13 +55,13 @@ function createKey(key, namespace) {
55
55
  return namespace ? `${namespace}:${key}` : key;
56
56
  }
57
57
  /**
58
- * Сериализация данных с помощью msgpack-lite.
58
+ * Сериализация данных
59
59
  */
60
60
  function serialize(data) {
61
61
  return (0, msgpack_lite_1.encode)(data, { codec });
62
62
  }
63
63
  /**
64
- * Десериализация данных с помощью msgpack-lite.
64
+ * Десериализация данных
65
65
  */
66
66
  function deserialize(buffer) {
67
67
  return (0, msgpack_lite_1.decode)(buffer, { codec });
@@ -200,11 +200,14 @@ exports.default = ({ cache, debug, ttl: defaultTTL }) => {
200
200
  if (ttl === undefined) {
201
201
  ttl = defaultTTL;
202
202
  }
203
+ if (ttl) {
204
+ ttl = Math.ceil(ttl / 1000);
205
+ }
203
206
  // Сохраняем результат в кеш
204
207
  try {
205
208
  const encoded = serialize(result);
206
209
  await (ttl && ttl > 0
207
- ? cache.store.client.set(cacheKey, encoded, "EX", ttl / 1000)
210
+ ? cache.store.client.set(cacheKey, encoded, "EX", ttl)
208
211
  : cache.store.client.set(cacheKey, encoded));
209
212
  if (debug) {
210
213
  console.log("Data cached with key (function):", cacheKey, "encoded:", encoded, "decoded:", result);
@@ -257,11 +260,14 @@ exports.default = ({ cache, debug, ttl: defaultTTL }) => {
257
260
  if (ttl === undefined) {
258
261
  ttl = defaultTTL;
259
262
  }
263
+ if (ttl) {
264
+ ttl = Math.ceil(ttl / 1000);
265
+ }
260
266
  // 6. Сохраняем результат запроса в кеш
261
267
  try {
262
268
  const encoded = serialize(result);
263
269
  await (ttl && ttl > 0
264
- ? cache.store.client.set(cacheKey, encoded, "EX", ttl / 1000)
270
+ ? cache.store.client.set(cacheKey, encoded, "EX", ttl)
265
271
  : cache.store.client.set(cacheKey, encoded));
266
272
  if (debug) {
267
273
  console.log("Data cached with key:", cacheKey, "encoded:", encoded, "decoded:", result);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knaus94/prisma-extension-cache-manager",
3
- "version": "1.5.69",
3
+ "version": "1.5.72",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/knaus94/prisma-extension-cache-manager.git"
@@ -59,5 +59,10 @@
59
59
  "cache-manager": "^5.2.3",
60
60
  "cache-manager-ioredis-yet": "^2.1.1",
61
61
  "msgpack-lite": "^0.1.26"
62
+ },
63
+ "peerDependencies": {
64
+ "@nestjs/cache-manager": "^1.0.0",
65
+ "cache-manager": "^5.2.0",
66
+ "cache-manager-ioredis-yet": "^2.1.1"
62
67
  }
63
68
  }