@react-pakistan/util-functions 1.24.99 → 1.25.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.
- package/api/stellar-solutions/app-user/index.d.ts +9 -9
- package/api/stellar-solutions/app-user/index.js +4 -4
- package/api/stellar-solutions/bank/cache.d.ts +99 -0
- package/api/stellar-solutions/bank/cache.js +256 -0
- package/api/stellar-solutions/bank/index.d.ts +10 -10
- package/api/stellar-solutions/bank/index.js +19 -4
- package/api/stellar-solutions/branch/cache.d.ts +97 -0
- package/api/stellar-solutions/branch/cache.js +256 -0
- package/api/stellar-solutions/branch/index.d.ts +10 -10
- package/api/stellar-solutions/branch/index.js +19 -4
- package/api/stellar-solutions/company/cache.d.ts +106 -0
- package/api/stellar-solutions/company/cache.js +307 -0
- package/api/stellar-solutions/company/index.d.ts +10 -10
- package/api/stellar-solutions/company/index.js +19 -4
- package/api/stellar-solutions/company-report/index.d.ts +3 -3
- package/api/stellar-solutions/company-report/index.js +1 -1
- package/api/stellar-solutions/constants.d.ts +12 -0
- package/api/stellar-solutions/constants.js +13 -1
- package/api/stellar-solutions/contact/cache.d.ts +108 -0
- package/api/stellar-solutions/contact/cache.js +307 -0
- package/api/stellar-solutions/contact/index.d.ts +10 -10
- package/api/stellar-solutions/contact/index.js +19 -4
- package/api/stellar-solutions/currency/cache.d.ts +99 -0
- package/api/stellar-solutions/currency/cache.js +256 -0
- package/api/stellar-solutions/currency/index.d.ts +10 -10
- package/api/stellar-solutions/currency/index.js +19 -4
- package/api/stellar-solutions/customer/cache.d.ts +108 -0
- package/api/stellar-solutions/customer/cache.js +307 -0
- package/api/stellar-solutions/customer/index.d.ts +12 -12
- package/api/stellar-solutions/customer/index.js +20 -5
- package/api/stellar-solutions/expense/cache.d.ts +106 -0
- package/api/stellar-solutions/expense/cache.js +307 -0
- package/api/stellar-solutions/expense/index.d.ts +10 -10
- package/api/stellar-solutions/expense/index.js +19 -4
- package/api/stellar-solutions/expense-category/cache.d.ts +94 -0
- package/api/stellar-solutions/expense-category/cache.js +280 -0
- package/api/stellar-solutions/expense-category/index.d.ts +10 -10
- package/api/stellar-solutions/expense-category/index.js +19 -4
- package/api/stellar-solutions/lead/index.d.ts +9 -9
- package/api/stellar-solutions/lead/index.js +4 -4
- package/api/stellar-solutions/menu-order/index.d.ts +9 -9
- package/api/stellar-solutions/menu-order/index.js +4 -4
- package/api/stellar-solutions/payment/index.d.ts +9 -9
- package/api/stellar-solutions/payment/index.js +4 -4
- package/api/stellar-solutions/payment-mode/cache.d.ts +97 -0
- package/api/stellar-solutions/payment-mode/cache.js +256 -0
- package/api/stellar-solutions/payment-mode/index.d.ts +10 -10
- package/api/stellar-solutions/payment-mode/index.js +19 -4
- package/api/stellar-solutions/preference/cache.d.ts +85 -0
- package/api/stellar-solutions/preference/cache.js +229 -0
- package/api/stellar-solutions/preference/index.d.ts +6 -6
- package/api/stellar-solutions/preference/index.js +17 -2
- package/api/stellar-solutions/product/cache.d.ts +9 -9
- package/api/stellar-solutions/product/cache.js +4 -4
- package/api/stellar-solutions/product/index.d.ts +10 -10
- package/api/stellar-solutions/product/index.js +6 -6
- package/api/stellar-solutions/product-category/cache.d.ts +9 -9
- package/api/stellar-solutions/product-category/cache.js +4 -4
- package/api/stellar-solutions/product-category/index.d.ts +9 -9
- package/api/stellar-solutions/product-category/index.js +4 -4
- package/api/stellar-solutions/profile/index.d.ts +13 -13
- package/api/stellar-solutions/profile/index.js +6 -6
- package/api/stellar-solutions/quote-invoice/index.d.ts +9 -9
- package/api/stellar-solutions/quote-invoice/index.js +4 -4
- package/api/stellar-solutions/quote-invoice-report/index.d.ts +3 -3
- package/api/stellar-solutions/quote-invoice-report/index.js +1 -1
- package/api/stellar-solutions/tax/cache.d.ts +97 -0
- package/api/stellar-solutions/tax/cache.js +256 -0
- package/api/stellar-solutions/tax/index.d.ts +10 -10
- package/api/stellar-solutions/tax/index.js +19 -4
- package/api/stellar-solutions/type.d.ts +57 -46
- package/api/stellar-solutions/type.js +11 -0
- package/package.json +1 -1
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.isCurrenciesCacheStale = exports.preloadCurrencies = exports.invalidateCurrenciesCache = exports.getCachedCurrencyByCode = exports.getCachedCurrencyById = exports.getCachedCurrencies = exports.getCachedCurrenciesSync = void 0;
|
|
40
|
+
var constants_1 = require("../constants");
|
|
41
|
+
var type_1 = require("../type");
|
|
42
|
+
var api_methods_1 = require("../../../constants/api-methods");
|
|
43
|
+
var fetch_data_1 = require("../../../general/fetch-data");
|
|
44
|
+
var get_storage_value_1 = require("../../../local-storage/get-storage-value");
|
|
45
|
+
var set_storage_value_1 = require("../../../local-storage/set-storage-value");
|
|
46
|
+
/**
|
|
47
|
+
* Synchronous utility function to get currencies from cache only
|
|
48
|
+
* Returns cached data immediately if available and fresh, otherwise returns empty array
|
|
49
|
+
* Does not trigger any API calls
|
|
50
|
+
*
|
|
51
|
+
* @returns CurrencyBE[] - Array of cached currencies or empty array wrapper ({count, items})
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const currencies = getCachedCurrenciesSync();
|
|
55
|
+
* if (currencies.items.length > 0) {
|
|
56
|
+
* console.log(currencies.items[0].label);
|
|
57
|
+
* }
|
|
58
|
+
*/
|
|
59
|
+
var getCachedCurrenciesSync = function () {
|
|
60
|
+
try {
|
|
61
|
+
var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CURRENCIES);
|
|
62
|
+
if (!cachedData) {
|
|
63
|
+
return { count: 0, items: [] };
|
|
64
|
+
}
|
|
65
|
+
var currentTime = new Date().getTime();
|
|
66
|
+
var cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
67
|
+
var ageInMs = currentTime - cachedTime;
|
|
68
|
+
// If cached data is less than 1 week old, return it
|
|
69
|
+
if (ageInMs < constants_1.ONE_WEEK_IN_MS) {
|
|
70
|
+
return {
|
|
71
|
+
count: cachedData.currencies.length,
|
|
72
|
+
items: cachedData.currencies,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return { count: 0, items: [] };
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error('Error getting cached currencies:', error);
|
|
79
|
+
return { count: 0, items: [] };
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
exports.getCachedCurrenciesSync = getCachedCurrenciesSync;
|
|
83
|
+
/**
|
|
84
|
+
* Utility function to get currencies from cache or fetch from API
|
|
85
|
+
*
|
|
86
|
+
* This function manages a localStorage cache of currencies with the following logic:
|
|
87
|
+
* - If currencies exist in cache and are less than 1 week old, return cached version
|
|
88
|
+
* - If currencies exist but are older than 1 week, fetch fresh data and update cache
|
|
89
|
+
* - If currencies don't exist in cache, fetch from API and cache them
|
|
90
|
+
*
|
|
91
|
+
* @returns Promise<{count:number, items: CurrencyBE[]}> - Paged currencies
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* const currencies = await getCachedCurrencies();
|
|
95
|
+
* console.log(currencies.items[0].label);
|
|
96
|
+
*/
|
|
97
|
+
var getCachedCurrencies = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
98
|
+
var cachedData, currentTime, cachedTime, ageInMs, response, updatedCache, error_1;
|
|
99
|
+
var _a;
|
|
100
|
+
return __generator(this, function (_b) {
|
|
101
|
+
switch (_b.label) {
|
|
102
|
+
case 0:
|
|
103
|
+
_b.trys.push([0, 2, , 3]);
|
|
104
|
+
cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CURRENCIES);
|
|
105
|
+
currentTime = new Date().getTime();
|
|
106
|
+
// Check if cached data exists and is still fresh
|
|
107
|
+
if (cachedData) {
|
|
108
|
+
cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
109
|
+
ageInMs = currentTime - cachedTime;
|
|
110
|
+
// If cached data is less than 1 week old, return it
|
|
111
|
+
if (ageInMs < constants_1.ONE_WEEK_IN_MS) {
|
|
112
|
+
return [2 /*return*/, {
|
|
113
|
+
count: cachedData.currencies.length,
|
|
114
|
+
items: cachedData.currencies,
|
|
115
|
+
}];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return [4 /*yield*/, (0, fetch_data_1.fetchData)({
|
|
119
|
+
url: constants_1.API_ROUTES.CURRENCIES,
|
|
120
|
+
method: api_methods_1.API_METHODS.GET,
|
|
121
|
+
})];
|
|
122
|
+
case 1:
|
|
123
|
+
response = _b.sent();
|
|
124
|
+
if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.items) {
|
|
125
|
+
updatedCache = {
|
|
126
|
+
currencies: response.data.items,
|
|
127
|
+
cachedAt: new Date().toISOString(),
|
|
128
|
+
};
|
|
129
|
+
(0, set_storage_value_1.setStorageValue)(type_1.LS_KEYS.CURRENCIES, updatedCache);
|
|
130
|
+
return [2 /*return*/, response.data];
|
|
131
|
+
}
|
|
132
|
+
return [2 /*return*/, { count: 0, items: [] }];
|
|
133
|
+
case 2:
|
|
134
|
+
error_1 = _b.sent();
|
|
135
|
+
console.error('Error fetching currencies:', error_1);
|
|
136
|
+
return [2 /*return*/, { count: 0, items: [] }];
|
|
137
|
+
case 3: return [2 /*return*/];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}); };
|
|
141
|
+
exports.getCachedCurrencies = getCachedCurrencies;
|
|
142
|
+
/**
|
|
143
|
+
* Utility function to get a specific currency by ID from cache
|
|
144
|
+
* If not found in cache, returns null (does not trigger API call)
|
|
145
|
+
*
|
|
146
|
+
* @param currencyId - The ID of the currency to retrieve
|
|
147
|
+
* @returns CurrencyBE | null - The currency or null if not found
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* const currency = getCachedCurrencyById('curr-123');
|
|
151
|
+
* if (currency) {
|
|
152
|
+
* console.log(currency.label);
|
|
153
|
+
* }
|
|
154
|
+
*/
|
|
155
|
+
var getCachedCurrencyById = function (currencyId) {
|
|
156
|
+
if (!currencyId) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
var currencies = (0, exports.getCachedCurrenciesSync)().items;
|
|
161
|
+
return currencies.find(function (curr) { return curr.id === currencyId; }) || null;
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
console.error('Error getting cached currency by ID:', error);
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
exports.getCachedCurrencyById = getCachedCurrencyById;
|
|
169
|
+
/**
|
|
170
|
+
* Utility function to get a specific currency by code from cache
|
|
171
|
+
* If not found in cache, returns null (does not trigger API call)
|
|
172
|
+
*
|
|
173
|
+
* @param code - The code of the currency to retrieve (e.g., 'USD', 'EUR')
|
|
174
|
+
* @returns CurrencyBE | null - The currency or null if not found
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* const currency = getCachedCurrencyByCode('USD');
|
|
178
|
+
* if (currency) {
|
|
179
|
+
* console.log(currency.label);
|
|
180
|
+
* }
|
|
181
|
+
*/
|
|
182
|
+
var getCachedCurrencyByCode = function (code) {
|
|
183
|
+
if (!code) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
var currencies = (0, exports.getCachedCurrenciesSync)().items;
|
|
188
|
+
return currencies.find(function (curr) { return curr.code === code; }) || null;
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
console.error('Error getting cached currency by code:', error);
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
exports.getCachedCurrencyByCode = getCachedCurrencyByCode;
|
|
196
|
+
/**
|
|
197
|
+
* Utility function to invalidate (remove) currencies from cache
|
|
198
|
+
* Useful when currencies have been updated and you want to force a refresh
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* invalidateCurrenciesCache();
|
|
202
|
+
* const freshCurrencies = await getCachedCurrencies();
|
|
203
|
+
*/
|
|
204
|
+
var invalidateCurrenciesCache = function () {
|
|
205
|
+
try {
|
|
206
|
+
localStorage.removeItem(type_1.LS_KEYS.CURRENCIES);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
console.error('Error invalidating currencies cache:', error);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
exports.invalidateCurrenciesCache = invalidateCurrenciesCache;
|
|
213
|
+
/**
|
|
214
|
+
* Utility function to preload currencies into cache
|
|
215
|
+
* Useful to call on app initialization or login
|
|
216
|
+
*
|
|
217
|
+
* @returns Promise<{count:number, items: CurrencyBE[]}> - Array of preloaded currencies
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* // On app initialization
|
|
221
|
+
* await preloadCurrencies();
|
|
222
|
+
*/
|
|
223
|
+
var preloadCurrencies = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
224
|
+
return __generator(this, function (_a) {
|
|
225
|
+
return [2 /*return*/, (0, exports.getCachedCurrencies)()];
|
|
226
|
+
});
|
|
227
|
+
}); };
|
|
228
|
+
exports.preloadCurrencies = preloadCurrencies;
|
|
229
|
+
/**
|
|
230
|
+
* Utility function to check if currencies cache is stale
|
|
231
|
+
* Returns true if cache is older than 1 week or doesn't exist
|
|
232
|
+
*
|
|
233
|
+
* @returns boolean - True if cache is stale or doesn't exist
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* if (isCurrenciesCacheStale()) {
|
|
237
|
+
* await getCachedCurrencies(); // This will fetch fresh data
|
|
238
|
+
* }
|
|
239
|
+
*/
|
|
240
|
+
var isCurrenciesCacheStale = function () {
|
|
241
|
+
try {
|
|
242
|
+
var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CURRENCIES);
|
|
243
|
+
if (!cachedData) {
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
var currentTime = new Date().getTime();
|
|
247
|
+
var cachedTime = new Date(cachedData.cachedAt).getTime();
|
|
248
|
+
var ageInMs = currentTime - cachedTime;
|
|
249
|
+
return ageInMs >= constants_1.ONE_WEEK_IN_MS;
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
console.error('Error checking currencies cache staleness:', error);
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
exports.isCurrenciesCacheStale = isCurrenciesCacheStale;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
export * from './cache';
|
|
2
|
+
import { CurrencyBE } from '../type';
|
|
2
3
|
type PrismaClient = any;
|
|
3
4
|
export interface ListCurrencyArgs {
|
|
4
5
|
currentPage?: number;
|
|
@@ -30,26 +31,25 @@ export interface DeleteCurrencyArgs {
|
|
|
30
31
|
/**
|
|
31
32
|
* Retrieves currencies with pagination and filtering
|
|
32
33
|
* @param {ListCurrencyArgs} args - Object containing prisma client, pagination, and query options
|
|
33
|
-
* @returns {Promise<[number, Array<
|
|
34
|
+
* @returns {Promise<[number, Array<CurrencyBE>]>} Tuple containing total count and array of currencies
|
|
34
35
|
*/
|
|
35
|
-
export declare const listCurrency: ({ currentPage, includePreference, orderByColumn, orderByDirection, pageLimit, prisma, searchQuery, }: ListCurrencyArgs) => Promise<[number, Array<
|
|
36
|
+
export declare const listCurrency: ({ currentPage, includePreference, orderByColumn, orderByDirection, pageLimit, prisma, searchQuery, }: ListCurrencyArgs) => Promise<[number, Array<CurrencyBE>]>;
|
|
36
37
|
/**
|
|
37
38
|
* Retrieves a single currency by ID
|
|
38
39
|
* @param {UnitCurrencyByIdArgs} args - Object containing prisma client and query where conditions
|
|
39
|
-
* @returns {Promise<
|
|
40
|
+
* @returns {Promise<CurrencyBE | null>} Currency if found, null otherwise
|
|
40
41
|
*/
|
|
41
|
-
export declare const unitCurrencyById: ({ id, includePreference, prisma, }: UnitCurrencyByIdArgs) => Promise<
|
|
42
|
+
export declare const unitCurrencyById: ({ id, includePreference, prisma, }: UnitCurrencyByIdArgs) => Promise<CurrencyBE | null>;
|
|
42
43
|
/**
|
|
43
44
|
* Creates or updates a currency
|
|
44
45
|
* @param {UpdateCurrencyArgs} args - Object containing prisma client and currency data
|
|
45
|
-
* @returns {Promise<
|
|
46
|
+
* @returns {Promise<CurrencyBE>} Created or updated currency
|
|
46
47
|
*/
|
|
47
|
-
export declare const updateCurrency: ({ code, enabled, id, isDefault, label, preferenceId, prisma, }: UpdateCurrencyArgs) => Promise<
|
|
48
|
+
export declare const updateCurrency: ({ code, enabled, id, isDefault, label, preferenceId, prisma, }: UpdateCurrencyArgs) => Promise<CurrencyBE>;
|
|
48
49
|
/**
|
|
49
50
|
* Deletes a currency by ID
|
|
50
51
|
* @param {DeleteCurrencyArgs} args - Object containing prisma client and query where conditions
|
|
51
|
-
* @returns {Promise<
|
|
52
|
+
* @returns {Promise<CurrencyBE>} Deleted currency
|
|
52
53
|
* @throws {Error} If currency ID is not provided or currency not found
|
|
53
54
|
*/
|
|
54
|
-
export declare const deleteCurrency: ({ id, prisma, }: DeleteCurrencyArgs) => Promise<
|
|
55
|
-
export {};
|
|
55
|
+
export declare const deleteCurrency: ({ id, prisma, }: DeleteCurrencyArgs) => Promise<CurrencyBE>;
|
|
@@ -10,6 +10,20 @@ 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
|
+
};
|
|
13
27
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
28
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
29
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -57,11 +71,12 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
57
71
|
};
|
|
58
72
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
73
|
exports.deleteCurrency = exports.updateCurrency = exports.unitCurrencyById = exports.listCurrency = void 0;
|
|
74
|
+
__exportStar(require("./cache"), exports);
|
|
60
75
|
var multi_part_search_1 = require("../../../general/multi-part-search");
|
|
61
76
|
/**
|
|
62
77
|
* Retrieves currencies with pagination and filtering
|
|
63
78
|
* @param {ListCurrencyArgs} args - Object containing prisma client, pagination, and query options
|
|
64
|
-
* @returns {Promise<[number, Array<
|
|
79
|
+
* @returns {Promise<[number, Array<CurrencyBE>]>} Tuple containing total count and array of currencies
|
|
65
80
|
*/
|
|
66
81
|
var listCurrency = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
67
82
|
var orderBy, include, idSearchQuery, labelSearchQuery, where, _c, count, items;
|
|
@@ -115,7 +130,7 @@ exports.listCurrency = listCurrency;
|
|
|
115
130
|
/**
|
|
116
131
|
* Retrieves a single currency by ID
|
|
117
132
|
* @param {UnitCurrencyByIdArgs} args - Object containing prisma client and query where conditions
|
|
118
|
-
* @returns {Promise<
|
|
133
|
+
* @returns {Promise<CurrencyBE | null>} Currency if found, null otherwise
|
|
119
134
|
*/
|
|
120
135
|
var unitCurrencyById = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
121
136
|
var include, where, currency;
|
|
@@ -146,7 +161,7 @@ exports.unitCurrencyById = unitCurrencyById;
|
|
|
146
161
|
/**
|
|
147
162
|
* Creates or updates a currency
|
|
148
163
|
* @param {UpdateCurrencyArgs} args - Object containing prisma client and currency data
|
|
149
|
-
* @returns {Promise<
|
|
164
|
+
* @returns {Promise<CurrencyBE>} Created or updated currency
|
|
150
165
|
*/
|
|
151
166
|
var updateCurrency = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
152
167
|
var currencyData, where, currency;
|
|
@@ -185,7 +200,7 @@ exports.updateCurrency = updateCurrency;
|
|
|
185
200
|
/**
|
|
186
201
|
* Deletes a currency by ID
|
|
187
202
|
* @param {DeleteCurrencyArgs} args - Object containing prisma client and query where conditions
|
|
188
|
-
* @returns {Promise<
|
|
203
|
+
* @returns {Promise<CurrencyBE>} Deleted currency
|
|
189
204
|
* @throws {Error} If currency ID is not provided or currency not found
|
|
190
205
|
*/
|
|
191
206
|
var deleteCurrency = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { CustomerBE } from '../type';
|
|
2
|
+
/**
|
|
3
|
+
* Synchronous utility function to get customers from cache only
|
|
4
|
+
* Returns cached data immediately if available and fresh, otherwise returns empty array
|
|
5
|
+
* Does not trigger any API calls
|
|
6
|
+
*
|
|
7
|
+
* @returns CustomerBE[] - Array of cached customers or empty array wrapper ({count, items})
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const customers = getCachedCustomersSync();
|
|
11
|
+
* if (customers.items.length > 0) {
|
|
12
|
+
* console.log(customers.items[0].firstName);
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
export declare const getCachedCustomersSync: () => {
|
|
16
|
+
count: number;
|
|
17
|
+
items: CustomerBE[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Utility function to get customers from cache or fetch from API
|
|
21
|
+
*
|
|
22
|
+
* This function manages a localStorage cache of customers with the following logic:
|
|
23
|
+
* - If customers exist in cache and are less than 1 day old, return cached version
|
|
24
|
+
* - If customers exist but are older than 1 day, fetch fresh data and update cache
|
|
25
|
+
* - If customers don't exist in cache, fetch from API and cache them
|
|
26
|
+
*
|
|
27
|
+
* @param searchQuery - Optional search query to filter customers
|
|
28
|
+
* @param filters - Optional filters object to apply additional filtering (bypasses cache)
|
|
29
|
+
* @param pageLimit - Number of customers to fetch (default: 100)
|
|
30
|
+
* @returns Promise<{count:number, items: CustomerBE[]}> - Paged customers
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const customers = await getCachedCustomers();
|
|
34
|
+
* console.log(customers.items[0].firstName);
|
|
35
|
+
*
|
|
36
|
+
* // With search
|
|
37
|
+
* const filtered = await getCachedCustomers('John');
|
|
38
|
+
*
|
|
39
|
+
* // With filters
|
|
40
|
+
* const filteredByCountry = await getCachedCustomers(undefined, { country: 'USA' });
|
|
41
|
+
*/
|
|
42
|
+
export declare const getCachedCustomers: (searchQuery?: string, filters?: Record<string, unknown>, pageLimit?: number) => Promise<{
|
|
43
|
+
count: number;
|
|
44
|
+
items: CustomerBE[];
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Utility function to get a specific customer by ID from cache
|
|
48
|
+
* If not found in cache, returns null (does not trigger API call)
|
|
49
|
+
*
|
|
50
|
+
* @param customerId - The ID of the customer to retrieve
|
|
51
|
+
* @returns CustomerBE | null - The customer or null if not found
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const customer = getCachedCustomerById('customer-123');
|
|
55
|
+
* if (customer) {
|
|
56
|
+
* console.log(customer.firstName);
|
|
57
|
+
* }
|
|
58
|
+
*/
|
|
59
|
+
export declare const getCachedCustomerById: (customerId: string) => CustomerBE | null;
|
|
60
|
+
/**
|
|
61
|
+
* Utility function to get a specific customer by phone from cache
|
|
62
|
+
* If not found in cache, returns null (does not trigger API call)
|
|
63
|
+
*
|
|
64
|
+
* @param phone - The phone number of the customer to search for
|
|
65
|
+
* @returns CustomerBE | null - The customer or null if not found
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* const customer = getCachedCustomerByPhone('+1234567890');
|
|
69
|
+
* if (customer) {
|
|
70
|
+
* console.log(customer.firstName);
|
|
71
|
+
* }
|
|
72
|
+
*/
|
|
73
|
+
export declare const getCachedCustomerByPhone: (phone: string) => CustomerBE | null;
|
|
74
|
+
/**
|
|
75
|
+
* Utility function to invalidate (remove) customers from cache
|
|
76
|
+
* Useful when customers have been updated and you want to force a refresh
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* invalidateCustomersCache();
|
|
80
|
+
* const freshCustomers = await getCachedCustomers();
|
|
81
|
+
*/
|
|
82
|
+
export declare const invalidateCustomersCache: () => void;
|
|
83
|
+
/**
|
|
84
|
+
* Utility function to preload customers into cache
|
|
85
|
+
* Useful to call on app initialization or login
|
|
86
|
+
*
|
|
87
|
+
* @returns Promise<{count:number, items: CustomerBE[]}> - Array of preloaded customers
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* // On app initialization
|
|
91
|
+
* await preloadCustomers();
|
|
92
|
+
*/
|
|
93
|
+
export declare const preloadCustomers: () => Promise<{
|
|
94
|
+
count: number;
|
|
95
|
+
items: CustomerBE[];
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Utility function to check if customers cache is stale
|
|
99
|
+
* Returns true if cache is older than 1 day or doesn't exist
|
|
100
|
+
*
|
|
101
|
+
* @returns boolean - True if cache is stale or doesn't exist
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* if (isCustomersCacheStale()) {
|
|
105
|
+
* await getCachedCustomers(); // This will fetch fresh data
|
|
106
|
+
* }
|
|
107
|
+
*/
|
|
108
|
+
export declare const isCustomersCacheStale: () => boolean;
|