@react-pakistan/util-functions 1.25.9 → 1.25.11
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/api/stellar-solutions/bank/cache.d.ts +0 -104
- package/api/stellar-solutions/bank/cache.js +237 -296
- package/api/stellar-solutions/bank/index.d.ts +1 -1
- package/api/stellar-solutions/bank/index.js +0 -15
- package/api/stellar-solutions/branch/cache.d.ts +0 -102
- package/api/stellar-solutions/branch/cache.js +241 -296
- package/api/stellar-solutions/branch/index.d.ts +1 -1
- package/api/stellar-solutions/branch/index.js +0 -15
- package/api/stellar-solutions/company/cache.d.ts +0 -106
- package/api/stellar-solutions/company/cache.js +247 -308
- package/api/stellar-solutions/company/index.d.ts +1 -1
- package/api/stellar-solutions/company/index.js +0 -15
- package/api/stellar-solutions/contact/cache.d.ts +0 -108
- package/api/stellar-solutions/contact/cache.js +247 -308
- package/api/stellar-solutions/contact/index.d.ts +1 -1
- package/api/stellar-solutions/contact/index.js +0 -15
- package/api/stellar-solutions/currency/cache.d.ts +0 -104
- package/api/stellar-solutions/currency/cache.js +243 -296
- package/api/stellar-solutions/currency/index.d.ts +1 -1
- package/api/stellar-solutions/currency/index.js +0 -15
- package/api/stellar-solutions/customer/cache.d.ts +0 -108
- package/api/stellar-solutions/customer/cache.js +249 -308
- package/api/stellar-solutions/customer/index.d.ts +1 -1
- package/api/stellar-solutions/customer/index.js +0 -15
- package/api/stellar-solutions/expense/cache.d.ts +0 -106
- package/api/stellar-solutions/expense/cache.js +247 -308
- package/api/stellar-solutions/expense/index.d.ts +1 -1
- package/api/stellar-solutions/expense/index.js +0 -15
- package/api/stellar-solutions/expense-category/cache.d.ts +0 -94
- package/api/stellar-solutions/expense-category/cache.js +224 -281
- package/api/stellar-solutions/expense-category/index.d.ts +1 -1
- package/api/stellar-solutions/expense-category/index.js +0 -15
- package/api/stellar-solutions/payment-mode/cache.d.ts +0 -102
- package/api/stellar-solutions/payment-mode/cache.js +245 -296
- package/api/stellar-solutions/payment-mode/index.d.ts +1 -1
- package/api/stellar-solutions/payment-mode/index.js +0 -15
- package/api/stellar-solutions/preference/cache.d.ts +0 -90
- package/api/stellar-solutions/preference/cache.js +218 -269
- package/api/stellar-solutions/preference/index.d.ts +1 -1
- package/api/stellar-solutions/preference/index.js +0 -15
- package/api/stellar-solutions/product/cache.d.ts +0 -94
- package/api/stellar-solutions/product/cache.js +222 -281
- package/api/stellar-solutions/product/index.d.ts +1 -1
- package/api/stellar-solutions/product/index.js +0 -15
- package/api/stellar-solutions/product-category/cache.d.ts +0 -94
- package/api/stellar-solutions/product-category/cache.js +224 -281
- package/api/stellar-solutions/product-category/index.d.ts +1 -1
- package/api/stellar-solutions/product-category/index.js +0 -15
- package/api/stellar-solutions/tax/cache.d.ts +0 -102
- package/api/stellar-solutions/tax/cache.js +235 -296
- package/api/stellar-solutions/tax/index.d.ts +1 -1
- package/api/stellar-solutions/tax/index.js +0 -15
- package/general/format-secs.d.ts +1 -0
- package/general/format-secs.js +21 -0
- package/general/index.d.ts +1 -0
- package/general/index.js +1 -0
- package/package.json +1 -1
|
@@ -1,308 +1,249 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
* Useful when customers have been updated and you want to force a refresh
|
|
251
|
-
*
|
|
252
|
-
* @example
|
|
253
|
-
* invalidateCustomersCache();
|
|
254
|
-
* const freshCustomers = await getCachedCustomers();
|
|
255
|
-
*/
|
|
256
|
-
var invalidateCustomersCache = function () {
|
|
257
|
-
try {
|
|
258
|
-
localStorage.removeItem(type_1.LS_KEYS.CUSTOMERS);
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
console.error('Error invalidating customers cache:', error);
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
exports.invalidateCustomersCache = invalidateCustomersCache;
|
|
265
|
-
/**
|
|
266
|
-
* Utility function to preload customers into cache
|
|
267
|
-
* Useful to call on app initialization or login
|
|
268
|
-
*
|
|
269
|
-
* @returns Promise<{count:number, items: CustomerBE[]}> - Array of preloaded customers
|
|
270
|
-
*
|
|
271
|
-
* @example
|
|
272
|
-
* // On app initialization
|
|
273
|
-
* await preloadCustomers();
|
|
274
|
-
*/
|
|
275
|
-
var preloadCustomers = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
276
|
-
return __generator(this, function (_a) {
|
|
277
|
-
return [2 /*return*/, (0, exports.getCachedCustomers)()];
|
|
278
|
-
});
|
|
279
|
-
}); };
|
|
280
|
-
exports.preloadCustomers = preloadCustomers;
|
|
281
|
-
/**
|
|
282
|
-
* Utility function to check if customers cache is stale
|
|
283
|
-
* Returns true if cache is older than 1 day or doesn't exist
|
|
284
|
-
*
|
|
285
|
-
* @returns boolean - True if cache is stale or doesn't exist
|
|
286
|
-
*
|
|
287
|
-
* @example
|
|
288
|
-
* if (isCustomersCacheStale()) {
|
|
289
|
-
* await getCachedCustomers(); // This will fetch fresh data
|
|
290
|
-
* }
|
|
291
|
-
*/
|
|
292
|
-
var isCustomersCacheStale = function () {
|
|
293
|
-
try {
|
|
294
|
-
var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CUSTOMERS);
|
|
295
|
-
if (!cachedData) {
|
|
296
|
-
return true;
|
|
297
|
-
}
|
|
298
|
-
var currentTime = new Date().getTime();
|
|
299
|
-
var cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
300
|
-
var ageInMs = currentTime - cachedTime;
|
|
301
|
-
return ageInMs >= constants_2.ONE_DAY_IN_MS;
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
console.error('Error checking customers cache staleness:', error);
|
|
305
|
-
return true;
|
|
306
|
-
}
|
|
307
|
-
};
|
|
308
|
-
exports.isCustomersCacheStale = isCustomersCacheStale;
|
|
1
|
+
// import { API_ROUTES } from '../constants';
|
|
2
|
+
// import { CustomerBE, LS_KEYS } from '../type';
|
|
3
|
+
// import { API_METHODS } from '../../../constants/api-methods';
|
|
4
|
+
// import { fetchData } from '../../../general/fetch-data';
|
|
5
|
+
// import { getStorageValue } from '../../../local-storage/get-storage-value';
|
|
6
|
+
// import { setStorageValue } from '../../../local-storage/set-storage-value';
|
|
7
|
+
// import { ONE_DAY_IN_MS } from '../../../constants';
|
|
8
|
+
// interface CachedCustomers {
|
|
9
|
+
// customers: CustomerBE[];
|
|
10
|
+
// cachedAt: string;
|
|
11
|
+
// }
|
|
12
|
+
// /**
|
|
13
|
+
// * Synchronous utility function to get customers from cache only
|
|
14
|
+
// * Returns cached data immediately if available and fresh, otherwise returns empty array
|
|
15
|
+
// * Does not trigger any API calls
|
|
16
|
+
// *
|
|
17
|
+
// * @returns CustomerBE[] - Array of cached customers or empty array wrapper ({count, items})
|
|
18
|
+
// *
|
|
19
|
+
// * @example
|
|
20
|
+
// * const customers = getCachedCustomersSync();
|
|
21
|
+
// * if (customers.items.length > 0) {
|
|
22
|
+
// * console.log(customers.items[0].firstName);
|
|
23
|
+
// * }
|
|
24
|
+
// */
|
|
25
|
+
// export const getCachedCustomersSync = (): {
|
|
26
|
+
// count: number;
|
|
27
|
+
// items: CustomerBE[];
|
|
28
|
+
// } => {
|
|
29
|
+
// try {
|
|
30
|
+
// const cachedData = getStorageValue(
|
|
31
|
+
// LS_KEYS.CUSTOMERS
|
|
32
|
+
// ) as CachedCustomers | null;
|
|
33
|
+
// if (!cachedData) {
|
|
34
|
+
// return { count: 0, items: [] };
|
|
35
|
+
// }
|
|
36
|
+
// const currentTime = new Date().getTime();
|
|
37
|
+
// const cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
38
|
+
// const ageInMs = currentTime - cachedTime;
|
|
39
|
+
// // If cached data is less than 1 day old, return it
|
|
40
|
+
// if (ageInMs < ONE_DAY_IN_MS) {
|
|
41
|
+
// return {
|
|
42
|
+
// count: cachedData.customers.length,
|
|
43
|
+
// items: cachedData.customers,
|
|
44
|
+
// };
|
|
45
|
+
// }
|
|
46
|
+
// return { count: 0, items: [] };
|
|
47
|
+
// } catch (error) {
|
|
48
|
+
// console.error('Error getting cached customers:', error);
|
|
49
|
+
// return { count: 0, items: [] };
|
|
50
|
+
// }
|
|
51
|
+
// };
|
|
52
|
+
// /**
|
|
53
|
+
// * Utility function to get customers from cache or fetch from API
|
|
54
|
+
// *
|
|
55
|
+
// * This function manages a localStorage cache of customers with the following logic:
|
|
56
|
+
// * - If customers exist in cache and are less than 1 day old, return cached version
|
|
57
|
+
// * - If customers exist but are older than 1 day, fetch fresh data and update cache
|
|
58
|
+
// * - If customers don't exist in cache, fetch from API and cache them
|
|
59
|
+
// *
|
|
60
|
+
// * @param searchQuery - Optional search query to filter customers
|
|
61
|
+
// * @param filters - Optional filters object to apply additional filtering (bypasses cache)
|
|
62
|
+
// * @param pageLimit - Number of customers to fetch (default: 100)
|
|
63
|
+
// * @returns Promise<{count:number, items: CustomerBE[]}> - Paged customers
|
|
64
|
+
// *
|
|
65
|
+
// * @example
|
|
66
|
+
// * const customers = await getCachedCustomers();
|
|
67
|
+
// * console.log(customers.items[0].firstName);
|
|
68
|
+
// *
|
|
69
|
+
// * // With search
|
|
70
|
+
// * const filtered = await getCachedCustomers('John');
|
|
71
|
+
// *
|
|
72
|
+
// * // With filters
|
|
73
|
+
// * const filteredByCountry = await getCachedCustomers(undefined, { country: 'USA' });
|
|
74
|
+
// */
|
|
75
|
+
// export const getCachedCustomers = async (
|
|
76
|
+
// searchQuery?: string,
|
|
77
|
+
// filters?: Record<string, unknown>,
|
|
78
|
+
// pageLimit: number = 100
|
|
79
|
+
// ): Promise<{ count: number; items: CustomerBE[] }> => {
|
|
80
|
+
// try {
|
|
81
|
+
// // If there's a search query or filters, always fetch fresh data (don't use cache)
|
|
82
|
+
// if (
|
|
83
|
+
// (searchQuery && searchQuery.trim()) ||
|
|
84
|
+
// (filters && Object.keys(filters).length > 0)
|
|
85
|
+
// ) {
|
|
86
|
+
// const response = await fetchData({
|
|
87
|
+
// url: API_ROUTES.CUSTOMERS,
|
|
88
|
+
// body: JSON.stringify({
|
|
89
|
+
// searchQuery,
|
|
90
|
+
// ...filters,
|
|
91
|
+
// pageLimit,
|
|
92
|
+
// currentPage: 1,
|
|
93
|
+
// }),
|
|
94
|
+
// method: API_METHODS.POST,
|
|
95
|
+
// });
|
|
96
|
+
// return response?.data || { count: 0, items: [] };
|
|
97
|
+
// }
|
|
98
|
+
// // Get the cached data from localStorage
|
|
99
|
+
// const cachedData = getStorageValue(
|
|
100
|
+
// LS_KEYS.CUSTOMERS
|
|
101
|
+
// ) as CachedCustomers | null;
|
|
102
|
+
// const currentTime = new Date().getTime();
|
|
103
|
+
// // Check if cached data exists and is still fresh
|
|
104
|
+
// if (cachedData) {
|
|
105
|
+
// const cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
106
|
+
// const ageInMs = currentTime - cachedTime;
|
|
107
|
+
// // If cached data is less than 1 day old, return it
|
|
108
|
+
// if (ageInMs < ONE_DAY_IN_MS) {
|
|
109
|
+
// return {
|
|
110
|
+
// count: cachedData.customers.length,
|
|
111
|
+
// items: cachedData.customers,
|
|
112
|
+
// };
|
|
113
|
+
// }
|
|
114
|
+
// }
|
|
115
|
+
// // If no cached data or data is older than 1 day, fetch fresh data
|
|
116
|
+
// const response = await fetchData({
|
|
117
|
+
// url: API_ROUTES.CUSTOMERS,
|
|
118
|
+
// body: JSON.stringify({
|
|
119
|
+
// pageLimit,
|
|
120
|
+
// currentPage: 1,
|
|
121
|
+
// }),
|
|
122
|
+
// method: API_METHODS.POST,
|
|
123
|
+
// });
|
|
124
|
+
// if (response?.data?.items) {
|
|
125
|
+
// // Update the cache with fresh data
|
|
126
|
+
// const updatedCache: CachedCustomers = {
|
|
127
|
+
// customers: response.data.items,
|
|
128
|
+
// cachedAt: new Date().toISOString(),
|
|
129
|
+
// };
|
|
130
|
+
// setStorageValue(LS_KEYS.CUSTOMERS, updatedCache);
|
|
131
|
+
// return response.data;
|
|
132
|
+
// }
|
|
133
|
+
// return { count: 0, items: [] };
|
|
134
|
+
// } catch (error) {
|
|
135
|
+
// console.error('Error fetching customers:', error);
|
|
136
|
+
// return { count: 0, items: [] };
|
|
137
|
+
// }
|
|
138
|
+
// };
|
|
139
|
+
// /**
|
|
140
|
+
// * Utility function to get a specific customer by ID from cache
|
|
141
|
+
// * If not found in cache, returns null (does not trigger API call)
|
|
142
|
+
// *
|
|
143
|
+
// * @param customerId - The ID of the customer to retrieve
|
|
144
|
+
// * @returns CustomerBE | null - The customer or null if not found
|
|
145
|
+
// *
|
|
146
|
+
// * @example
|
|
147
|
+
// * const customer = getCachedCustomerById('customer-123');
|
|
148
|
+
// * if (customer) {
|
|
149
|
+
// * console.log(customer.firstName);
|
|
150
|
+
// * }
|
|
151
|
+
// */
|
|
152
|
+
// export const getCachedCustomerById = (
|
|
153
|
+
// customerId: string
|
|
154
|
+
// ): CustomerBE | null => {
|
|
155
|
+
// if (!customerId) {
|
|
156
|
+
// return null;
|
|
157
|
+
// }
|
|
158
|
+
// try {
|
|
159
|
+
// const customers = getCachedCustomersSync().items;
|
|
160
|
+
// return customers.find((customer) => customer.id === customerId) || null;
|
|
161
|
+
// } catch (error) {
|
|
162
|
+
// console.error('Error getting cached customer by ID:', error);
|
|
163
|
+
// return null;
|
|
164
|
+
// }
|
|
165
|
+
// };
|
|
166
|
+
// /**
|
|
167
|
+
// * Utility function to get a specific customer by phone from cache
|
|
168
|
+
// * If not found in cache, returns null (does not trigger API call)
|
|
169
|
+
// *
|
|
170
|
+
// * @param phone - The phone number of the customer to search for
|
|
171
|
+
// * @returns CustomerBE | null - The customer or null if not found
|
|
172
|
+
// *
|
|
173
|
+
// * @example
|
|
174
|
+
// * const customer = getCachedCustomerByPhone('+1234567890');
|
|
175
|
+
// * if (customer) {
|
|
176
|
+
// * console.log(customer.firstName);
|
|
177
|
+
// * }
|
|
178
|
+
// */
|
|
179
|
+
// export const getCachedCustomerByPhone = (phone: string): CustomerBE | null => {
|
|
180
|
+
// if (!phone) {
|
|
181
|
+
// return null;
|
|
182
|
+
// }
|
|
183
|
+
// try {
|
|
184
|
+
// const customers = getCachedCustomersSync().items;
|
|
185
|
+
// return customers.find((customer) => customer.phone === phone) || null;
|
|
186
|
+
// } catch (error) {
|
|
187
|
+
// console.error('Error getting cached customer by phone:', error);
|
|
188
|
+
// return null;
|
|
189
|
+
// }
|
|
190
|
+
// };
|
|
191
|
+
// /**
|
|
192
|
+
// * Utility function to invalidate (remove) customers from cache
|
|
193
|
+
// * Useful when customers have been updated and you want to force a refresh
|
|
194
|
+
// *
|
|
195
|
+
// * @example
|
|
196
|
+
// * invalidateCustomersCache();
|
|
197
|
+
// * const freshCustomers = await getCachedCustomers();
|
|
198
|
+
// */
|
|
199
|
+
// export const invalidateCustomersCache = (): void => {
|
|
200
|
+
// try {
|
|
201
|
+
// localStorage.removeItem(LS_KEYS.CUSTOMERS);
|
|
202
|
+
// } catch (error) {
|
|
203
|
+
// console.error('Error invalidating customers cache:', error);
|
|
204
|
+
// }
|
|
205
|
+
// };
|
|
206
|
+
// /**
|
|
207
|
+
// * Utility function to preload customers into cache
|
|
208
|
+
// * Useful to call on app initialization or login
|
|
209
|
+
// *
|
|
210
|
+
// * @returns Promise<{count:number, items: CustomerBE[]}> - Array of preloaded customers
|
|
211
|
+
// *
|
|
212
|
+
// * @example
|
|
213
|
+
// * // On app initialization
|
|
214
|
+
// * await preloadCustomers();
|
|
215
|
+
// */
|
|
216
|
+
// export const preloadCustomers = async (): Promise<{
|
|
217
|
+
// count: number;
|
|
218
|
+
// items: CustomerBE[];
|
|
219
|
+
// }> => {
|
|
220
|
+
// return getCachedCustomers();
|
|
221
|
+
// };
|
|
222
|
+
// /**
|
|
223
|
+
// * Utility function to check if customers cache is stale
|
|
224
|
+
// * Returns true if cache is older than 1 day or doesn't exist
|
|
225
|
+
// *
|
|
226
|
+
// * @returns boolean - True if cache is stale or doesn't exist
|
|
227
|
+
// *
|
|
228
|
+
// * @example
|
|
229
|
+
// * if (isCustomersCacheStale()) {
|
|
230
|
+
// * await getCachedCustomers(); // This will fetch fresh data
|
|
231
|
+
// * }
|
|
232
|
+
// */
|
|
233
|
+
// export const isCustomersCacheStale = (): boolean => {
|
|
234
|
+
// try {
|
|
235
|
+
// const cachedData = getStorageValue(
|
|
236
|
+
// LS_KEYS.CUSTOMERS
|
|
237
|
+
// ) as CachedCustomers | null;
|
|
238
|
+
// if (!cachedData) {
|
|
239
|
+
// return true;
|
|
240
|
+
// }
|
|
241
|
+
// const currentTime = new Date().getTime();
|
|
242
|
+
// const cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
243
|
+
// const ageInMs = currentTime - cachedTime;
|
|
244
|
+
// return ageInMs >= ONE_DAY_IN_MS;
|
|
245
|
+
// } catch (error) {
|
|
246
|
+
// console.error('Error checking customers cache staleness:', error);
|
|
247
|
+
// return true;
|
|
248
|
+
// }
|
|
249
|
+
// };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from './cache';
|
|
2
1
|
import { CustomerBE } from '../type';
|
|
3
2
|
type PrismaClient = any;
|
|
4
3
|
export interface ListCustomerArgs {
|
|
@@ -66,3 +65,4 @@ export declare const updateCustomer: ({ address, city, country, email, firstName
|
|
|
66
65
|
* @throws {Error} If customer ID is not provided or customer not found
|
|
67
66
|
*/
|
|
68
67
|
export declare const deleteCustomer: ({ id, prisma, }: DeleteCustomerArgs) => Promise<CustomerBE>;
|
|
68
|
+
export {};
|
|
@@ -10,20 +10,6 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
25
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
26
|
-
};
|
|
27
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
28
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
29
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -71,7 +57,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
71
57
|
};
|
|
72
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
73
59
|
exports.deleteCustomer = exports.updateCustomer = exports.unitCustomerByPhone = exports.unitCustomerById = exports.listCustomer = void 0;
|
|
74
|
-
__exportStar(require("./cache"), exports);
|
|
75
60
|
var multi_part_search_1 = require("../../../general/multi-part-search");
|
|
76
61
|
/**
|
|
77
62
|
* Retrieves customers with pagination and filtering
|