@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: ()
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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",
|