typedapi-client-helpers 0.2.1 → 0.3.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/CHANGELOG.md +72 -0
- package/README.md +231 -220
- package/dist/cjs/httpClient.js +258 -0
- package/dist/cjs/httpClient.js.map +1 -0
- package/dist/cjs/index.js +32 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/ApiResult.js +3 -0
- package/dist/cjs/interfaces/ApiResult.js.map +1 -0
- package/dist/cjs/interfaces/Filter.js +3 -0
- package/dist/cjs/interfaces/Filter.js.map +1 -0
- package/dist/cjs/interfaces/SortType.js +3 -0
- package/dist/cjs/interfaces/SortType.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/types/ApiCallOptions.js +3 -0
- package/dist/cjs/types/ApiCallOptions.js.map +1 -0
- package/dist/cjs/types/ApiMethodArguments.js +3 -0
- package/dist/cjs/types/ApiMethodArguments.js.map +1 -0
- package/dist/cjs/types/ApiMethodOptions.js +3 -0
- package/dist/cjs/types/ApiMethodOptions.js.map +1 -0
- package/dist/cjs/types/ApiMethodTypes.js +3 -0
- package/dist/cjs/types/ApiMethodTypes.js.map +1 -0
- package/dist/cjs/types/HttpResponse.js +3 -0
- package/dist/cjs/types/HttpResponse.js.map +1 -0
- package/dist/cjs/types/httpClientTypes.js +3 -0
- package/dist/cjs/types/httpClientTypes.js.map +1 -0
- package/dist/cjs/utils/SortTypeFromSortDirection.js +43 -0
- package/dist/cjs/utils/SortTypeFromSortDirection.js.map +1 -0
- package/dist/cjs/utils/buildQuery.js +96 -0
- package/dist/cjs/utils/buildQuery.js.map +1 -0
- package/dist/cjs/utils/extractArgsCallbacksAndParams.js +51 -0
- package/dist/cjs/utils/extractArgsCallbacksAndParams.js.map +1 -0
- package/dist/cjs/utils/extractArgsToastsAndParams.js +49 -0
- package/dist/cjs/utils/extractArgsToastsAndParams.js.map +1 -0
- package/dist/cjs/utils/handleApiResponse.js +132 -0
- package/dist/cjs/utils/handleApiResponse.js.map +1 -0
- package/dist/cjs/utils/toFormData.js +58 -0
- package/dist/cjs/utils/toFormData.js.map +1 -0
- package/dist/cjs/utils/wireMapping.js +123 -0
- package/dist/cjs/utils/wireMapping.js.map +1 -0
- package/dist/esm/httpClient.js +251 -0
- package/dist/esm/httpClient.js.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces/ApiResult.js +2 -0
- package/dist/esm/interfaces/ApiResult.js.map +1 -0
- package/dist/esm/interfaces/Filter.js +2 -0
- package/dist/esm/interfaces/Filter.js.map +1 -0
- package/dist/esm/interfaces/SortType.js +2 -0
- package/dist/esm/interfaces/SortType.js.map +1 -0
- package/dist/esm/types/ApiCallOptions.js +2 -0
- package/dist/esm/types/ApiCallOptions.js.map +1 -0
- package/dist/esm/types/ApiMethodArguments.js +2 -0
- package/dist/esm/types/ApiMethodArguments.js.map +1 -0
- package/dist/esm/types/ApiMethodOptions.js +2 -0
- package/dist/esm/types/ApiMethodOptions.js.map +1 -0
- package/dist/esm/types/ApiMethodTypes.js +2 -0
- package/dist/esm/types/ApiMethodTypes.js.map +1 -0
- package/dist/esm/types/HttpResponse.js +2 -0
- package/dist/esm/types/HttpResponse.js.map +1 -0
- package/dist/esm/types/httpClientTypes.js +2 -0
- package/dist/esm/types/httpClientTypes.js.map +1 -0
- package/dist/esm/utils/SortTypeFromSortDirection.js +38 -0
- package/dist/esm/utils/SortTypeFromSortDirection.js.map +1 -0
- package/dist/esm/utils/buildQuery.js +93 -0
- package/dist/esm/utils/buildQuery.js.map +1 -0
- package/dist/esm/utils/extractArgsCallbacksAndParams.js +48 -0
- package/dist/esm/utils/extractArgsCallbacksAndParams.js.map +1 -0
- package/dist/esm/utils/extractArgsToastsAndParams.js +46 -0
- package/dist/esm/utils/extractArgsToastsAndParams.js.map +1 -0
- package/dist/esm/utils/handleApiResponse.js +128 -0
- package/dist/esm/utils/handleApiResponse.js.map +1 -0
- package/dist/esm/utils/toFormData.js +55 -0
- package/dist/esm/utils/toFormData.js.map +1 -0
- package/dist/esm/utils/wireMapping.js +119 -0
- package/dist/esm/utils/wireMapping.js.map +1 -0
- package/dist/types/httpClient.d.ts +63 -0
- package/dist/types/httpClient.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces/ApiResult.d.ts +41 -0
- package/dist/types/interfaces/ApiResult.d.ts.map +1 -0
- package/dist/types/interfaces/Filter.d.ts +31 -0
- package/dist/types/interfaces/Filter.d.ts.map +1 -0
- package/dist/types/interfaces/SortType.d.ts +7 -0
- package/dist/types/interfaces/SortType.d.ts.map +1 -0
- package/dist/types/types/ApiCallOptions.d.ts +26 -0
- package/dist/types/types/ApiCallOptions.d.ts.map +1 -0
- package/dist/types/types/ApiMethodArguments.d.ts +6 -0
- package/dist/types/types/ApiMethodArguments.d.ts.map +1 -0
- package/dist/types/types/ApiMethodOptions.d.ts +8 -0
- package/dist/types/types/ApiMethodOptions.d.ts.map +1 -0
- package/dist/types/types/ApiMethodTypes.d.ts +47 -0
- package/dist/types/types/ApiMethodTypes.d.ts.map +1 -0
- package/dist/types/types/HttpResponse.d.ts +2 -0
- package/dist/types/types/HttpResponse.d.ts.map +1 -0
- package/dist/types/types/httpClientTypes.d.ts +2 -0
- package/dist/types/types/httpClientTypes.d.ts.map +1 -0
- package/dist/types/utils/SortTypeFromSortDirection.d.ts +13 -0
- package/dist/types/utils/SortTypeFromSortDirection.d.ts.map +1 -0
- package/dist/types/utils/buildQuery.d.ts +16 -0
- package/dist/types/utils/buildQuery.d.ts.map +1 -0
- package/dist/types/utils/extractArgsCallbacksAndParams.d.ts +22 -0
- package/dist/types/utils/extractArgsCallbacksAndParams.d.ts.map +1 -0
- package/dist/types/utils/extractArgsToastsAndParams.d.ts +20 -0
- package/dist/types/utils/extractArgsToastsAndParams.d.ts.map +1 -0
- package/dist/types/utils/handleApiResponse.d.ts +12 -0
- package/dist/types/utils/handleApiResponse.d.ts.map +1 -0
- package/dist/types/utils/toFormData.d.ts +10 -0
- package/dist/types/utils/toFormData.d.ts.map +1 -0
- package/dist/types/utils/wireMapping.d.ts +30 -0
- package/dist/types/utils/wireMapping.d.ts.map +1 -0
- package/package.json +90 -84
- package/scripts/build.mjs +74 -0
- package/scripts/generate-api-minimal.mjs +568 -476
- package/scripts/openapi-generator/controller-template.mjs +1 -1
- package/scripts/openapi-generator/index.mjs +348 -113
- package/scripts/openapi-generator/method-template.mjs +405 -440
- package/scripts/openapi-generator/names.mjs +37 -86
- package/scripts/openapi-generator/openapi-utils.mjs +411 -147
- package/scripts/openapi-generator/schema.mjs +737 -455
- package/dist/index.cjs +0 -536
- package/dist/index.d.cts +0 -285
- package/dist/index.d.ts +0 -285
- package/dist/index.js +0 -495
package/dist/index.js
DELETED
|
@@ -1,495 +0,0 @@
|
|
|
1
|
-
// src/httpClient.ts
|
|
2
|
-
var ContentType = {
|
|
3
|
-
Json: "application/json",
|
|
4
|
-
JsonApi: "application/vnd.api+json",
|
|
5
|
-
FormData: "multipart/form-data",
|
|
6
|
-
UrlEncoded: "application/x-www-form-urlencoded",
|
|
7
|
-
Text: "text/plain"
|
|
8
|
-
};
|
|
9
|
-
function createApiClient(apiConfig = {}) {
|
|
10
|
-
const state = {
|
|
11
|
-
baseUrl: apiConfig.baseUrl ?? "",
|
|
12
|
-
securityData: null,
|
|
13
|
-
securityWorker: apiConfig.securityWorker,
|
|
14
|
-
customFetch: apiConfig.customFetch ?? ((...fetchParams) => fetch(...fetchParams)),
|
|
15
|
-
baseApiParams: {
|
|
16
|
-
credentials: "same-origin",
|
|
17
|
-
headers: {},
|
|
18
|
-
redirect: "follow",
|
|
19
|
-
referrerPolicy: "no-referrer",
|
|
20
|
-
...apiConfig.baseApiParams ?? {}
|
|
21
|
-
},
|
|
22
|
-
abortControllers: /* @__PURE__ */ new Map()
|
|
23
|
-
};
|
|
24
|
-
function configureApiClient2(nextConfig = {}) {
|
|
25
|
-
if (typeof nextConfig.baseUrl === "string") {
|
|
26
|
-
state.baseUrl = nextConfig.baseUrl;
|
|
27
|
-
}
|
|
28
|
-
if (nextConfig.securityWorker) {
|
|
29
|
-
state.securityWorker = nextConfig.securityWorker;
|
|
30
|
-
}
|
|
31
|
-
if (nextConfig.customFetch) {
|
|
32
|
-
state.customFetch = nextConfig.customFetch;
|
|
33
|
-
}
|
|
34
|
-
if (nextConfig.baseApiParams) {
|
|
35
|
-
state.baseApiParams = mergeRequestParams(
|
|
36
|
-
state.baseApiParams,
|
|
37
|
-
nextConfig.baseApiParams
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function setSecurityData2(data) {
|
|
42
|
-
state.securityData = data;
|
|
43
|
-
}
|
|
44
|
-
function encodeQueryParam(key, value) {
|
|
45
|
-
const encodedKey = encodeURIComponent(key);
|
|
46
|
-
const normalizedValue = value instanceof Date ? value.toISOString() : value;
|
|
47
|
-
return `${encodedKey}=${encodeURIComponent(String(normalizedValue))}`;
|
|
48
|
-
}
|
|
49
|
-
function addArrayQueryParam(key, value) {
|
|
50
|
-
return value.map((item) => encodeQueryParam(key, item)).join("&");
|
|
51
|
-
}
|
|
52
|
-
function toQueryString(rawQuery) {
|
|
53
|
-
if (!rawQuery) {
|
|
54
|
-
return "";
|
|
55
|
-
}
|
|
56
|
-
return Object.entries(rawQuery).filter(([, value]) => value !== void 0 && value !== null).map(
|
|
57
|
-
([key, value]) => Array.isArray(value) ? addArrayQueryParam(key, value) : encodeQueryParam(key, value)
|
|
58
|
-
).join("&");
|
|
59
|
-
}
|
|
60
|
-
function contentFormatter(type, input) {
|
|
61
|
-
if (input === void 0 || input === null) {
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
if (input instanceof FormData || input instanceof Blob) {
|
|
65
|
-
return input;
|
|
66
|
-
}
|
|
67
|
-
switch (type ?? ContentType.Json) {
|
|
68
|
-
case ContentType.Json:
|
|
69
|
-
case ContentType.JsonApi:
|
|
70
|
-
return JSON.stringify(input);
|
|
71
|
-
case ContentType.Text:
|
|
72
|
-
return typeof input === "string" ? input : JSON.stringify(input);
|
|
73
|
-
case ContentType.FormData:
|
|
74
|
-
return toFormData2(input);
|
|
75
|
-
case ContentType.UrlEncoded:
|
|
76
|
-
return toQueryString(input);
|
|
77
|
-
default:
|
|
78
|
-
return input;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function toFormData2(input) {
|
|
82
|
-
if (input instanceof FormData) {
|
|
83
|
-
return input;
|
|
84
|
-
}
|
|
85
|
-
const formData = new FormData();
|
|
86
|
-
for (const [key, value] of Object.entries(
|
|
87
|
-
input ?? {}
|
|
88
|
-
)) {
|
|
89
|
-
appendFormDataValue2(formData, key, value);
|
|
90
|
-
}
|
|
91
|
-
return formData;
|
|
92
|
-
}
|
|
93
|
-
function appendFormDataValue2(formData, key, value) {
|
|
94
|
-
if (value === void 0 || value === null) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (Array.isArray(value)) {
|
|
98
|
-
for (const item of value) {
|
|
99
|
-
appendFormDataValue2(formData, key, item);
|
|
100
|
-
}
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (value instanceof File) {
|
|
104
|
-
formData.append(key, value, value.name);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if (value instanceof Blob) {
|
|
108
|
-
formData.append(key, value);
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
if (typeof value === "object") {
|
|
112
|
-
formData.append(key, JSON.stringify(value));
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
formData.append(key, String(value));
|
|
116
|
-
}
|
|
117
|
-
function mergeRequestParams(params1, params2) {
|
|
118
|
-
return {
|
|
119
|
-
...params1,
|
|
120
|
-
...params2 ?? {},
|
|
121
|
-
headers: {
|
|
122
|
-
...params1.headers ?? {},
|
|
123
|
-
...params2?.headers ?? {}
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
function createAbortSignal(cancelToken) {
|
|
128
|
-
const existingAbortController = state.abortControllers.get(cancelToken);
|
|
129
|
-
if (existingAbortController) {
|
|
130
|
-
return existingAbortController.signal;
|
|
131
|
-
}
|
|
132
|
-
const abortController = new AbortController();
|
|
133
|
-
state.abortControllers.set(cancelToken, abortController);
|
|
134
|
-
return abortController.signal;
|
|
135
|
-
}
|
|
136
|
-
function abortRequest2(cancelToken) {
|
|
137
|
-
const abortController = state.abortControllers.get(cancelToken);
|
|
138
|
-
if (!abortController) {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
abortController.abort();
|
|
142
|
-
state.abortControllers.delete(cancelToken);
|
|
143
|
-
}
|
|
144
|
-
async function request2({
|
|
145
|
-
body,
|
|
146
|
-
secure,
|
|
147
|
-
path,
|
|
148
|
-
type,
|
|
149
|
-
query,
|
|
150
|
-
baseUrl,
|
|
151
|
-
cancelToken,
|
|
152
|
-
...params
|
|
153
|
-
}) {
|
|
154
|
-
const secureParams = (typeof secure === "boolean" ? secure : state.baseApiParams.secure) && state.securityWorker && await state.securityWorker(state.securityData) || {};
|
|
155
|
-
const requestParams = mergeRequestParams(
|
|
156
|
-
mergeRequestParams(state.baseApiParams, params),
|
|
157
|
-
secureParams
|
|
158
|
-
);
|
|
159
|
-
const queryString = query ? toQueryString(query) : "";
|
|
160
|
-
const url = `${baseUrl ?? state.baseUrl}${path}${queryString ? `?${queryString}` : ""}`;
|
|
161
|
-
const requestInit = {
|
|
162
|
-
...requestParams,
|
|
163
|
-
headers: {
|
|
164
|
-
...requestParams.headers ?? {},
|
|
165
|
-
...type && type !== ContentType.FormData ? { "Content-Type": type } : {}
|
|
166
|
-
},
|
|
167
|
-
signal: cancelToken ? createAbortSignal(cancelToken) : requestParams.signal
|
|
168
|
-
};
|
|
169
|
-
if (body !== void 0 && body !== null) {
|
|
170
|
-
requestInit.body = contentFormatter(type, body);
|
|
171
|
-
}
|
|
172
|
-
const response = await state.customFetch(url, requestInit);
|
|
173
|
-
const typedResponse = response;
|
|
174
|
-
typedResponse.data = null;
|
|
175
|
-
typedResponse.error = null;
|
|
176
|
-
if (cancelToken) {
|
|
177
|
-
state.abortControllers.delete(cancelToken);
|
|
178
|
-
}
|
|
179
|
-
if (!response.ok) {
|
|
180
|
-
throw typedResponse;
|
|
181
|
-
}
|
|
182
|
-
return typedResponse;
|
|
183
|
-
}
|
|
184
|
-
return {
|
|
185
|
-
configureApiClient: configureApiClient2,
|
|
186
|
-
setSecurityData: setSecurityData2,
|
|
187
|
-
abortRequest: abortRequest2,
|
|
188
|
-
request: request2,
|
|
189
|
-
toQueryString
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
var defaultApiClient = createApiClient();
|
|
193
|
-
var configureApiClient = defaultApiClient.configureApiClient;
|
|
194
|
-
var setSecurityData = defaultApiClient.setSecurityData;
|
|
195
|
-
var abortRequest = defaultApiClient.abortRequest;
|
|
196
|
-
var request = defaultApiClient.request;
|
|
197
|
-
|
|
198
|
-
// src/utils/buildQuery.ts
|
|
199
|
-
function buildQuery(filters, page = 1, pageSize = 100, sortBy = null, sortDirection) {
|
|
200
|
-
const query = filters.reduce((queryResult, filter) => {
|
|
201
|
-
const { filterName, filterNameMax, type, value, maxValue, isAList } = filter;
|
|
202
|
-
if (isEmptyValue(value) && isEmptyValue(maxValue)) {
|
|
203
|
-
return queryResult;
|
|
204
|
-
}
|
|
205
|
-
if (isAList && Array.isArray(value)) {
|
|
206
|
-
const convertedValues = value.map(
|
|
207
|
-
(item) => convertType(type, isOptionValue(item) ? item.value : item)
|
|
208
|
-
).filter((item) => item !== null);
|
|
209
|
-
if (convertedValues.length > 0) {
|
|
210
|
-
queryResult[filterName] = convertedValues;
|
|
211
|
-
}
|
|
212
|
-
return queryResult;
|
|
213
|
-
}
|
|
214
|
-
const rawValue = isOptionValue(value) ? value.value : value;
|
|
215
|
-
const convertedValue = convertType(type, rawValue);
|
|
216
|
-
if (convertedValue !== null) {
|
|
217
|
-
queryResult[filterName] = convertedValue;
|
|
218
|
-
}
|
|
219
|
-
if (filterNameMax && !isEmptyValue(maxValue)) {
|
|
220
|
-
const convertedMaxValue = convertType(type, maxValue);
|
|
221
|
-
if (convertedMaxValue !== null) {
|
|
222
|
-
queryResult[filterNameMax] = convertedMaxValue;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
return queryResult;
|
|
226
|
-
}, {});
|
|
227
|
-
query.pageNumber = page;
|
|
228
|
-
if (pageSize > 0) {
|
|
229
|
-
query.pageSize = pageSize;
|
|
230
|
-
}
|
|
231
|
-
if (sortBy) {
|
|
232
|
-
query.sortBy = sortBy;
|
|
233
|
-
}
|
|
234
|
-
if (sortDirection !== void 0 && sortDirection !== "Default") {
|
|
235
|
-
query.sortDirection = sortDirection;
|
|
236
|
-
}
|
|
237
|
-
return query;
|
|
238
|
-
}
|
|
239
|
-
function isEmptyValue(value) {
|
|
240
|
-
return value === null || value === void 0 || value === "" || value === "null" || value === "undefined";
|
|
241
|
-
}
|
|
242
|
-
function isOptionValue(value) {
|
|
243
|
-
return typeof value === "object" && value !== null && "value" in value;
|
|
244
|
-
}
|
|
245
|
-
function convertType(type, value) {
|
|
246
|
-
if (isEmptyValue(value)) {
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
switch (type) {
|
|
250
|
-
case "date": {
|
|
251
|
-
if (value instanceof Date) {
|
|
252
|
-
return Number.isNaN(value.getTime()) ? null : value.toISOString();
|
|
253
|
-
}
|
|
254
|
-
return value;
|
|
255
|
-
}
|
|
256
|
-
case "number": {
|
|
257
|
-
const numberValue = Number(value);
|
|
258
|
-
return Number.isNaN(numberValue) ? null : numberValue;
|
|
259
|
-
}
|
|
260
|
-
case "boolean":
|
|
261
|
-
case "boolean-button": {
|
|
262
|
-
if (typeof value === "boolean") {
|
|
263
|
-
return value;
|
|
264
|
-
}
|
|
265
|
-
if (typeof value === "string") {
|
|
266
|
-
const normalized = value.trim().toLowerCase();
|
|
267
|
-
if (["true", "1", "yes", "on"].includes(normalized)) {
|
|
268
|
-
return true;
|
|
269
|
-
}
|
|
270
|
-
if (["false", "0", "no", "off"].includes(normalized)) {
|
|
271
|
-
return false;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
return Boolean(value);
|
|
275
|
-
}
|
|
276
|
-
default:
|
|
277
|
-
return value;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// src/utils/extractArgsToastsAndParams.ts
|
|
282
|
-
function isCallback(value) {
|
|
283
|
-
return typeof value === "function";
|
|
284
|
-
}
|
|
285
|
-
function isRequestParams(value) {
|
|
286
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
287
|
-
}
|
|
288
|
-
function extractArgsToastsAndParams(argsWithCallbacks) {
|
|
289
|
-
const values = [...argsWithCallbacks];
|
|
290
|
-
let onSuccess;
|
|
291
|
-
let onError;
|
|
292
|
-
let params;
|
|
293
|
-
let lastArgument = values[values.length - 1];
|
|
294
|
-
if (isRequestParams(lastArgument)) {
|
|
295
|
-
params = lastArgument;
|
|
296
|
-
values.pop();
|
|
297
|
-
}
|
|
298
|
-
lastArgument = values[values.length - 1];
|
|
299
|
-
if (isCallback(lastArgument)) {
|
|
300
|
-
onError = lastArgument;
|
|
301
|
-
values.pop();
|
|
302
|
-
}
|
|
303
|
-
lastArgument = values[values.length - 1];
|
|
304
|
-
if (isCallback(lastArgument)) {
|
|
305
|
-
onSuccess = lastArgument;
|
|
306
|
-
values.pop();
|
|
307
|
-
}
|
|
308
|
-
return {
|
|
309
|
-
args: values,
|
|
310
|
-
onSuccess,
|
|
311
|
-
onError,
|
|
312
|
-
params
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
// src/utils/extractArgsCallbacksAndParams.ts
|
|
317
|
-
function isCallback2(value) {
|
|
318
|
-
return typeof value === "function";
|
|
319
|
-
}
|
|
320
|
-
function isRequestParams2(value) {
|
|
321
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
322
|
-
}
|
|
323
|
-
function extractArgsCallbacksAndParams(argsWithCallbacks) {
|
|
324
|
-
const values = [...argsWithCallbacks];
|
|
325
|
-
let onSuccess;
|
|
326
|
-
let onError;
|
|
327
|
-
let params;
|
|
328
|
-
let lastArgument = values[values.length - 1];
|
|
329
|
-
if (isRequestParams2(lastArgument)) {
|
|
330
|
-
params = lastArgument;
|
|
331
|
-
values.pop();
|
|
332
|
-
}
|
|
333
|
-
lastArgument = values[values.length - 1];
|
|
334
|
-
if (isCallback2(lastArgument)) {
|
|
335
|
-
onError = lastArgument;
|
|
336
|
-
values.pop();
|
|
337
|
-
}
|
|
338
|
-
lastArgument = values[values.length - 1];
|
|
339
|
-
if (isCallback2(lastArgument)) {
|
|
340
|
-
onSuccess = lastArgument;
|
|
341
|
-
values.pop();
|
|
342
|
-
}
|
|
343
|
-
return {
|
|
344
|
-
args: values,
|
|
345
|
-
onSuccess,
|
|
346
|
-
onError,
|
|
347
|
-
params
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
// src/utils/handleApiResponse.ts
|
|
352
|
-
async function readResponseBody(response) {
|
|
353
|
-
if (response.status === 204 || response.status === 205) {
|
|
354
|
-
return void 0;
|
|
355
|
-
}
|
|
356
|
-
const contentType = response.headers.get("content-type") ?? "";
|
|
357
|
-
if (contentType.includes("application/octet-stream")) {
|
|
358
|
-
return response.blob();
|
|
359
|
-
}
|
|
360
|
-
const text = await response.text();
|
|
361
|
-
if (!text) {
|
|
362
|
-
return void 0;
|
|
363
|
-
}
|
|
364
|
-
if (contentType.includes("json") || contentType.includes("+json")) {
|
|
365
|
-
try {
|
|
366
|
-
return JSON.parse(text);
|
|
367
|
-
} catch {
|
|
368
|
-
return text;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
return text;
|
|
372
|
-
}
|
|
373
|
-
function isResponseLike(value) {
|
|
374
|
-
return typeof value === "object" && value !== null && "status" in value && "ok" in value && "headers" in value && typeof value.text === "function";
|
|
375
|
-
}
|
|
376
|
-
async function handleApiResponse(call, options) {
|
|
377
|
-
let response;
|
|
378
|
-
try {
|
|
379
|
-
response = await call();
|
|
380
|
-
const data = await readResponseBody(response.clone());
|
|
381
|
-
const result = {
|
|
382
|
-
ok: true,
|
|
383
|
-
status: response.status,
|
|
384
|
-
response: data
|
|
385
|
-
};
|
|
386
|
-
await options?.onSuccess?.(result);
|
|
387
|
-
return result;
|
|
388
|
-
} catch (error) {
|
|
389
|
-
if (isResponseLike(error)) {
|
|
390
|
-
const errorData = await readResponseBody(error.clone());
|
|
391
|
-
const result2 = {
|
|
392
|
-
ok: false,
|
|
393
|
-
status: error.status,
|
|
394
|
-
response: void 0,
|
|
395
|
-
error: errorData
|
|
396
|
-
};
|
|
397
|
-
await options?.onError?.(result2);
|
|
398
|
-
return result2;
|
|
399
|
-
}
|
|
400
|
-
const result = {
|
|
401
|
-
ok: false,
|
|
402
|
-
status: response?.status ?? 0,
|
|
403
|
-
response: void 0,
|
|
404
|
-
error
|
|
405
|
-
};
|
|
406
|
-
await options?.onError?.(result);
|
|
407
|
-
return result;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
// src/utils/SortTypeFromSortDirection.ts
|
|
412
|
-
var sortTypes = [
|
|
413
|
-
"Default",
|
|
414
|
-
"Neutral",
|
|
415
|
-
"Ascending",
|
|
416
|
-
"Descending"
|
|
417
|
-
];
|
|
418
|
-
function getSortTypeFromSortDirection(sortDirection) {
|
|
419
|
-
switch (sortDirection) {
|
|
420
|
-
case "Asc":
|
|
421
|
-
case "Ascending":
|
|
422
|
-
return "Ascending";
|
|
423
|
-
case "Desc":
|
|
424
|
-
case "Descending":
|
|
425
|
-
return "Descending";
|
|
426
|
-
case "Neutral":
|
|
427
|
-
return "Neutral";
|
|
428
|
-
case "Default":
|
|
429
|
-
default:
|
|
430
|
-
return "Default";
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
function getSortDirectionFromSortType(sortType) {
|
|
434
|
-
switch (sortType) {
|
|
435
|
-
case "Ascending":
|
|
436
|
-
return "Asc";
|
|
437
|
-
case "Descending":
|
|
438
|
-
return "Desc";
|
|
439
|
-
case "Neutral":
|
|
440
|
-
return "Neutral";
|
|
441
|
-
case "Default":
|
|
442
|
-
default:
|
|
443
|
-
return "Default";
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
// src/utils/toFormData.ts
|
|
448
|
-
function toFormData(payload) {
|
|
449
|
-
const formData = new FormData();
|
|
450
|
-
for (const [key, value] of Object.entries(payload)) {
|
|
451
|
-
appendFormDataValue(formData, key, value);
|
|
452
|
-
}
|
|
453
|
-
return formData;
|
|
454
|
-
}
|
|
455
|
-
function appendFormDataValue(formData, key, value) {
|
|
456
|
-
if (value === null || value === void 0) {
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
if (Array.isArray(value)) {
|
|
460
|
-
for (const item of value) {
|
|
461
|
-
appendFormDataValue(formData, key, item);
|
|
462
|
-
}
|
|
463
|
-
return;
|
|
464
|
-
}
|
|
465
|
-
if (value instanceof File) {
|
|
466
|
-
formData.append(key, value, value.name);
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
if (value instanceof Blob) {
|
|
470
|
-
formData.append(key, value);
|
|
471
|
-
return;
|
|
472
|
-
}
|
|
473
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
474
|
-
formData.append(key, String(value));
|
|
475
|
-
return;
|
|
476
|
-
}
|
|
477
|
-
formData.append(key, JSON.stringify(value));
|
|
478
|
-
}
|
|
479
|
-
export {
|
|
480
|
-
ContentType,
|
|
481
|
-
abortRequest,
|
|
482
|
-
buildQuery,
|
|
483
|
-
configureApiClient,
|
|
484
|
-
createApiClient,
|
|
485
|
-
defaultApiClient,
|
|
486
|
-
extractArgsCallbacksAndParams,
|
|
487
|
-
extractArgsToastsAndParams,
|
|
488
|
-
getSortDirectionFromSortType,
|
|
489
|
-
getSortTypeFromSortDirection,
|
|
490
|
-
handleApiResponse,
|
|
491
|
-
request,
|
|
492
|
-
setSecurityData,
|
|
493
|
-
sortTypes,
|
|
494
|
-
toFormData
|
|
495
|
-
};
|