@unchainedshop/core-delivery 4.8.20 → 4.8.22

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.
@@ -19,7 +19,7 @@ export declare const configureDeliveryModule: ({ db, options: deliveryOptions, }
19
19
  deliveryProviderId: string;
20
20
  } & mongodb.Filter<DeliveryProvider>, options?: mongodb.FindOptions) => Promise<DeliveryProvider | null>;
21
21
  findProviders: (query?: DeliveryProviderQuery, options?: mongodb.FindOptions) => Promise<DeliveryProvider[]>;
22
- allProviders: () => Promise<mongodb.WithId<DeliveryProvider>[]>;
22
+ allProviders: import("@unchainedshop/utils/lib/memoize-with-ttl.js").MemoizedWithTTL<[], mongodb.WithId<DeliveryProvider>[]>;
23
23
  providerExists: ({ deliveryProviderId }: {
24
24
  deliveryProviderId: string;
25
25
  }) => Promise<boolean>;
@@ -2,8 +2,7 @@ import { emit, registerEvents } from '@unchainedshop/events';
2
2
  import { mongodb, generateDbFilterById, generateDbObjectId, escapeRegexString, } from '@unchainedshop/mongodb';
3
3
  import { DeliveryProvidersCollection, } from "../db/DeliveryProvidersCollection.js";
4
4
  import { deliverySettings } from "../delivery-settings.js";
5
- import pMemoize from 'p-memoize';
6
- import ExpiryMap from 'expiry-map';
5
+ import { memoizeWithTTL } from '@unchainedshop/utils';
7
6
  const DELIVERY_PROVIDER_EVENTS = [
8
7
  'DELIVERY_PROVIDER_CREATE',
9
8
  'DELIVERY_PROVIDER_UPDATE',
@@ -23,11 +22,11 @@ export const buildFindSelector = ({ includeDeleted = false, queryString, deliver
23
22
  }
24
23
  return selector;
25
24
  };
26
- const allProvidersCache = new ExpiryMap(process.env.NODE_ENV === 'production' ? 60000 : 1);
27
25
  export const configureDeliveryModule = async ({ db, options: deliveryOptions = {}, }) => {
28
26
  registerEvents(DELIVERY_PROVIDER_EVENTS);
29
27
  deliverySettings.configureSettings(deliveryOptions);
30
28
  const DeliveryProviders = await DeliveryProvidersCollection(db);
29
+ const allProviders = memoizeWithTTL(async () => DeliveryProviders.find({ deleted: null }, { sort: { created: 1 } }).toArray(), { ttl: process.env.NODE_ENV === 'production' ? 60000 : 1 });
31
30
  return {
32
31
  count: async (query = {}) => {
33
32
  const providerCount = await DeliveryProviders.countDocuments(buildFindSelector(query));
@@ -40,11 +39,7 @@ export const configureDeliveryModule = async ({ db, options: deliveryOptions = {
40
39
  const providers = DeliveryProviders.find(buildFindSelector(query), options);
41
40
  return providers.toArray();
42
41
  },
43
- allProviders: pMemoize(async function () {
44
- return DeliveryProviders.find({ deleted: null }, { sort: { created: 1 } }).toArray();
45
- }, {
46
- cache: allProvidersCache,
47
- }),
42
+ allProviders,
48
43
  providerExists: async ({ deliveryProviderId }) => {
49
44
  const providerCount = await DeliveryProviders.countDocuments(generateDbFilterById(deliveryProviderId, { deleted: null }), { limit: 1 });
50
45
  return !!providerCount;
@@ -56,7 +51,7 @@ export const configureDeliveryModule = async ({ db, options: deliveryOptions = {
56
51
  ...doc,
57
52
  });
58
53
  const deliveryProvider = (await DeliveryProviders.findOne({ _id: deliveryProviderId }, {}));
59
- allProvidersCache.clear();
54
+ allProviders.clear();
60
55
  await emit('DELIVERY_PROVIDER_CREATE', { deliveryProvider });
61
56
  return deliveryProvider;
62
57
  },
@@ -69,7 +64,7 @@ export const configureDeliveryModule = async ({ db, options: deliveryOptions = {
69
64
  }, { returnDocument: 'after' });
70
65
  if (!deliveryProvider)
71
66
  return null;
72
- allProvidersCache.clear();
67
+ allProviders.clear();
73
68
  await emit('DELIVERY_PROVIDER_UPDATE', { deliveryProvider });
74
69
  return deliveryProvider;
75
70
  },
@@ -81,7 +76,7 @@ export const configureDeliveryModule = async ({ db, options: deliveryOptions = {
81
76
  }, { returnDocument: 'after' });
82
77
  if (!deliveryProvider)
83
78
  return null;
84
- allProvidersCache.clear();
79
+ allProviders.clear();
85
80
  await emit('DELIVERY_PROVIDER_REMOVE', { deliveryProvider });
86
81
  return deliveryProvider;
87
82
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-delivery",
3
3
  "description": "Delivery provider management module for the Unchained Engine",
4
- "version": "4.8.20",
4
+ "version": "4.8.22",
5
5
  "main": "lib/delivery-index.js",
6
6
  "types": "lib/delivery-index.d.ts",
7
7
  "type": "module",
@@ -36,11 +36,8 @@
36
36
  "homepage": "https://github.com/unchainedshop/unchained#readme",
37
37
  "dependencies": {
38
38
  "@unchainedshop/events": "^4.8.12",
39
- "@unchainedshop/logger": "^4.8.12",
40
39
  "@unchainedshop/mongodb": "^4.8.12",
41
- "@unchainedshop/utils": "^4.8.12",
42
- "expiry-map": "^2.0.0",
43
- "p-memoize": "^8.0.0"
40
+ "@unchainedshop/utils": "^4.8.12"
44
41
  },
45
42
  "devDependencies": {
46
43
  "@types/node": "^26.2.0",