@firedesktop/react-base 1.16.0 → 1.16.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/dist/utils/fetch/Types.d.ts +1 -0
- package/dist/utils/fetch/fetchWrapper.d.ts +8 -7
- package/dist/utils/fetch/fetchWrapper.js +31 -17
- package/dist/utils/fetch/fetchWrapper.js.map +1 -1
- package/package.json +3 -3
- package/src/App.tsx +40 -3
- package/src/lib/utils/fetch/Types.ts +1 -0
- package/src/lib/utils/fetch/fetchWrapper.ts +32 -19
- package/debug.log +0 -2
|
@@ -2,12 +2,13 @@ import * as Types from './Types';
|
|
|
2
2
|
declare class FetchWrapper {
|
|
3
3
|
apiVersion?: string;
|
|
4
4
|
labels?: Types.ILabels;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
status_401?: () => void;
|
|
6
|
+
status_403?: () => void;
|
|
7
|
+
constructor(apiVersion?: string, labels?: Types.ILabels, status_401?: () => void, status_403?: () => void);
|
|
8
|
+
get: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
|
|
9
|
+
post: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
|
|
10
|
+
put: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
|
|
11
|
+
delete: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
|
|
12
|
+
generic: (method: string, url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean, version?: string, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
|
|
12
13
|
}
|
|
13
14
|
export default FetchWrapper;
|
|
@@ -2,6 +2,7 @@ var Constants = (function () {
|
|
|
2
2
|
function Constants() {
|
|
3
3
|
}
|
|
4
4
|
Constants.labels = {
|
|
5
|
+
errorBadRequest: 'Request is not in a valid format',
|
|
5
6
|
errorGeneric: 'Sorry we have errors on the remote server',
|
|
6
7
|
errorServerNotAvailable: 'Server not available',
|
|
7
8
|
errorSessionExpired: 'Your session has expired, please login.',
|
|
@@ -9,30 +10,30 @@ var Constants = (function () {
|
|
|
9
10
|
return Constants;
|
|
10
11
|
}());
|
|
11
12
|
var FetchWrapper = (function () {
|
|
12
|
-
function FetchWrapper(apiVersion, labels,
|
|
13
|
+
function FetchWrapper(apiVersion, labels, status_401, status_403) {
|
|
13
14
|
var _this = this;
|
|
14
|
-
this.get = function (url, token, params, isFile, isBlob) {
|
|
15
|
+
this.get = function (url, token, onGenericServerError, params, isFile, isBlob) {
|
|
15
16
|
if (isFile === void 0) { isFile = false; }
|
|
16
17
|
if (isBlob === void 0) { isBlob = false; }
|
|
17
|
-
return _this.generic('GET', url, token, params, isFile, isBlob);
|
|
18
|
+
return _this.generic('GET', url, token, onGenericServerError, params, isFile, isBlob);
|
|
18
19
|
};
|
|
19
|
-
this.post = function (url, token, params, isFile, isBlob, additionalParams) {
|
|
20
|
+
this.post = function (url, token, onGenericServerError, params, isFile, isBlob, additionalParams) {
|
|
20
21
|
if (isFile === void 0) { isFile = false; }
|
|
21
22
|
if (isBlob === void 0) { isBlob = false; }
|
|
22
23
|
if (additionalParams === void 0) { additionalParams = []; }
|
|
23
|
-
return _this.generic('POST', url, token, params, isFile, isBlob, _this.apiVersion, additionalParams);
|
|
24
|
+
return _this.generic('POST', url, token, onGenericServerError, params, isFile, isBlob, _this.apiVersion, additionalParams);
|
|
24
25
|
};
|
|
25
|
-
this.put = function (url, token, params, isFile, isBlob) {
|
|
26
|
+
this.put = function (url, token, onGenericServerError, params, isFile, isBlob) {
|
|
26
27
|
if (isFile === void 0) { isFile = false; }
|
|
27
28
|
if (isBlob === void 0) { isBlob = false; }
|
|
28
|
-
return _this.generic('PUT', url, token, params, isFile, isBlob);
|
|
29
|
+
return _this.generic('PUT', url, token, onGenericServerError, params, isFile, isBlob);
|
|
29
30
|
};
|
|
30
|
-
this.delete = function (url, token, params, isFile, isBlob) {
|
|
31
|
+
this.delete = function (url, token, onGenericServerError, params, isFile, isBlob) {
|
|
31
32
|
if (isFile === void 0) { isFile = false; }
|
|
32
33
|
if (isBlob === void 0) { isBlob = false; }
|
|
33
|
-
return _this.generic('DELETE', url, token, params, isFile, isBlob);
|
|
34
|
+
return _this.generic('DELETE', url, token, onGenericServerError, params, isFile, isBlob);
|
|
34
35
|
};
|
|
35
|
-
this.generic = function (method, url, token, params, isFile, isBlob, version, additionalParams) {
|
|
36
|
+
this.generic = function (method, url, token, onGenericServerError, params, isFile, isBlob, version, additionalParams) {
|
|
36
37
|
if (isFile === void 0) { isFile = false; }
|
|
37
38
|
if (isBlob === void 0) { isBlob = false; }
|
|
38
39
|
if (version === void 0) { version = _this.apiVersion; }
|
|
@@ -70,7 +71,8 @@ var FetchWrapper = (function () {
|
|
|
70
71
|
headers: headers
|
|
71
72
|
};
|
|
72
73
|
var labels = _this.labels;
|
|
73
|
-
var
|
|
74
|
+
var status_401 = _this.status_401;
|
|
75
|
+
var status_403 = _this.status_403;
|
|
74
76
|
return fetch(url, requestInit)
|
|
75
77
|
.then(function (response) {
|
|
76
78
|
if (response.status < 200 || response.status >= 300)
|
|
@@ -84,14 +86,25 @@ var FetchWrapper = (function () {
|
|
|
84
86
|
console.error("Error on fetch url: " + url);
|
|
85
87
|
if (!error || error.message === 'Failed to fetch')
|
|
86
88
|
throw new Error(labels.errorServerNotAvailable);
|
|
87
|
-
if (error.
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
if (error.status === 401 && status_401) {
|
|
90
|
+
status_401();
|
|
91
|
+
}
|
|
92
|
+
else if (error.status === 403 && status_401) {
|
|
93
|
+
status_403();
|
|
94
|
+
}
|
|
95
|
+
else if (error.status === 400 && onGenericServerError) {
|
|
96
|
+
onGenericServerError(error.status);
|
|
97
|
+
}
|
|
98
|
+
if (!error.text) {
|
|
99
|
+
if (error.status === 400) {
|
|
100
|
+
throw new Error(labels.errorBadRequest);
|
|
101
|
+
}
|
|
102
|
+
else if (error.status === 401 || error.status === 403) {
|
|
90
103
|
throw new Error(labels.errorSessionExpired);
|
|
91
104
|
}
|
|
92
|
-
else
|
|
93
|
-
return error.text();
|
|
94
105
|
}
|
|
106
|
+
else
|
|
107
|
+
return error.text();
|
|
95
108
|
if (error.message && error.message !== '')
|
|
96
109
|
throw error.message;
|
|
97
110
|
throw new Error(labels.errorGeneric);
|
|
@@ -105,7 +118,8 @@ var FetchWrapper = (function () {
|
|
|
105
118
|
});
|
|
106
119
|
};
|
|
107
120
|
this.apiVersion = apiVersion;
|
|
108
|
-
this.
|
|
121
|
+
this.status_401 = status_401;
|
|
122
|
+
this.status_403 = status_403;
|
|
109
123
|
if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
|
|
110
124
|
this.labels = labels;
|
|
111
125
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"AAEA;IAAA;
|
|
1
|
+
{"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firedesktop/react-base",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.1",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"description": "This is the FireDesktop base package used to support every React Project in this Company.",
|
|
7
7
|
"author": "alessandro.gambaro",
|
|
8
8
|
"repository": "https://firedesktopDevOps@dev.azure.com/firedesktopDevOps/baseFEComponents/_git/baseFEComponents",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@syncfusion/ej2-popups": "^18.3.
|
|
10
|
+
"@syncfusion/ej2-popups": "^18.3.50",
|
|
11
11
|
"react": "^16.14.0",
|
|
12
12
|
"react-dom": "^16.14.0",
|
|
13
13
|
"react-redux": "^7.2.1"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"peerDependencies": {},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"distribute_not_working": "rmdir /s /q dist & mkdir dist && npx babel src/lib --out-dir dist --extensions \".js,.ts,.tsx\" --source-maps inline",
|
|
39
|
-
"start": "react-scripts start
|
|
39
|
+
"start": "react-scripts start",
|
|
40
40
|
"distribute": "rmdir /s /q dist & mkdir dist\\styles && tsc && copyfiles -f src/lib/styles/* dist/styles"
|
|
41
41
|
},
|
|
42
42
|
"eslintConfig": {
|
package/src/App.tsx
CHANGED
|
@@ -31,14 +31,24 @@ function App() {
|
|
|
31
31
|
const [options, setOptions] = useState<{ value: string }[]>([]);
|
|
32
32
|
const [spinning, setSpinning] = useState(false);
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
|
|
35
|
+
function onGenericServerError(status: number) {
|
|
36
|
+
alert(`Error, Status: ${status}`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function status_401() {
|
|
40
|
+
alert('Log Out 401');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function status_403() {
|
|
44
|
+
alert('Log Out 403');
|
|
36
45
|
}
|
|
37
46
|
|
|
38
47
|
const textFetch = () => {
|
|
39
48
|
const labels = { errorGeneric: 'Errore generiro', errorServerNotAvailable: 'No serviziooo', errorSessionExpired: 'Sessione scadurta' } as Utils.Fetch.Types.ILabels;
|
|
40
49
|
|
|
41
|
-
const runner = new Utils.Fetch.FetchWrapper(null, labels,
|
|
50
|
+
const runner = new Utils.Fetch.FetchWrapper(null, labels, status_401, status_403);
|
|
51
|
+
|
|
42
52
|
setSpinning(true);
|
|
43
53
|
runner.get('https://my-json-server.typicode.com/typicode/demo/posts', null, null, false, false).then(response => {
|
|
44
54
|
// @ts-ignore
|
|
@@ -53,6 +63,33 @@ function App() {
|
|
|
53
63
|
console.log(errorMessage);
|
|
54
64
|
});
|
|
55
65
|
|
|
66
|
+
|
|
67
|
+
// setSpinning(true);
|
|
68
|
+
|
|
69
|
+
// 401
|
|
70
|
+
// runner.get('https://gammafd1.northeurope.cloudapp.azure.com:9136/flowbot/CustomCode', null, null, false, false).then(response => {
|
|
71
|
+
// setSpinning(false);
|
|
72
|
+
// debugger;
|
|
73
|
+
// alert('OK');
|
|
74
|
+
// }).catch(errorMessage => {
|
|
75
|
+
// debugger;
|
|
76
|
+
// if (errorMessage && errorMessage.message)
|
|
77
|
+
// alert(errorMessage.message);
|
|
78
|
+
// setSpinning(false);
|
|
79
|
+
// });
|
|
80
|
+
|
|
81
|
+
// 400
|
|
82
|
+
// runner.delete('https://gammafd1.northeurope.cloudapp.azure.com:9126/flowbot/Dossier/24/Procedure/78', null, onGenericServerError, null, false, false).then(response => {
|
|
83
|
+
// setSpinning(false);
|
|
84
|
+
// debugger;
|
|
85
|
+
// alert('Ok');
|
|
86
|
+
// }).catch(errorMessage => {
|
|
87
|
+
// debugger;
|
|
88
|
+
// if (errorMessage && errorMessage.message)
|
|
89
|
+
// alert(errorMessage.message);
|
|
90
|
+
// setSpinning(false);
|
|
91
|
+
// });
|
|
92
|
+
|
|
56
93
|
};
|
|
57
94
|
|
|
58
95
|
const updateAppState = (name: string, value: object) => {
|
|
@@ -2,6 +2,7 @@ import * as Types from './Types';
|
|
|
2
2
|
|
|
3
3
|
class Constants {
|
|
4
4
|
static labels = {
|
|
5
|
+
errorBadRequest: 'Request is not in a valid format',
|
|
5
6
|
errorGeneric: 'Sorry we have errors on the remote server',
|
|
6
7
|
errorServerNotAvailable: 'Server not available',
|
|
7
8
|
errorSessionExpired: 'Your session has expired, please login.',
|
|
@@ -11,11 +12,13 @@ class Constants {
|
|
|
11
12
|
class FetchWrapper {
|
|
12
13
|
apiVersion?: string;
|
|
13
14
|
labels?: Types.ILabels;
|
|
14
|
-
|
|
15
|
+
status_401?: () => void;
|
|
16
|
+
status_403?: () => void;
|
|
15
17
|
|
|
16
|
-
constructor(apiVersion?: string, labels?: Types.ILabels,
|
|
18
|
+
constructor(apiVersion?: string, labels?: Types.ILabels, status_401?: () => void, status_403?: () => void) {
|
|
17
19
|
this.apiVersion = apiVersion;
|
|
18
|
-
this.
|
|
20
|
+
this.status_401 = status_401;
|
|
21
|
+
this.status_403 = status_403;
|
|
19
22
|
|
|
20
23
|
if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
|
|
21
24
|
this.labels = labels;
|
|
@@ -23,23 +26,23 @@ class FetchWrapper {
|
|
|
23
26
|
this.labels = Constants.labels;
|
|
24
27
|
}
|
|
25
28
|
|
|
26
|
-
get = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
|
|
27
|
-
return this.generic('GET', url, token, params, isFile, isBlob);
|
|
29
|
+
get = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
|
|
30
|
+
return this.generic('GET', url, token, onGenericServerError, params, isFile, isBlob);
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
post = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
|
|
31
|
-
return this.generic('POST', url, token, params, isFile, isBlob, this.apiVersion, additionalParams);
|
|
33
|
+
post = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
|
|
34
|
+
return this.generic('POST', url, token, onGenericServerError, params, isFile, isBlob, this.apiVersion, additionalParams);
|
|
32
35
|
}
|
|
33
36
|
|
|
34
|
-
put = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
|
|
35
|
-
return this.generic('PUT', url, token, params, isFile, isBlob);
|
|
37
|
+
put = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
|
|
38
|
+
return this.generic('PUT', url, token, onGenericServerError, params, isFile, isBlob);
|
|
36
39
|
}
|
|
37
40
|
|
|
38
|
-
delete = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
|
|
39
|
-
return this.generic('DELETE', url, token, params, isFile, isBlob);
|
|
41
|
+
delete = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
|
|
42
|
+
return this.generic('DELETE', url, token, onGenericServerError, params, isFile, isBlob);
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
generic = (method: string, url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
|
|
45
|
+
generic = (method: string, url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
|
|
43
46
|
// Headers & Body
|
|
44
47
|
let body: BodyInit;
|
|
45
48
|
const headers = new Headers();
|
|
@@ -76,7 +79,8 @@ class FetchWrapper {
|
|
|
76
79
|
} as RequestInit;
|
|
77
80
|
|
|
78
81
|
const labels = this.labels;
|
|
79
|
-
const
|
|
82
|
+
const status_401 = this.status_401;
|
|
83
|
+
const status_403 = this.status_403;
|
|
80
84
|
|
|
81
85
|
return fetch(url, requestInit)
|
|
82
86
|
.then(response => {
|
|
@@ -95,15 +99,24 @@ class FetchWrapper {
|
|
|
95
99
|
if (!error || error.message === 'Failed to fetch')
|
|
96
100
|
throw new Error(labels.errorServerNotAvailable);
|
|
97
101
|
|
|
98
|
-
// This is an error coming from
|
|
99
|
-
if (error.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
// This is an error coming from BE
|
|
103
|
+
if (error.status === 401 && status_401) {
|
|
104
|
+
status_401();
|
|
105
|
+
} else if (error.status === 403 && status_401) {
|
|
106
|
+
status_403();
|
|
107
|
+
} else if (error.status === 400 && onGenericServerError) {
|
|
108
|
+
onGenericServerError(error.status);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (!error.text) {
|
|
112
|
+
if (error.status === 400) {
|
|
113
|
+
throw new Error(labels.errorBadRequest);
|
|
114
|
+
} else if (error.status === 401 || error.status === 403) {
|
|
102
115
|
throw new Error(labels.errorSessionExpired);
|
|
103
116
|
}
|
|
104
|
-
else
|
|
105
|
-
return error.text();
|
|
106
117
|
}
|
|
118
|
+
else
|
|
119
|
+
return error.text();
|
|
107
120
|
|
|
108
121
|
if (error.message && error.message !== '')
|
|
109
122
|
throw error.message;
|
package/debug.log
DELETED