@nmxjs/app 1.0.105 → 1.0.107
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/GqlExceptionFilter.d.ts +3 -1
- package/dist/GqlExceptionFilter.js +18 -6
- package/dist/GqlExceptionFilter.js.map +1 -1
- package/dist/createNestApp.d.ts +1 -1
- package/dist/createNestApp.js +17 -6
- package/dist/createNestApp.js.map +1 -1
- package/dist/interfaces/ICreateNestAppOptions.d.ts +1 -0
- package/package.json +1 -1
|
@@ -4,6 +4,8 @@ import type { INotifier } from '@nmxjs/notifications';
|
|
|
4
4
|
export declare class GqlExceptionFilter implements ExceptionFilter {
|
|
5
5
|
private readonly serviceName;
|
|
6
6
|
private readonly notifier?;
|
|
7
|
-
|
|
7
|
+
private readonly excludeUploadPaths?;
|
|
8
|
+
constructor(serviceName: string, notifier?: INotifier, excludeUploadPaths?: string[]);
|
|
9
|
+
private isExcludedPath;
|
|
8
10
|
catch(error: any, host: any): any;
|
|
9
11
|
}
|
|
@@ -15,18 +15,30 @@ const common_1 = require("@nestjs/common");
|
|
|
15
15
|
const errors_1 = require("@nmxjs/errors");
|
|
16
16
|
const utils_1 = require("@nmxjs/utils");
|
|
17
17
|
let GqlExceptionFilter = class GqlExceptionFilter {
|
|
18
|
-
constructor(serviceName, notifier) {
|
|
18
|
+
constructor(serviceName, notifier, excludeUploadPaths) {
|
|
19
19
|
this.serviceName = serviceName;
|
|
20
20
|
this.notifier = notifier;
|
|
21
|
+
this.excludeUploadPaths = excludeUploadPaths;
|
|
22
|
+
}
|
|
23
|
+
isExcludedPath(path) {
|
|
24
|
+
var _a;
|
|
25
|
+
return (_a = this.excludeUploadPaths) === null || _a === void 0 ? void 0 : _a.some(pattern => {
|
|
26
|
+
if (pattern.includes('*')) {
|
|
27
|
+
const regex = new RegExp('^' + pattern.replace(/\*/g, '[^/]+') + '$');
|
|
28
|
+
return regex.test(path);
|
|
29
|
+
}
|
|
30
|
+
return path === pattern || path.startsWith(pattern);
|
|
31
|
+
});
|
|
21
32
|
}
|
|
22
33
|
catch(error, host) {
|
|
23
34
|
if (error.code === '23505') {
|
|
24
35
|
error = new errors_1.AlreadyExistError();
|
|
25
36
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
const ctx = host.switchToHttp();
|
|
38
|
+
const req = ctx.getRequest();
|
|
39
|
+
const res = ctx.getResponse();
|
|
40
|
+
if (error instanceof common_1.NotFoundException || this.isExcludedPath(req === null || req === void 0 ? void 0 : req.path)) {
|
|
41
|
+
return res.status(error.statusCode || 404).json({ message: error.message, code: error.code });
|
|
30
42
|
}
|
|
31
43
|
if (this.notifier && !error.silent) {
|
|
32
44
|
this.notifier.sendError({
|
|
@@ -48,6 +60,6 @@ let GqlExceptionFilter = class GqlExceptionFilter {
|
|
|
48
60
|
exports.GqlExceptionFilter = GqlExceptionFilter;
|
|
49
61
|
exports.GqlExceptionFilter = GqlExceptionFilter = __decorate([
|
|
50
62
|
(0, common_1.Catch)(),
|
|
51
|
-
__metadata("design:paramtypes", [String, Object])
|
|
63
|
+
__metadata("design:paramtypes", [String, Object, Array])
|
|
52
64
|
], GqlExceptionFilter);
|
|
53
65
|
//# sourceMappingURL=GqlExceptionFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GqlExceptionFilter.js","sourceRoot":"","sources":["../src/GqlExceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAuC;AACvC,2CAA2E;AAC3E,0CAAkD;AAElD,wCAAkD;AAG3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,
|
|
1
|
+
{"version":3,"file":"GqlExceptionFilter.js","sourceRoot":"","sources":["../src/GqlExceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAuC;AACvC,2CAA2E;AAC3E,0CAAkD;AAElD,wCAAkD;AAG3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,WAAmB,EACnB,QAAoB,EACpB,kBAA6B;QAF7B,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAY;QACpB,uBAAkB,GAAlB,kBAAkB,CAAW;IAC7C,CAAC;IAEI,cAAc,CAAC,IAAY;;QACjC,OAAO,MAAA,IAAI,CAAC,kBAAkB,0CAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;gBACtE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK,EAAE,IAAI;QACtB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,KAAK,GAAG,IAAI,0BAAiB,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE9B,IAAI,KAAK,YAAY,0BAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC;YACzE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAA,0BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,aAAa;gBACjC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,sBAAY,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA/CY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,cAAK,GAAE;;GACK,kBAAkB,CA+C9B"}
|
package/dist/createNestApp.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ICreateNestAppOptions } from './interfaces';
|
|
2
|
-
export declare function createNestApp({ service, module, http }: ICreateNestAppOptions): Promise<any>;
|
|
2
|
+
export declare function createNestApp({ service, module, http, excludeUploadPaths }: ICreateNestAppOptions): Promise<any>;
|
package/dist/createNestApp.js
CHANGED
|
@@ -17,7 +17,7 @@ const getGraphQlModule_1 = require("./getGraphQlModule");
|
|
|
17
17
|
const notifications_1 = require("@nmxjs/notifications");
|
|
18
18
|
const constants_1 = require("@nmxjs/constants");
|
|
19
19
|
const body_parser_1 = require("body-parser");
|
|
20
|
-
async function createNestApp({ service, module, http }) {
|
|
20
|
+
async function createNestApp({ service, module, http, excludeUploadPaths }) {
|
|
21
21
|
const isWorker = (0, utils_1.isWorkerApp)();
|
|
22
22
|
const app = await core_1.NestFactory[isWorker ? 'createApplicationContext' : 'create'](module);
|
|
23
23
|
if (isWorker) {
|
|
@@ -43,10 +43,21 @@ async function createNestApp({ service, module, http }) {
|
|
|
43
43
|
app.use(compression());
|
|
44
44
|
app.use((0, body_parser_1.json)({ limit: '100mb' }));
|
|
45
45
|
app.use((0, body_parser_1.urlencoded)({ limit: '100mb', extended: true }));
|
|
46
|
-
app.use((
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
app.use((req, res, next) => {
|
|
47
|
+
if (excludeUploadPaths === null || excludeUploadPaths === void 0 ? void 0 : excludeUploadPaths.some(pattern => {
|
|
48
|
+
if (pattern.includes('*')) {
|
|
49
|
+
const regex = new RegExp('^' + pattern.replace(/\*/g, '[^/]+') + '$');
|
|
50
|
+
return regex.test(req.path);
|
|
51
|
+
}
|
|
52
|
+
return req.path === pattern || req.path.startsWith(pattern);
|
|
53
|
+
})) {
|
|
54
|
+
return next();
|
|
55
|
+
}
|
|
56
|
+
(0, graphql_upload_ts_1.graphqlUploadExpress)({
|
|
57
|
+
maxFiles: 10,
|
|
58
|
+
maxFileSize: 52428800,
|
|
59
|
+
})(req, res, next);
|
|
60
|
+
});
|
|
50
61
|
app.enableCors({
|
|
51
62
|
origin: (0, utils_1.parseJson)({
|
|
52
63
|
data: process.env.ORIGINS,
|
|
@@ -55,7 +66,7 @@ async function createNestApp({ service, module, http }) {
|
|
|
55
66
|
credentials: true,
|
|
56
67
|
});
|
|
57
68
|
if ((0, getGraphQlModule_1.checkIsGraphQlModuleExits)()) {
|
|
58
|
-
app.useGlobalFilters(new GqlExceptionFilter_1.GqlExceptionFilter(service, notifier));
|
|
69
|
+
app.useGlobalFilters(new GqlExceptionFilter_1.GqlExceptionFilter(service, notifier, excludeUploadPaths));
|
|
59
70
|
}
|
|
60
71
|
await app.listen(port);
|
|
61
72
|
common_1.Logger.log(`Http service ${service} started on port "${port}"!`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNestApp.js","sourceRoot":"","sources":["../src/createNestApp.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAC5B,2CAA2C;AAC3C,wCAA+C;AAC/C,0CAAmD;AACnD,yDAAyD;AACzD,oCAAsG;AACtG,0CAA+D;AAC/D,uCAA2C;AAE3C,2CAA0D;AAC1D,wCAAsE;AAEtE,mDAAgD;AAChD,6DAA0D;AAC1D,yDAA+D;AAC/D,wDAAsE;AACtE,gDAAqD;AACrD,6CAA+C;AAExC,KAAK,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAyB;
|
|
1
|
+
{"version":3,"file":"createNestApp.js","sourceRoot":"","sources":["../src/createNestApp.ts"],"names":[],"mappings":"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"}
|