auto-code-generator-client-ts 1.0.2 → 1.2.0
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/dist/GenericApiBaseClient.d.ts +10 -0
- package/dist/GenericApiBaseClient.d.ts.map +1 -0
- package/dist/GenericApiBaseClient.js +89 -0
- package/dist/GenericApiBaseClient.js.map +1 -0
- package/dist/GenericApiClient.d.ts +5 -8
- package/dist/GenericApiClient.d.ts.map +1 -1
- package/dist/GenericApiClient.js +4 -60
- package/dist/GenericApiClient.js.map +1 -1
- package/dist/GenericApiFileClient.d.ts +10 -0
- package/dist/GenericApiFileClient.d.ts.map +1 -0
- package/dist/GenericApiFileClient.js +31 -0
- package/dist/GenericApiFileClient.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types/types.d.ts +7 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utility/ResponseHandler.d.ts.map +1 -1
- package/dist/utility/ResponseHandler.js +9 -2
- package/dist/utility/ResponseHandler.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
import { GenericApiClientInput } from './types/types';
|
|
3
|
+
export declare class GenericApiBaseClient {
|
|
4
|
+
protected client: AxiosInstance;
|
|
5
|
+
constructor(input: GenericApiClientInput);
|
|
6
|
+
protected createClient(input: GenericApiClientInput): AxiosInstance;
|
|
7
|
+
setBearerToken(newBearer: string): void;
|
|
8
|
+
protected safeRequest<T>(config: AxiosRequestConfig): Promise<AxiosResponse<T>>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=GenericApiBaseClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericApiBaseClient.d.ts","sourceRoot":"","sources":["../src/GenericApiBaseClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAA4B,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAGtI,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAMtD,qBAAa,oBAAoB;IAC7B,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEpB,KAAK,EAAE,qBAAqB;IAIxC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa;IAmB5D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;cAI9B,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAyDxF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import axios, { AxiosHeaders } from 'axios';
|
|
2
|
+
import { toCamelCase } from './utility/ToCamelCase';
|
|
3
|
+
import qs from 'qs';
|
|
4
|
+
function normalizeHeaders(headers) {
|
|
5
|
+
return new AxiosHeaders(headers || {});
|
|
6
|
+
}
|
|
7
|
+
export class GenericApiBaseClient {
|
|
8
|
+
constructor(input) {
|
|
9
|
+
this.client = this.createClient(input);
|
|
10
|
+
}
|
|
11
|
+
createClient(input) {
|
|
12
|
+
const headers = {};
|
|
13
|
+
if (input.gatewaySecret) {
|
|
14
|
+
headers['X-Gateway-Secret'] = input.gatewaySecret;
|
|
15
|
+
}
|
|
16
|
+
if (input.bearerToken) {
|
|
17
|
+
headers['Authorization'] = `Bearer ${input.bearerToken}`;
|
|
18
|
+
}
|
|
19
|
+
return axios.create({
|
|
20
|
+
baseURL: `${input.baseUrl}/${input.controllerPath}`,
|
|
21
|
+
timeout: 30000,
|
|
22
|
+
httpsAgent: input.httpsAgent,
|
|
23
|
+
headers,
|
|
24
|
+
paramsSerializer: {
|
|
25
|
+
serialize: params => qs.stringify(params, { arrayFormat: 'repeat' })
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
setBearerToken(newBearer) {
|
|
30
|
+
this.client.defaults.headers['Authorization'] = `Bearer ${newBearer}`;
|
|
31
|
+
}
|
|
32
|
+
async safeRequest(config) {
|
|
33
|
+
if (config.data) {
|
|
34
|
+
config.data = toCamelCase(config.data);
|
|
35
|
+
}
|
|
36
|
+
if (config.baseURL)
|
|
37
|
+
this.client.defaults.baseURL = config.baseURL;
|
|
38
|
+
// LOG DETTAGLIATO DELLA RICHIESTA
|
|
39
|
+
console.log('[API REQUEST]', {
|
|
40
|
+
method: config.method,
|
|
41
|
+
url: (this.client.defaults.baseURL || '') + (config.url || ''),
|
|
42
|
+
headers: { ...this.client.defaults.headers, ...config.headers },
|
|
43
|
+
data: config.data,
|
|
44
|
+
params: config.params
|
|
45
|
+
});
|
|
46
|
+
try {
|
|
47
|
+
const response = await this.client.request(config);
|
|
48
|
+
// LOG DETTAGLIATO DELLA RISPOSTA
|
|
49
|
+
console.log('[API RESPONSE]', {
|
|
50
|
+
status: response.status,
|
|
51
|
+
statusText: response.statusText,
|
|
52
|
+
url: response.config?.url,
|
|
53
|
+
data: response.data,
|
|
54
|
+
headers: response.headers
|
|
55
|
+
});
|
|
56
|
+
return response;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
const axiosError = error;
|
|
60
|
+
console.warn(`Request failed: ${config.method?.toUpperCase()} ${config.url}`, {
|
|
61
|
+
status: axiosError.response?.status,
|
|
62
|
+
statusText: axiosError.response?.statusText,
|
|
63
|
+
data: axiosError.response?.data,
|
|
64
|
+
message: axiosError.message
|
|
65
|
+
});
|
|
66
|
+
const fallbackConfig = {
|
|
67
|
+
...config,
|
|
68
|
+
headers: normalizeHeaders(config.headers),
|
|
69
|
+
method: config.method || 'GET',
|
|
70
|
+
url: config.url || '',
|
|
71
|
+
transformRequest: [],
|
|
72
|
+
transformResponse: [],
|
|
73
|
+
timeout: config.timeout ?? 0,
|
|
74
|
+
adapter: config.adapter,
|
|
75
|
+
transitional: config.transitional ?? {},
|
|
76
|
+
data: config.data,
|
|
77
|
+
params: config.params
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
data: (axiosError.response?.data || null),
|
|
81
|
+
status: axiosError.response?.status ?? 0,
|
|
82
|
+
statusText: axiosError.response?.statusText || axiosError.message || 'Unknown error',
|
|
83
|
+
headers: axiosError.response?.headers ?? {},
|
|
84
|
+
config: fallbackConfig,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=GenericApiBaseClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericApiBaseClient.js","sourceRoot":"","sources":["../src/GenericApiBaseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PaginationDTO, IListQDTO } from './types/types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
constructor(
|
|
6
|
-
private createClient;
|
|
7
|
-
setBearerToken(newBearer: string): void;
|
|
8
|
-
protected safeRequest<T>(config: AxiosRequestConfig): Promise<AxiosResponse<T>>;
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
import { PaginationDTO, IListQDTO, GenericApiClientInput } from './types/types';
|
|
3
|
+
import { GenericApiBaseClient } from './GenericApiBaseClient';
|
|
4
|
+
export declare class GenericApiClient<Type, CursorType, Preview, Search = any, Write = any, Update = any> extends GenericApiBaseClient {
|
|
5
|
+
constructor(input: GenericApiClientInput);
|
|
9
6
|
insert(entity: Write): Promise<AxiosResponse<Type>>;
|
|
10
7
|
update(preview: Update): Promise<AxiosResponse<Type>>;
|
|
11
8
|
get(id: CursorType): Promise<AxiosResponse<Type>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericApiClient.d.ts","sourceRoot":"","sources":["../src/GenericApiClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GenericApiClient.d.ts","sourceRoot":"","sources":["../src/GenericApiClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,aAAa,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAY,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAE,SAAQ,oBAAoB;gBAC9G,KAAK,EAAE,qBAAqB;IAMlC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAInD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAIrD,GAAG,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAIjD,MAAM,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAMpD,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAQjE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAQlE,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAQ9D,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IASjE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAQlG,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAQ1G,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IASxF,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;CAQpH"}
|
package/dist/GenericApiClient.js
CHANGED
|
@@ -1,64 +1,8 @@
|
|
|
1
|
-
import axios, { AxiosHeaders } from 'axios';
|
|
2
|
-
import { toCamelCase } from './utility/ToCamelCase';
|
|
3
1
|
import { extractFirstItem } from './utility/ResponseHandler';
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export class GenericApiClient {
|
|
9
|
-
constructor(baseUrl, controllerPath, gatewaySecret, bearerToken, httpsAgent) {
|
|
10
|
-
this.client = this.createClient(baseUrl, controllerPath, gatewaySecret, bearerToken, httpsAgent);
|
|
11
|
-
}
|
|
12
|
-
createClient(baseUrl, controllerPath, gatewaySecret, bearerToken, httpsAgent) {
|
|
13
|
-
return axios.create({
|
|
14
|
-
baseURL: `${baseUrl}/${controllerPath}`,
|
|
15
|
-
timeout: 5000,
|
|
16
|
-
httpsAgent,
|
|
17
|
-
headers: {
|
|
18
|
-
'X-Gateway-Secret': gatewaySecret,
|
|
19
|
-
Authorization: `Bearer ${bearerToken}`
|
|
20
|
-
},
|
|
21
|
-
paramsSerializer: {
|
|
22
|
-
// "repeat" genera ?ids=a&ids=b
|
|
23
|
-
serialize: params => qs.stringify(params, { arrayFormat: 'repeat' })
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
setBearerToken(newBearer) {
|
|
28
|
-
this.client.defaults.headers['Authorization'] = `Bearer ${newBearer}`;
|
|
29
|
-
}
|
|
30
|
-
async safeRequest(config) {
|
|
31
|
-
if (config.data) {
|
|
32
|
-
config.data = toCamelCase(config.data);
|
|
33
|
-
}
|
|
34
|
-
if (config.baseURL)
|
|
35
|
-
this.client.defaults.baseURL = config.baseURL;
|
|
36
|
-
try {
|
|
37
|
-
return await this.client.request(config);
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
const axiosError = error;
|
|
41
|
-
const fallbackConfig = {
|
|
42
|
-
...config,
|
|
43
|
-
headers: normalizeHeaders(config.headers),
|
|
44
|
-
method: config.method || 'GET',
|
|
45
|
-
url: config.url || '',
|
|
46
|
-
transformRequest: [],
|
|
47
|
-
transformResponse: [],
|
|
48
|
-
timeout: config.timeout ?? 0,
|
|
49
|
-
adapter: config.adapter,
|
|
50
|
-
transitional: config.transitional ?? {},
|
|
51
|
-
data: config.data,
|
|
52
|
-
params: config.params
|
|
53
|
-
};
|
|
54
|
-
return {
|
|
55
|
-
data: null,
|
|
56
|
-
status: axiosError.response?.status ?? 0,
|
|
57
|
-
statusText: axiosError.message || 'Unknown error',
|
|
58
|
-
headers: axiosError.response?.headers ?? {},
|
|
59
|
-
config: fallbackConfig,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
2
|
+
import { GenericApiBaseClient } from './GenericApiBaseClient';
|
|
3
|
+
export class GenericApiClient extends GenericApiBaseClient {
|
|
4
|
+
constructor(input) {
|
|
5
|
+
super(input);
|
|
62
6
|
}
|
|
63
7
|
// Single entity operations
|
|
64
8
|
async insert(entity) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericApiClient.js","sourceRoot":"","sources":["../src/GenericApiClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GenericApiClient.js","sourceRoot":"","sources":["../src/GenericApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,OAAO,gBAAqF,SAAQ,oBAAoB;IAC1H,YAAY,KAA4B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAGD,2BAA2B;IAC3B,KAAK,CAAC,MAAM,CAAC,MAAa;QACtB,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAc;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAc;QACvB,OAAO,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAGD,kBAAkB;IAClB,KAAK,CAAC,cAAc,CAAC,QAAiB;QAClC,OAAO,IAAI,CAAC,WAAW,CAAS;YAC5B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkB;QACnC,OAAO,IAAI,CAAC,WAAW,CAAS;YAC5B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAiB;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAS;YAC5B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,EAAE,GAAG,EAAE;SAClB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAiB;QAClC,OAAO,IAAI,CAAC,WAAW,CAAS;YAC5B,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,EAAE,GAAG,EAAE;SAClB,CAAC,CAAC;IACP,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,OAAO,CAAC,EAAc,EAAE,KAAa;QACvC,OAAO,IAAI,CAAC,WAAW,CAAqC;YACxD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAc,EAAE,KAAa;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAqC;YACxD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,oBAAoB;YACzB,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,EAAc,EAAE,KAAa;QACtD,OAAO,IAAI,CAAC,WAAW,CAAY;YAC/B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAwB,EAAE,EAAc,EAAE,KAAa;QACzE,OAAO,IAAI,CAAC,WAAW,CAAY;YAC/B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
import { GenericApiClientInput } from './types/types';
|
|
3
|
+
import { GenericApiBaseClient } from './GenericApiBaseClient';
|
|
4
|
+
export declare class GenericApiFileClient<idFile> extends GenericApiBaseClient {
|
|
5
|
+
constructor(input: GenericApiClientInput);
|
|
6
|
+
uploadFile(file: File): Promise<AxiosResponse<string>>;
|
|
7
|
+
getFile(id: idFile): Promise<AxiosResponse<Blob>>;
|
|
8
|
+
deleteFile(id: idFile): Promise<AxiosResponse>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=GenericApiFileClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericApiFileClient.d.ts","sourceRoot":"","sources":["../src/GenericApiFileClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,aAAa,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,oBAAoB,CAAC,MAAM,CAAE,SAAQ,oBAAoB;gBACtD,KAAK,EAAE,qBAAqB;IAOlC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAWtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAQjD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAQvD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GenericApiBaseClient } from './GenericApiBaseClient';
|
|
2
|
+
export class GenericApiFileClient extends GenericApiBaseClient {
|
|
3
|
+
constructor(input) {
|
|
4
|
+
super(input);
|
|
5
|
+
}
|
|
6
|
+
// File operations matching backend endpoints
|
|
7
|
+
async uploadFile(file) {
|
|
8
|
+
const formData = new FormData();
|
|
9
|
+
formData.append('file', file);
|
|
10
|
+
return this.safeRequest({
|
|
11
|
+
method: 'POST',
|
|
12
|
+
url: '/upload-file',
|
|
13
|
+
data: formData,
|
|
14
|
+
headers: { 'Content-Type': 'multipart/form-data' }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async getFile(id) {
|
|
18
|
+
return this.safeRequest({
|
|
19
|
+
method: 'GET',
|
|
20
|
+
url: `/get-file/${id}`,
|
|
21
|
+
responseType: 'blob'
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async deleteFile(id) {
|
|
25
|
+
return this.safeRequest({
|
|
26
|
+
method: 'DELETE',
|
|
27
|
+
url: `/delete-file/${id}`
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=GenericApiFileClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericApiFileClient.js","sourceRoot":"","sources":["../src/GenericApiFileClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,OAAO,oBAA6B,SAAQ,oBAAoB;IAClE,YAAY,KAA4B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAID,6CAA6C;IAC7C,KAAK,CAAC,UAAU,CAAC,IAAU;QACvB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAS;YAC5B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,qBAAqB,EAAE;SACrD,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAO;YAC1B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,aAAa,EAAE,EAAE;YACtB,YAAY,EAAE,MAAM;SACvB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC;YACpB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,gBAAgB,EAAE,EAAE;SAC5B,CAAC,CAAC;IACP,CAAC;CAGJ"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,cAAc,eAAe,CAAC;AAG9B,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,eAAe;AACf,cAAc,eAAe,CAAC;AAE9B,2BAA2B;AAC3B,cAAc,iBAAiB,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -42,4 +42,11 @@ export declare class ListQDTO<T> implements IListQDTO<T> {
|
|
|
42
42
|
qdtoList: QDTO<T>[];
|
|
43
43
|
constructor(qdtoList: QDTO<T>[]);
|
|
44
44
|
}
|
|
45
|
+
export type GenericApiClientInput = {
|
|
46
|
+
baseUrl: string;
|
|
47
|
+
controllerPath: string;
|
|
48
|
+
gatewaySecret?: string;
|
|
49
|
+
bearerToken?: string;
|
|
50
|
+
httpsAgent?: any;
|
|
51
|
+
};
|
|
45
52
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa,CAAC,QAAQ,EAAE,MAAM;IACvC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM;CAI/C;AAED,qBAAa,YAAY;IAErB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOvF,UAAU,IAAI,QAAQ;CAQvB;AAGH,oBAAY,qBAAqB;IAC/B,OAAO,IAAW,CAAG,UAAU;IAC/B,IAAI,IAAc,CAAG,UAAU;IAC/B,KAAK,IAAa,CAAG,UAAU;IAC/B,YAAY,IAAM,CAAG,WAAW;IAChC,SAAS,IAAS,CAAG,WAAW;IAChC,WAAW,IAAO,CAAG,qBAAqB;IAC1C,GAAG,IAAe;CACnB;AAED,oBAAY,mBAAmB;IAC7B,GAAG,IAAM,CAAG,YAAY;IACxB,EAAE,IAAO,CAAG,WAAW;IACvB,IAAI,IAAK;CACV;AAID,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,SAAS,EAAE,CAAC,CAAC;IACb,eAAe,EAAE,mBAAmB,CAAC;IACrC,kBAAkB,EAAE,qBAAqB,CAAC;CAC3C;AAID,qBAAa,IAAI,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IAE7B,SAAS,EAAE,CAAC;IACZ,eAAe,EAAE,mBAAmB;IACpC,kBAAkB,EAAE,qBAAqB;gBAFzC,SAAS,EAAE,CAAC,EACZ,eAAe,EAAE,mBAAmB,EACpC,kBAAkB,EAAE,qBAAqB;CAEnD;AAID,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACtB;AAID,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAErC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAnB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;CAE7B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa,CAAC,QAAQ,EAAE,MAAM;IACvC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM;CAI/C;AAED,qBAAa,YAAY;IAErB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOvF,UAAU,IAAI,QAAQ;CAQvB;AAGH,oBAAY,qBAAqB;IAC/B,OAAO,IAAW,CAAG,UAAU;IAC/B,IAAI,IAAc,CAAG,UAAU;IAC/B,KAAK,IAAa,CAAG,UAAU;IAC/B,YAAY,IAAM,CAAG,WAAW;IAChC,SAAS,IAAS,CAAG,WAAW;IAChC,WAAW,IAAO,CAAG,qBAAqB;IAC1C,GAAG,IAAe;CACnB;AAED,oBAAY,mBAAmB;IAC7B,GAAG,IAAM,CAAG,YAAY;IACxB,EAAE,IAAO,CAAG,WAAW;IACvB,IAAI,IAAK;CACV;AAID,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,SAAS,EAAE,CAAC,CAAC;IACb,eAAe,EAAE,mBAAmB,CAAC;IACrC,kBAAkB,EAAE,qBAAqB,CAAC;CAC3C;AAID,qBAAa,IAAI,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IAE7B,SAAS,EAAE,CAAC;IACZ,eAAe,EAAE,mBAAmB;IACpC,kBAAkB,EAAE,qBAAqB;gBAFzC,SAAS,EAAE,CAAC,EACZ,eAAe,EAAE,mBAAmB,EACpC,kBAAkB,EAAE,qBAAqB;CAEnD;AAID,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACtB;AAID,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAErC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAnB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;CAE7B;AAGD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseHandler.d.ts","sourceRoot":"","sources":["../../src/utility/ResponseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,IAAI,EACjC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ResponseHandler.d.ts","sourceRoot":"","sources":["../../src/utility/ResponseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,IAAI,EACjC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAkB9B"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
export function extractFirstItem(responsePromise) {
|
|
2
2
|
return responsePromise.then((response) => {
|
|
3
|
-
// Handle case where data is null or empty array
|
|
4
|
-
|
|
3
|
+
// Handle case where data is null, undefined, or empty array
|
|
4
|
+
let firstItem = null;
|
|
5
|
+
if (response.data && Array.isArray(response.data) && response.data.length > 0) {
|
|
6
|
+
firstItem = response.data[0];
|
|
7
|
+
}
|
|
5
8
|
return {
|
|
6
9
|
...response,
|
|
7
10
|
data: firstItem
|
|
8
11
|
};
|
|
12
|
+
}).catch((error) => {
|
|
13
|
+
// If promise rejects, return error response
|
|
14
|
+
console.error('extractFirstItem error:', error);
|
|
15
|
+
throw error;
|
|
9
16
|
});
|
|
10
17
|
}
|
|
11
18
|
//# sourceMappingURL=ResponseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseHandler.js","sourceRoot":"","sources":["../../src/utility/ResponseHandler.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC5B,eAA+C;IAE/C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvC,
|
|
1
|
+
{"version":3,"file":"ResponseHandler.js","sourceRoot":"","sources":["../../src/utility/ResponseHandler.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC5B,eAA+C;IAE/C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvC,4DAA4D;QAC5D,IAAI,SAAS,GAAgB,IAAI,CAAC;QAElC,IAAI,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,SAAgB;SACvB,CAAC;IACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,4CAA4C;QAC5C,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "auto-code-generator-client-ts",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "TypeScript API client library with generic HTTP utilities for Omnia projects",
|
|
5
5
|
"license": "LGPL-3.0-or-later",
|
|
6
6
|
"author": "Luca Gualandi",
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"import": "./dist/GenericApiClient.js",
|
|
20
20
|
"types": "./dist/GenericApiClient.d.ts"
|
|
21
21
|
},
|
|
22
|
+
"./api-client-file": {
|
|
23
|
+
"import": "./dist/GenericApiFileClient.js",
|
|
24
|
+
"types": "./dist/GenericApiFileClient.d.ts"
|
|
25
|
+
},
|
|
22
26
|
"./utility": {
|
|
23
27
|
"import": "./dist/utility/index.js",
|
|
24
28
|
"types": "./dist/utility/index.d.ts"
|