@donmahallem/turbo 2.4.4 → 2.4.7
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/cjs/index.cjs +0 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/promise-request-handler.cjs +11 -14
- package/dist/cjs/promise-request-handler.cjs.map +1 -1
- package/dist/cjs/promise-to-response.cjs +41 -43
- package/dist/cjs/promise-to-response.cjs.map +1 -1
- package/dist/cjs/request-error.cjs +19 -20
- package/dist/cjs/request-error.cjs.map +1 -1
- package/dist/esm/promise-request-handler.mjs +11 -12
- package/dist/esm/promise-request-handler.mjs.map +1 -1
- package/dist/esm/promise-to-response.mjs +41 -41
- package/dist/esm/promise-to-response.mjs.map +1 -1
- package/dist/esm/request-error.mjs +19 -18
- package/dist/esm/request-error.mjs.map +1 -1
- package/dist/types/error-response.d.ts +10 -10
- package/dist/types/index.d.ts +3 -3
- package/dist/types/promise-request-handler.d.ts +9 -10
- package/dist/types/promise-to-response.d.ts +10 -11
- package/dist/types/request-error.d.ts +12 -12
- package/package.json +15 -10
- package/src/promise-request-handler.ts +0 -1
- package/src/promise-to-response.ts +26 -25
- package/src/request-error.ts +4 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
const promiseRequestHandler = require('./promise-request-handler.cjs');
|
|
6
4
|
const promiseToResponse = require('./promise-to-response.cjs');
|
|
7
5
|
const requestError = require('./request-error.cjs');
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
const promiseToResponse = require('./promise-to-response.cjs');
|
|
6
4
|
|
|
7
|
-
/*
|
|
8
|
-
* Package @donmahallem/turbo
|
|
9
|
-
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Does create an request handler that transforms a provided promise
|
|
13
|
-
* into an response
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
promiseToResponse.promiseToResponse(prom(req, res), res, next);
|
|
5
|
+
/*
|
|
6
|
+
* Package @donmahallem/turbo
|
|
7
|
+
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Does create an request handler that transforms a provided promise
|
|
11
|
+
* into an response
|
|
12
|
+
* @param prom a promise to handle
|
|
13
|
+
*/
|
|
14
|
+
const promiseRequestHandler = (prom) => (req, res, next) => {
|
|
15
|
+
promiseToResponse.promiseToResponse(prom(req, res), res, next);
|
|
19
16
|
};
|
|
20
17
|
|
|
21
18
|
exports.promiseRequestHandler = promiseRequestHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-request-handler.cjs","sources":["../../src/promise-request-handler.ts"],"sourcesContent":[null],"names":["promiseToResponse"],"mappings":"
|
|
1
|
+
{"version":3,"file":"promise-request-handler.cjs","sources":["../../src/promise-request-handler.ts"],"sourcesContent":[null],"names":["promiseToResponse"],"mappings":";;;;AAAA;;;AAGG;AAQH;;;;AAIG;AACU,MAAA,qBAAqB,GAC9B,CAAI,IAAwB,KAC5B,CAAC,GAAY,EAAE,GAAiC,EAAE,IAAkB,KAAU;AAC1E,IAAAA,mCAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD;;;;"}
|
|
@@ -1,48 +1,46 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
next
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
});
|
|
3
|
+
/*
|
|
4
|
+
* Package @donmahallem/turbo
|
|
5
|
+
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Awaits an promise and returns it
|
|
9
|
+
* @param prom promise to convert
|
|
10
|
+
* @param res the express.Response to use
|
|
11
|
+
* @param next (optional) response object
|
|
12
|
+
*/
|
|
13
|
+
const promiseToResponse = (prom, res, next) => {
|
|
14
|
+
prom.then((value) => {
|
|
15
|
+
(res.headersSent ? res : res.status(200)).json(value);
|
|
16
|
+
})
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
.catch((err) => {
|
|
19
|
+
if (next) {
|
|
20
|
+
next(err);
|
|
21
|
+
return;
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
23
|
+
}
|
|
24
|
+
else if (err && err.isAxiosError === true) {
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
26
|
+
const axiosError = err;
|
|
27
|
+
const code = axiosError.response?.status || 500;
|
|
28
|
+
res.status(code).json({
|
|
29
|
+
error: true,
|
|
30
|
+
statusCode: code,
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
|
|
36
|
+
const code = err?.statusCode || 500;
|
|
37
|
+
res.status(code).json({
|
|
38
|
+
error: true,
|
|
39
|
+
statusCode: code,
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
46
44
|
};
|
|
47
45
|
|
|
48
46
|
exports.promiseToResponse = promiseToResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-to-response.cjs","sources":["../../src/promise-to-response.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promise-to-response.cjs","sources":["../../src/promise-to-response.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAQH;;;;;AAKG;AACU,MAAA,iBAAiB,GAAe,CAAI,IAAgB,EAAE,GAAiC,EAAE,IAAmB,KAAU;AAC/H,IAAA,IAAI,CAAC,IAAI,CAAC,CAAC,KAAQ,KAAU;QACzB,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,KAAC,CAAC;;AAEG,SAAA,KAAK,CAAC,CAAC,GAAQ,KAAU;QACtB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO;;SAEV;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,EAAE;;YAEzC,MAAM,UAAU,GAAe,GAAG,CAAC;YACnC,MAAM,IAAI,GAAW,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC;AACxD,YAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAClB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,IAAI;AACnB,aAAA,CAAC,CAAC;YACH,OAAO;SACV;aAAM;;AAEH,YAAA,MAAM,IAAI,GAAW,GAAG,EAAE,UAAU,IAAI,GAAG,CAAC;AAC5C,YAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAClB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,IAAI;AACnB,aAAA,CAAC,CAAC;YACH,OAAO;SACV;AACL,KAAC,CAAC,CAAC;AACX;;;;"}
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* @param
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
}
|
|
3
|
+
/*
|
|
4
|
+
* Package @donmahallem/turbo
|
|
5
|
+
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error that should be compatible with express errors
|
|
9
|
+
*/
|
|
10
|
+
class RequestError extends Error {
|
|
11
|
+
status;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param message error message
|
|
15
|
+
* @param status status code to be reported
|
|
16
|
+
*/
|
|
17
|
+
constructor(message, status = 500) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.status = status;
|
|
20
|
+
this.name = RequestError.name;
|
|
21
|
+
}
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
exports.RequestError = RequestError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-error.cjs","sources":["../../src/request-error.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-error.cjs","sources":["../../src/request-error.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEH;;AAEG;AACG,MAAO,YAAa,SAAQ,KAAK,CAAA;AAQf,IAAA,MAAA,CAAA;AAPpB;;;;AAIG;IACH,WACI,CAAA,OAAe,EACC,MAAA,GAAiB,GAAG,EAAA;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AAGpC,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;KACjC;AACJ;;;;"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { promiseToResponse } from './promise-to-response.mjs';
|
|
2
2
|
|
|
3
|
-
/*
|
|
4
|
-
* Package @donmahallem/turbo
|
|
5
|
-
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Does create an request handler that transforms a provided promise
|
|
9
|
-
* into an response
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
promiseToResponse(prom(req, res), res, next);
|
|
3
|
+
/*
|
|
4
|
+
* Package @donmahallem/turbo
|
|
5
|
+
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Does create an request handler that transforms a provided promise
|
|
9
|
+
* into an response
|
|
10
|
+
* @param prom a promise to handle
|
|
11
|
+
*/
|
|
12
|
+
const promiseRequestHandler = (prom) => (req, res, next) => {
|
|
13
|
+
promiseToResponse(prom(req, res), res, next);
|
|
15
14
|
};
|
|
16
15
|
|
|
17
16
|
export { promiseRequestHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-request-handler.mjs","sources":["../../src/promise-request-handler.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAQH
|
|
1
|
+
{"version":3,"file":"promise-request-handler.mjs","sources":["../../src/promise-request-handler.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAQH;;;;AAIG;AACU,MAAA,qBAAqB,GAC9B,CAAI,IAAwB,KAC5B,CAAC,GAAY,EAAE,GAAiC,EAAE,IAAkB,KAAU;AAC1E,IAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD;;;;"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Package @donmahallem/turbo
|
|
3
|
-
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Awaits an promise and returns it
|
|
7
|
-
*
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (next) {
|
|
18
|
-
next(err);
|
|
19
|
-
return;
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
21
|
-
}
|
|
22
|
-
else if (err && err.isAxiosError === true) {
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
24
|
-
const axiosError = err;
|
|
25
|
-
const code =
|
|
26
|
-
res.status(code).json({
|
|
27
|
-
error: true,
|
|
28
|
-
statusCode: code,
|
|
29
|
-
});
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
|
|
34
|
-
const code =
|
|
35
|
-
res.status(code).json({
|
|
36
|
-
error: true,
|
|
37
|
-
statusCode: code,
|
|
38
|
-
});
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
1
|
+
/*
|
|
2
|
+
* Package @donmahallem/turbo
|
|
3
|
+
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Awaits an promise and returns it
|
|
7
|
+
* @param prom promise to convert
|
|
8
|
+
* @param res the express.Response to use
|
|
9
|
+
* @param next (optional) response object
|
|
10
|
+
*/
|
|
11
|
+
const promiseToResponse = (prom, res, next) => {
|
|
12
|
+
prom.then((value) => {
|
|
13
|
+
(res.headersSent ? res : res.status(200)).json(value);
|
|
14
|
+
})
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
.catch((err) => {
|
|
17
|
+
if (next) {
|
|
18
|
+
next(err);
|
|
19
|
+
return;
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
21
|
+
}
|
|
22
|
+
else if (err && err.isAxiosError === true) {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
24
|
+
const axiosError = err;
|
|
25
|
+
const code = axiosError.response?.status || 500;
|
|
26
|
+
res.status(code).json({
|
|
27
|
+
error: true,
|
|
28
|
+
statusCode: code,
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
|
|
34
|
+
const code = err?.statusCode || 500;
|
|
35
|
+
res.status(code).json({
|
|
36
|
+
error: true,
|
|
37
|
+
statusCode: code,
|
|
38
|
+
});
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
export { promiseToResponse };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-to-response.mjs","sources":["../../src/promise-to-response.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;AAQH
|
|
1
|
+
{"version":3,"file":"promise-to-response.mjs","sources":["../../src/promise-to-response.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;AAQH;;;;;AAKG;AACU,MAAA,iBAAiB,GAAe,CAAI,IAAgB,EAAE,GAAiC,EAAE,IAAmB,KAAU;AAC/H,IAAA,IAAI,CAAC,IAAI,CAAC,CAAC,KAAQ,KAAU;QACzB,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,KAAC,CAAC;;AAEG,SAAA,KAAK,CAAC,CAAC,GAAQ,KAAU;QACtB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO;;SAEV;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,EAAE;;YAEzC,MAAM,UAAU,GAAe,GAAG,CAAC;YACnC,MAAM,IAAI,GAAW,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC;AACxD,YAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAClB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,IAAI;AACnB,aAAA,CAAC,CAAC;YACH,OAAO;SACV;aAAM;;AAEH,YAAA,MAAM,IAAI,GAAW,GAAG,EAAE,UAAU,IAAI,GAAG,CAAC;AAC5C,YAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAClB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,IAAI;AACnB,aAAA,CAAC,CAAC;YACH,OAAO;SACV;AACL,KAAC,CAAC,CAAC;AACX;;;;"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Package @donmahallem/turbo
|
|
3
|
-
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Error that should be compatible with express errors
|
|
7
|
-
*/
|
|
8
|
-
class RequestError extends Error {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
* @param
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Package @donmahallem/turbo
|
|
3
|
+
* Source https://github.com/donmahallem/js-libs/tree/master/packages/turbo
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Error that should be compatible with express errors
|
|
7
|
+
*/
|
|
8
|
+
class RequestError extends Error {
|
|
9
|
+
status;
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param message error message
|
|
13
|
+
* @param status status code to be reported
|
|
14
|
+
*/
|
|
15
|
+
constructor(message, status = 500) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.name = RequestError.name;
|
|
19
|
+
}
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export { RequestError };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-error.mjs","sources":["../../src/request-error.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;AAEH;;AAEG;AACG,MAAO,YAAa,SAAQ,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"request-error.mjs","sources":["../../src/request-error.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;AAEH;;AAEG;AACG,MAAO,YAAa,SAAQ,KAAK,CAAA;AAQf,IAAA,MAAA,CAAA;AAPpB;;;;AAIG;IACH,WACI,CAAA,OAAe,EACC,MAAA,GAAiB,GAAG,EAAA;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AAGpC,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;KACjC;AACJ;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error Object to provide
|
|
3
|
-
*/
|
|
4
|
-
export interface IErrorResponse {
|
|
5
|
-
error: true;
|
|
6
|
-
/**
|
|
7
|
-
* Http Status Code
|
|
8
|
-
*/
|
|
9
|
-
statusCode: number;
|
|
10
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Error Object to provide
|
|
3
|
+
*/
|
|
4
|
+
export interface IErrorResponse {
|
|
5
|
+
error: true;
|
|
6
|
+
/**
|
|
7
|
+
* Http Status Code
|
|
8
|
+
*/
|
|
9
|
+
statusCode: number;
|
|
10
|
+
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { promiseRequestHandler } from './promise-request-handler';
|
|
2
|
-
export { promiseToResponse } from './promise-to-response';
|
|
3
|
-
export { RequestError } from './request-error';
|
|
1
|
+
export { promiseRequestHandler } from './promise-request-handler';
|
|
2
|
+
export { promiseToResponse } from './promise-to-response';
|
|
3
|
+
export { RequestError } from './request-error';
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { Request, RequestHandler, Response } from 'express';
|
|
2
|
-
type MethodInterface<T> = (req?: Request, res?: Response<T>) => Promise<T>;
|
|
3
|
-
/**
|
|
4
|
-
* Does create an request handler that transforms a provided promise
|
|
5
|
-
* into an response
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
export {};
|
|
1
|
+
import type { Request, RequestHandler, Response } from 'express';
|
|
2
|
+
type MethodInterface<T> = (req?: Request, res?: Response<T>) => Promise<T>;
|
|
3
|
+
/**
|
|
4
|
+
* Does create an request handler that transforms a provided promise
|
|
5
|
+
* into an response
|
|
6
|
+
* @param prom a promise to handle
|
|
7
|
+
*/
|
|
8
|
+
export declare const promiseRequestHandler: <T>(prom: MethodInterface<T>) => RequestHandler;
|
|
9
|
+
export {};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { NextFunction, Response } from 'express';
|
|
2
|
-
type MethodType = <T>(prom: Promise<T>, res: Response, next?: NextFunction) => void;
|
|
3
|
-
/**
|
|
4
|
-
* Awaits an promise and returns it
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
export {};
|
|
1
|
+
import type { NextFunction, Response } from 'express';
|
|
2
|
+
type MethodType = <T>(prom: Promise<T>, res: Response, next?: NextFunction) => void;
|
|
3
|
+
/**
|
|
4
|
+
* Awaits an promise and returns it
|
|
5
|
+
* @param prom promise to convert
|
|
6
|
+
* @param res the express.Response to use
|
|
7
|
+
* @param next (optional) response object
|
|
8
|
+
*/
|
|
9
|
+
export declare const promiseToResponse: MethodType;
|
|
10
|
+
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error that should be compatible with express errors
|
|
3
|
-
*/
|
|
4
|
-
export declare class RequestError extends Error {
|
|
5
|
-
readonly status: number;
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* @param message error message
|
|
9
|
-
* @param status status code to be reported
|
|
10
|
-
*/
|
|
11
|
-
constructor(message: string, status?: number);
|
|
12
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Error that should be compatible with express errors
|
|
3
|
+
*/
|
|
4
|
+
export declare class RequestError extends Error {
|
|
5
|
+
readonly status: number;
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @param message error message
|
|
9
|
+
* @param status status code to be reported
|
|
10
|
+
*/
|
|
11
|
+
constructor(message: string, status?: number);
|
|
12
|
+
}
|
package/package.json
CHANGED
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@donmahallem/turbo",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.7",
|
|
4
4
|
"description": "Turbo Helpers for express.js",
|
|
5
5
|
"main": "./dist/cjs/index.cjs",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
7
|
-
"module": "./dist/esm/index.mjs",
|
|
8
7
|
"private": false,
|
|
8
|
+
"type": "module",
|
|
9
|
+
"exports": {
|
|
10
|
+
"require": "./dist/cjs/index.cjs",
|
|
11
|
+
"import": "./dist/esm/index.mjs",
|
|
12
|
+
"types": "./dist/types/index.d.ts"
|
|
13
|
+
},
|
|
9
14
|
"keywords": [
|
|
10
15
|
"express",
|
|
11
16
|
"helpers"
|
|
12
17
|
],
|
|
13
18
|
"typedocMain": "./src/index.ts",
|
|
14
19
|
"scripts": {
|
|
15
|
-
"build": "rollup -c rollup.config.
|
|
20
|
+
"build": "rollup -c rollup.config.mjs",
|
|
16
21
|
"build:readme": "npx @appnest/readme generate --input ../package_readme_blueprint.md --config readme_config.json",
|
|
17
22
|
"test": "mocha --config ../../.mocharc.json",
|
|
18
23
|
"test:coverage": "c8 --config ../../.nycrc.json npm run test",
|
|
19
|
-
"lint": "eslint -c ./.eslintrc.
|
|
24
|
+
"lint": "eslint -c ./.eslintrc.cjs --ext .ts ./src",
|
|
20
25
|
"postlint": "prettier --config ./../../.prettierrc src/**/*.ts --check",
|
|
21
|
-
"lint:fix": "eslint -c ./.eslintrc.
|
|
26
|
+
"lint:fix": "eslint -c ./.eslintrc.cjs --ext .ts ./src --fix",
|
|
22
27
|
"postlint:fix": "prettier --config ./../../.prettierrc src/**/*.ts --write",
|
|
23
28
|
"prepublishOnly": "npm run clean && npm run test && npm run build",
|
|
24
29
|
"version": "npm run build:readme && git add README.md",
|
|
@@ -50,15 +55,15 @@
|
|
|
50
55
|
"access": "public"
|
|
51
56
|
},
|
|
52
57
|
"devDependencies": {
|
|
53
|
-
"@types/express": "4.17.
|
|
54
|
-
"@types/supertest": "2.0.
|
|
55
|
-
"axios": "1.
|
|
58
|
+
"@types/express": "4.17.21",
|
|
59
|
+
"@types/supertest": "2.0.16",
|
|
60
|
+
"axios": "1.6.0",
|
|
56
61
|
"express": "4.18.2",
|
|
57
|
-
"supertest": "6.3.
|
|
62
|
+
"supertest": "6.3.3"
|
|
58
63
|
},
|
|
59
64
|
"peerDependencies": {
|
|
60
65
|
"axios": "^1.0.0",
|
|
61
66
|
"express": "^4.17.1"
|
|
62
67
|
},
|
|
63
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "fe9c8d328e854d0e7edb98246c816ed5a9af71dc"
|
|
64
69
|
}
|
|
@@ -12,7 +12,6 @@ type MethodInterface<T> = (req?: Request, res?: Response<T>) => Promise<T>;
|
|
|
12
12
|
/**
|
|
13
13
|
* Does create an request handler that transforms a provided promise
|
|
14
14
|
* into an response
|
|
15
|
-
*
|
|
16
15
|
* @param prom a promise to handle
|
|
17
16
|
*/
|
|
18
17
|
export const promiseRequestHandler: <T>(prom: MethodInterface<T>) => RequestHandler =
|
|
@@ -11,7 +11,6 @@ type MethodType = <T>(prom: Promise<T>, res: Response, next?: NextFunction) => v
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Awaits an promise and returns it
|
|
14
|
-
*
|
|
15
14
|
* @param prom promise to convert
|
|
16
15
|
* @param res the express.Response to use
|
|
17
16
|
* @param next (optional) response object
|
|
@@ -19,28 +18,30 @@ type MethodType = <T>(prom: Promise<T>, res: Response, next?: NextFunction) => v
|
|
|
19
18
|
export const promiseToResponse: MethodType = <T>(prom: Promise<T>, res: Response<T | IErrorResponse>, next?: NextFunction): void => {
|
|
20
19
|
prom.then((value: T): void => {
|
|
21
20
|
(res.headersSent ? res : res.status(200)).json(value);
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
21
|
+
})
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
.catch((err: any): void => {
|
|
24
|
+
if (next) {
|
|
25
|
+
next(err);
|
|
26
|
+
return;
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
28
|
+
} else if (err && err.isAxiosError === true) {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
30
|
+
const axiosError: AxiosError = err;
|
|
31
|
+
const code: number = axiosError.response?.status || 500;
|
|
32
|
+
res.status(code).json({
|
|
33
|
+
error: true,
|
|
34
|
+
statusCode: code,
|
|
35
|
+
});
|
|
36
|
+
return;
|
|
37
|
+
} else {
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
|
|
39
|
+
const code: number = err?.statusCode || 500;
|
|
40
|
+
res.status(code).json({
|
|
41
|
+
error: true,
|
|
42
|
+
statusCode: code,
|
|
43
|
+
});
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
46
47
|
};
|
package/src/request-error.ts
CHANGED
|
@@ -12,7 +12,10 @@ export class RequestError extends Error {
|
|
|
12
12
|
* @param message error message
|
|
13
13
|
* @param status status code to be reported
|
|
14
14
|
*/
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(
|
|
16
|
+
message: string,
|
|
17
|
+
public readonly status: number = 500
|
|
18
|
+
) {
|
|
16
19
|
super(message);
|
|
17
20
|
this.name = RequestError.name;
|
|
18
21
|
}
|