ts-cache-mongoose 1.2.0 → 1.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.
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
5
- const mongoose_1 = require("mongoose");
5
+ const mongoose_1 = tslib_1.__importStar(require("mongoose"));
6
6
  class RedisCacheEngine {
7
7
  constructor(options) {
8
8
  if (!options.keyPrefix) {
@@ -21,7 +21,7 @@ class RedisCacheEngine {
21
21
  if (dateRegex.test(value)) {
22
22
  return new Date(value);
23
23
  }
24
- else if (mongoose_1.Types.ObjectId.isValid(value)) {
24
+ else if (mongoose_1.default.isObjectIdOrHexString(value)) {
25
25
  return new mongoose_1.Types.ObjectId(value);
26
26
  }
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RedisCacheEngine.js","sourceRoot":"","sources":["../../../../src/cache/engine/RedisCacheEngine.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,uCAAgC;AAMhC,MAAM,gBAAgB;IAGpB,YAAa,OAAqB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAA;SACtC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,SAAS,GAAG,+CAA+C,CAAA;gBACjE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;iBACvB;qBAAM,IAAI,gBAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxC,OAAO,IAAI,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;iBACjC;aACF;YACD,OAAO,KAAgB,CAAA;QACzB,CAAC,CAAiE,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW,EAAE,KAAc,EAAE,GAAG,GAAG,QAAQ;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,eAAe,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"RedisCacheEngine.js","sourceRoot":"","sources":["../../../../src/cache/engine/RedisCacheEngine.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,6DAA0C;AAM1C,MAAM,gBAAgB;IAGpB,YAAa,OAAqB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAA;SACtC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,SAAS,GAAG,+CAA+C,CAAA;gBACjE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;iBACvB;qBAAM,IAAI,kBAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;oBAChD,OAAO,IAAI,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;iBACjC;aACF;YACD,OAAO,KAAgB,CAAA;QACzB,CAAC,CAAiE,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW,EAAE,KAAc,EAAE,GAAG,GAAG,QAAQ;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,eAAe,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAA"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
5
- const mongoose_1 = require("mongoose");
5
+ const mongoose_1 = tslib_1.__importStar(require("mongoose"));
6
6
  class RedisCacheEngine {
7
7
  constructor(options) {
8
8
  if (!options.keyPrefix) {
@@ -21,7 +21,7 @@ class RedisCacheEngine {
21
21
  if (dateRegex.test(value)) {
22
22
  return new Date(value);
23
23
  }
24
- else if (mongoose_1.Types.ObjectId.isValid(value)) {
24
+ else if (mongoose_1.default.isObjectIdOrHexString(value)) {
25
25
  return new mongoose_1.Types.ObjectId(value);
26
26
  }
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RedisCacheEngine.js","sourceRoot":"","sources":["../../../../src/cache/engine/RedisCacheEngine.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,uCAAgC;AAMhC,MAAM,gBAAgB;IAGpB,YAAa,OAAqB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAA;SACtC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,SAAS,GAAG,+CAA+C,CAAA;gBACjE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;iBACvB;qBAAM,IAAI,gBAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxC,OAAO,IAAI,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;iBACjC;aACF;YACD,OAAO,KAAgB,CAAA;QACzB,CAAC,CAAiE,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW,EAAE,KAAc,EAAE,GAAG,GAAG,QAAQ;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,eAAe,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"RedisCacheEngine.js","sourceRoot":"","sources":["../../../../src/cache/engine/RedisCacheEngine.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,6DAA0C;AAM1C,MAAM,gBAAgB;IAGpB,YAAa,OAAqB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAA;SACtC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,SAAS,GAAG,+CAA+C,CAAA;gBACjE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;iBACvB;qBAAM,IAAI,kBAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;oBAChD,OAAO,IAAI,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;iBACjC;aACF;YACD,OAAO,KAAgB,CAAA;QACzB,CAAC,CAAiE,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW,EAAE,KAAc,EAAE,GAAG,GAAG,QAAQ;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,eAAe,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAW;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-cache-mongoose",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Cache plugin for mongoose Queries and Aggregate (in-memory, redis)",
5
5
  "author": "Alex Eagle",
6
6
  "license": "MIT",
@@ -82,22 +82,22 @@
82
82
  "devDependencies": {
83
83
  "@shelf/jest-mongodb": "4.1.7",
84
84
  "@swc/cli": "0.1.62",
85
- "@swc/core": "1.3.91",
86
- "@swc/helpers": "0.5.2",
85
+ "@swc/core": "1.3.93",
86
+ "@swc/helpers": "0.5.3",
87
87
  "@swc/jest": "0.2.29",
88
88
  "@swc/register": "0.1.10",
89
89
  "@types/jest": "29.5.5",
90
90
  "@types/ms": "0.7.32",
91
91
  "@types/node": "18",
92
- "@typescript-eslint/eslint-plugin": "6.7.3",
93
- "@typescript-eslint/parser": "6.7.3",
94
- "eslint": "8.50.0",
92
+ "@typescript-eslint/eslint-plugin": "6.7.5",
93
+ "@typescript-eslint/parser": "6.7.5",
94
+ "eslint": "8.51.0",
95
95
  "eslint-plugin-jest": "27.4.2",
96
96
  "eslint-plugin-jest-formatting": "3.1.0",
97
97
  "eslint-plugin-sonarjs": "0.21.0",
98
98
  "jest": "29.7.0",
99
99
  "merge": "2.1.1",
100
- "mongoose": "6.12.0",
100
+ "mongoose": "6.12.1",
101
101
  "open-cli": "7.2.0",
102
102
  "typescript": "5.2.2"
103
103
  },
@@ -1,5 +1,5 @@
1
1
  import IORedis from 'ioredis'
2
- import { Types } from 'mongoose'
2
+ import mongoose, { Types } from 'mongoose'
3
3
 
4
4
  import type { Redis, RedisOptions } from 'ioredis'
5
5
  import type IData from '../../interfaces/IData'
@@ -25,7 +25,7 @@ class RedisCacheEngine implements ICacheEngine {
25
25
  const dateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/
26
26
  if (dateRegex.test(value)) {
27
27
  return new Date(value)
28
- } else if (Types.ObjectId.isValid(value)) {
28
+ } else if (mongoose.isObjectIdOrHexString(value)) {
29
29
  return new Types.ObjectId(value)
30
30
  }
31
31
  }
@@ -311,4 +311,16 @@ describe('cache redis', () => {
311
311
  expect(cache1?.stories?.[1]._id).toEqual(story2._id)
312
312
  expect(cache1).toEqual(cache2)
313
313
  })
314
+
315
+ it('should not misclassify certain fields as objectIds', async () => {
316
+ // ObjectId.isValid will return true for multiple scenarios.
317
+ // A string being a potentially valid objectId should not be the
318
+ // determining factor on wether or not deserialize it as objectId.
319
+ await User.create({ name: '12CharString', role: 'admin' })
320
+ const miss = await User.find({ name: '12CharString' }).lean().cache('30 seconds')
321
+ const hit = await User.find({ name: '12CharString' }).lean().cache('30 seconds')
322
+ expect(miss).not.toBeNull()
323
+ expect(hit).not.toBeNull()
324
+ expect(hit).toEqual(miss)
325
+ })
314
326
  })