@nest-omni/core 1.0.6 → 1.0.8
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/{src → dist}/boilerplate.polyfill.js +0 -1
- package/{src → dist}/common/abstract-client.service.d.ts +0 -4
- package/{src → dist}/common/abstract-client.service.js +0 -4
- package/{src → dist}/common/abstract.entity.d.ts +0 -7
- package/dist/common/abstract.entity.js +64 -0
- package/dist/common/dto/abstract.dto.js +59 -0
- package/dist/common/dto/bulk-id.dto.js +27 -0
- package/dist/common/dto/create-translation.dto.js +25 -0
- package/dist/common/dto/page-meta.dto.js +48 -0
- package/dist/common/dto/page-options.dto.js +52 -0
- package/dist/common/dto/page.dto.js +53 -0
- package/{src → dist}/common/utils.d.ts +0 -11
- package/{src → dist}/common/utils.js +1 -15
- package/{src → dist}/constants/language-code.js +0 -1
- package/dist/decorators/controller.decorator.js +11 -0
- package/{src → dist}/decorators/field.decorators.js +1 -7
- package/{src → dist}/decorators/omni-auth.decorator.js +1 -26
- package/{src → dist}/decorators/property.decorators.js +1 -5
- package/{src → dist}/decorators/public-route.decorator.js +0 -1
- package/{src → dist}/decorators/swagger.schema.js +1 -4
- package/{src → dist}/decorators/timestamp-column.decorator.js +1 -1
- package/dist/decorators/transform.decorators.d.ts +8 -0
- package/{src → dist}/decorators/transform.decorators.js +0 -27
- package/{src → dist}/decorators/translate.decorator.js +0 -1
- package/dist/decorators/user-check.decorator.js +21 -0
- package/{src → dist}/decorators/user.decorator.js +1 -25
- package/dist/filters/bad-request.filter.js +60 -0
- package/{src → dist}/filters/constraint-errors.js +0 -1
- package/dist/filters/query-failed.filter.js +42 -0
- package/dist/health-checker/health-checker.controller.js +72 -0
- package/dist/health-checker/health-checker.module.js +25 -0
- package/dist/health-checker/health-indicators/service.indicator.js +66 -0
- package/dist/helpers/common.helper.d.ts +3 -0
- package/{src → dist}/helpers/common.helper.js +0 -13
- package/{src → dist}/helpers/date.helper.d.ts +3 -3
- package/{src → dist}/helpers/date.helper.js +2 -25
- package/dist/i18n/en_US/validation.json +38 -0
- package/dist/i18n/zh_CN/validation.json +38 -0
- package/{src → dist}/index.js +0 -1
- package/dist/interceptors/auth-user.interceptor.js +24 -0
- package/dist/interceptors/language-interceptor.service.js +30 -0
- package/dist/interceptors/translation-interceptor.service.js +34 -0
- package/{src → dist}/providers/context.provider.js +0 -2
- package/{src → dist}/providers/generator.provider.d.ts +0 -4
- package/{src → dist}/providers/generator.provider.js +0 -4
- package/{src → dist}/setup/bootstrap.setup.js +7 -33
- package/dist/shared/serviceRegistryModule.js +110 -0
- package/{src → dist}/shared/services/api-config.service.d.ts +0 -3
- package/dist/shared/services/api-config.service.js +290 -0
- package/dist/shared/services/aws-s3.service.js +56 -0
- package/dist/shared/services/generator.service.js +23 -0
- package/dist/shared/services/translation.service.js +70 -0
- package/dist/shared/services/validator.service.js +20 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/validators/is-exists.validator.js +61 -0
- package/dist/validators/is-unique.validator.js +92 -0
- package/{src → dist}/validators/skip-empty.validator.d.ts +0 -5
- package/{src → dist}/validators/skip-empty.validator.js +0 -5
- package/package.json +4 -1
- package/src/boilerplate.polyfill.ts +0 -202
- package/src/common/abstract-client.service.ts +0 -56
- package/src/common/abstract.entity.js +0 -152
- package/src/common/abstract.entity.ts +0 -73
- package/src/common/dto/abstract.dto.js +0 -96
- package/src/common/dto/abstract.dto.ts +0 -64
- package/src/common/dto/bulk-id.dto.js +0 -63
- package/src/common/dto/bulk-id.dto.ts +0 -13
- package/src/common/dto/create-translation.dto.js +0 -63
- package/src/common/dto/create-translation.dto.ts +0 -10
- package/src/common/dto/page-meta.dto.js +0 -88
- package/src/common/dto/page-meta.dto.ts +0 -37
- package/src/common/dto/page-options.dto.js +0 -87
- package/src/common/dto/page-options.dto.ts +0 -35
- package/src/common/dto/page.dto.js +0 -94
- package/src/common/dto/page.dto.ts +0 -36
- package/src/common/utils.ts +0 -45
- package/src/constants/index.ts +0 -4
- package/src/constants/language-code.ts +0 -7
- package/src/constants/order.ts +0 -4
- package/src/constants/role-type.ts +0 -4
- package/src/constants/token-type.ts +0 -4
- package/src/decorators/api-page-ok-response.decorator.ts +0 -31
- package/src/decorators/auth-user.decorator.ts +0 -16
- package/src/decorators/controller.decorator.js +0 -34
- package/src/decorators/controller.decorator.ts +0 -8
- package/src/decorators/field.decorators.ts +0 -773
- package/src/decorators/http.decorators.ts +0 -10
- package/src/decorators/index.ts +0 -12
- package/src/decorators/omni-auth.decorator.ts +0 -46
- package/src/decorators/operation.decorator.ts +0 -4
- package/src/decorators/property.decorators.ts +0 -62
- package/src/decorators/public-route.decorator.ts +0 -8
- package/src/decorators/swagger.schema.ts +0 -117
- package/src/decorators/timestamp-column.decorator.ts +0 -29
- package/src/decorators/transform.decorators.d.ts +0 -35
- package/src/decorators/transform.decorators.ts +0 -147
- package/src/decorators/translate.decorator.ts +0 -19
- package/src/decorators/use-dto.decorator.ts +0 -11
- package/src/decorators/user-check.decorator.js +0 -44
- package/src/decorators/user-check.decorator.ts +0 -30
- package/src/decorators/user.decorator.ts +0 -48
- package/src/decorators/user_auth.decorator.ts +0 -15
- package/src/decorators/validator.decorators.ts +0 -78
- package/src/exceptions/file-not-image.exception.ts +0 -7
- package/src/exceptions/index.ts +0 -2
- package/src/exceptions/page-type.exception.ts +0 -7
- package/src/exceptions/user-not-found.exception.ts +0 -7
- package/src/filters/bad-request.filter.js +0 -104
- package/src/filters/bad-request.filter.ts +0 -67
- package/src/filters/constraint-errors.ts +0 -5
- package/src/filters/index.ts +0 -3
- package/src/filters/query-failed.filter.js +0 -81
- package/src/filters/query-failed.filter.ts +0 -32
- package/src/health-checker/health-checker.controller.js +0 -104
- package/src/health-checker/health-checker.controller.ts +0 -51
- package/src/health-checker/health-checker.module.js +0 -69
- package/src/health-checker/health-checker.module.ts +0 -13
- package/src/health-checker/health-indicators/service.indicator.js +0 -102
- package/src/health-checker/health-indicators/service.indicator.ts +0 -44
- package/src/helpers/common.helper.d.ts +0 -16
- package/src/helpers/common.helper.ts +0 -49
- package/src/helpers/date.helper.ts +0 -64
- package/src/helpers/excel.helper.d.ts +0 -27
- package/src/helpers/excel.helper.js +0 -338
- package/src/helpers/index.ts +0 -3
- package/src/i18n/en_US/validation.json +0 -38
- package/src/i18n/zh_CN/validation.json +0 -38
- package/src/index.ts +0 -12
- package/src/interceptors/auth-user.interceptor.js +0 -68
- package/src/interceptors/auth-user.interceptor.ts +0 -20
- package/src/interceptors/index.ts +0 -2
- package/src/interceptors/language-interceptor.service.js +0 -74
- package/src/interceptors/language-interceptor.service.ts +0 -31
- package/src/interceptors/translation-interceptor.service.js +0 -83
- package/src/interceptors/translation-interceptor.service.ts +0 -43
- package/src/interfaces/IApiFile.ts +0 -4
- package/src/interfaces/IFile.ts +0 -8
- package/src/interfaces/ITranslationDecoratorInterface.ts +0 -3
- package/src/interfaces/index.ts +0 -3
- package/src/interfaces/response.ts +0 -37
- package/src/middlewares/index.ts +0 -3
- package/src/middlewares/omni-auth.middleware.ts +0 -10
- package/src/middlewares/powerby.middleware.ts +0 -6
- package/src/middlewares/request-id.middleware.ts +0 -28
- package/src/providers/context.provider.ts +0 -98
- package/src/providers/generator.provider.ts +0 -66
- package/src/providers/index.ts +0 -2
- package/src/setup/bootstrap.setup.ts +0 -139
- package/src/setup/index.ts +0 -1
- package/src/setup/microservices.setup.js +0 -55
- package/src/setup-swagger.ts +0 -67
- package/src/shared/index.ts +0 -2
- package/src/shared/serviceRegistryModule.js +0 -176
- package/src/shared/serviceRegistryModule.ts +0 -110
- package/src/shared/services/api-config.service.js +0 -335
- package/src/shared/services/api-config.service.ts +0 -319
- package/src/shared/services/aws-s3.service.js +0 -96
- package/src/shared/services/aws-s3.service.ts +0 -39
- package/src/shared/services/generator.service.js +0 -67
- package/src/shared/services/generator.service.ts +0 -13
- package/src/shared/services/index.ts +0 -5
- package/src/shared/services/translation.service.js +0 -109
- package/src/shared/services/translation.service.ts +0 -59
- package/src/shared/services/validator.service.js +0 -64
- package/src/shared/services/validator.service.ts +0 -10
- package/src/snake-naming.strategy.ts +0 -64
- package/src/types.ts +0 -44
- package/src/validators/file-mimetype.validator.ts +0 -34
- package/src/validators/index.ts +0 -3
- package/src/validators/is-exists.validator.js +0 -99
- package/src/validators/is-exists.validator.ts +0 -60
- package/src/validators/is-unique.validator.js +0 -131
- package/src/validators/is-unique.validator.ts +0 -93
- package/src/validators/phone-country-code.validator.ts +0 -36
- package/src/validators/same-as.validator.ts +0 -27
- package/src/validators/skip-empty.validator.ts +0 -25
- package/tsconfig.json +0 -26
- package/tsconfig.lib.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
- /package/{src → dist}/boilerplate.polyfill.d.ts +0 -0
- /package/{src → dist}/common/dto/abstract.dto.d.ts +0 -0
- /package/{src → dist}/common/dto/bulk-id.dto.d.ts +0 -0
- /package/{src → dist}/common/dto/create-translation.dto.d.ts +0 -0
- /package/{src → dist}/common/dto/page-meta.dto.d.ts +0 -0
- /package/{src → dist}/common/dto/page-options.dto.d.ts +0 -0
- /package/{src → dist}/common/dto/page.dto.d.ts +0 -0
- /package/{src → dist}/constants/index.d.ts +0 -0
- /package/{src → dist}/constants/index.js +0 -0
- /package/{src → dist}/constants/language-code.d.ts +0 -0
- /package/{src → dist}/constants/order.d.ts +0 -0
- /package/{src → dist}/constants/order.js +0 -0
- /package/{src → dist}/constants/role-type.d.ts +0 -0
- /package/{src → dist}/constants/role-type.js +0 -0
- /package/{src → dist}/constants/token-type.d.ts +0 -0
- /package/{src → dist}/constants/token-type.js +0 -0
- /package/{src → dist}/decorators/api-page-ok-response.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/api-page-ok-response.decorator.js +0 -0
- /package/{src → dist}/decorators/auth-user.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/auth-user.decorator.js +0 -0
- /package/{src → dist}/decorators/controller.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/field.decorators.d.ts +0 -0
- /package/{src → dist}/decorators/http.decorators.d.ts +0 -0
- /package/{src → dist}/decorators/http.decorators.js +0 -0
- /package/{src → dist}/decorators/index.d.ts +0 -0
- /package/{src → dist}/decorators/index.js +0 -0
- /package/{src → dist}/decorators/omni-auth.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/operation.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/operation.decorator.js +0 -0
- /package/{src → dist}/decorators/property.decorators.d.ts +0 -0
- /package/{src → dist}/decorators/public-route.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/swagger.schema.d.ts +0 -0
- /package/{src → dist}/decorators/timestamp-column.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/translate.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/use-dto.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/use-dto.decorator.js +0 -0
- /package/{src → dist}/decorators/user-check.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/user.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/user_auth.decorator.d.ts +0 -0
- /package/{src → dist}/decorators/user_auth.decorator.js +0 -0
- /package/{src → dist}/decorators/validator.decorators.d.ts +0 -0
- /package/{src → dist}/decorators/validator.decorators.js +0 -0
- /package/{src → dist}/exceptions/file-not-image.exception.d.ts +0 -0
- /package/{src → dist}/exceptions/file-not-image.exception.js +0 -0
- /package/{src → dist}/exceptions/index.d.ts +0 -0
- /package/{src → dist}/exceptions/index.js +0 -0
- /package/{src → dist}/exceptions/page-type.exception.d.ts +0 -0
- /package/{src → dist}/exceptions/page-type.exception.js +0 -0
- /package/{src → dist}/exceptions/user-not-found.exception.d.ts +0 -0
- /package/{src → dist}/exceptions/user-not-found.exception.js +0 -0
- /package/{src → dist}/filters/bad-request.filter.d.ts +0 -0
- /package/{src → dist}/filters/constraint-errors.d.ts +0 -0
- /package/{src → dist}/filters/index.d.ts +0 -0
- /package/{src → dist}/filters/index.js +0 -0
- /package/{src → dist}/filters/query-failed.filter.d.ts +0 -0
- /package/{src → dist}/health-checker/health-checker.controller.d.ts +0 -0
- /package/{src → dist}/health-checker/health-checker.module.d.ts +0 -0
- /package/{src → dist}/health-checker/health-indicators/service.indicator.d.ts +0 -0
- /package/{src → dist}/helpers/index.d.ts +0 -0
- /package/{src → dist}/helpers/index.js +0 -0
- /package/{src → dist}/index.d.ts +0 -0
- /package/{src → dist}/interceptors/auth-user.interceptor.d.ts +0 -0
- /package/{src → dist}/interceptors/index.d.ts +0 -0
- /package/{src → dist}/interceptors/index.js +0 -0
- /package/{src → dist}/interceptors/language-interceptor.service.d.ts +0 -0
- /package/{src → dist}/interceptors/translation-interceptor.service.d.ts +0 -0
- /package/{src → dist}/interfaces/IApiFile.d.ts +0 -0
- /package/{src → dist}/interfaces/IApiFile.js +0 -0
- /package/{src → dist}/interfaces/IFile.d.ts +0 -0
- /package/{src → dist}/interfaces/IFile.js +0 -0
- /package/{src → dist}/interfaces/ITranslationDecoratorInterface.d.ts +0 -0
- /package/{src → dist}/interfaces/ITranslationDecoratorInterface.js +0 -0
- /package/{src → dist}/interfaces/index.d.ts +0 -0
- /package/{src → dist}/interfaces/index.js +0 -0
- /package/{src → dist}/interfaces/response.d.ts +0 -0
- /package/{src → dist}/interfaces/response.js +0 -0
- /package/{src → dist}/middlewares/index.d.ts +0 -0
- /package/{src → dist}/middlewares/index.js +0 -0
- /package/{src → dist}/middlewares/omni-auth.middleware.d.ts +0 -0
- /package/{src → dist}/middlewares/omni-auth.middleware.js +0 -0
- /package/{src → dist}/middlewares/powerby.middleware.d.ts +0 -0
- /package/{src → dist}/middlewares/powerby.middleware.js +0 -0
- /package/{src → dist}/middlewares/request-id.middleware.d.ts +0 -0
- /package/{src → dist}/middlewares/request-id.middleware.js +0 -0
- /package/{src → dist}/providers/context.provider.d.ts +0 -0
- /package/{src → dist}/providers/index.d.ts +0 -0
- /package/{src → dist}/providers/index.js +0 -0
- /package/{src → dist}/setup/bootstrap.setup.d.ts +0 -0
- /package/{src → dist}/setup/index.d.ts +0 -0
- /package/{src → dist}/setup/index.js +0 -0
- /package/{src → dist}/setup-swagger.d.ts +0 -0
- /package/{src → dist}/setup-swagger.js +0 -0
- /package/{src → dist}/shared/index.d.ts +0 -0
- /package/{src → dist}/shared/index.js +0 -0
- /package/{src → dist}/shared/serviceRegistryModule.d.ts +0 -0
- /package/{src → dist}/shared/services/aws-s3.service.d.ts +0 -0
- /package/{src → dist}/shared/services/generator.service.d.ts +0 -0
- /package/{src → dist}/shared/services/index.d.ts +0 -0
- /package/{src → dist}/shared/services/index.js +0 -0
- /package/{src → dist}/shared/services/translation.service.d.ts +0 -0
- /package/{src → dist}/shared/services/validator.service.d.ts +0 -0
- /package/{src → dist}/snake-naming.strategy.d.ts +0 -0
- /package/{src → dist}/snake-naming.strategy.js +0 -0
- /package/{src → dist}/types.d.ts +0 -0
- /package/{src → dist}/types.js +0 -0
- /package/{src → dist}/validators/file-mimetype.validator.d.ts +0 -0
- /package/{src → dist}/validators/file-mimetype.validator.js +0 -0
- /package/{src → dist}/validators/index.d.ts +0 -0
- /package/{src → dist}/validators/index.js +0 -0
- /package/{src → dist}/validators/is-exists.validator.d.ts +0 -0
- /package/{src → dist}/validators/is-unique.validator.d.ts +0 -0
- /package/{src → dist}/validators/phone-country-code.validator.d.ts +0 -0
- /package/{src → dist}/validators/phone-country-code.validator.js +0 -0
- /package/{src → dist}/validators/same-as.validator.d.ts +0 -0
- /package/{src → dist}/validators/same-as.validator.js +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserData = exports.User = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const lodash = require("lodash");
|
|
6
|
+
exports.User = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
7
|
+
return getUserData(ctx.switchToHttp().getRequest(), data);
|
|
8
|
+
});
|
|
9
|
+
function getUserData(req, data) {
|
|
10
|
+
const headers = req.headers;
|
|
11
|
+
if (lodash.isEmpty(headers['x-userid']) ||
|
|
12
|
+
lodash.isEmpty(headers['x-username'])) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const user = {
|
|
16
|
+
uid: headers['x-userid'],
|
|
17
|
+
username: headers['x-username'],
|
|
18
|
+
};
|
|
19
|
+
return data ? user[data] : user;
|
|
20
|
+
}
|
|
21
|
+
exports.getUserData = getUserData;
|
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.getUserData = exports.User = void 0;
|
|
27
4
|
const common_1 = require("@nestjs/common");
|
|
28
|
-
const lodash =
|
|
5
|
+
const lodash = require("lodash");
|
|
29
6
|
const config_1 = require("@nestjs/config");
|
|
30
7
|
exports.User = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
31
8
|
return getUserData(ctx.switchToHttp().getRequest(), data);
|
|
@@ -37,7 +14,6 @@ function getUserData(req, data) {
|
|
|
37
14
|
username: '',
|
|
38
15
|
};
|
|
39
16
|
const configService = new config_1.ConfigService(req);
|
|
40
|
-
// 未通过网关透传用户信息且处于local开发环境,则从配置获取用户信息
|
|
41
17
|
if (lodash.isEmpty(headers['x-userid']) ||
|
|
42
18
|
lodash.isEmpty(headers['x-username'])) {
|
|
43
19
|
if (process.env.NODE_ENV === 'dev') {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.HttpExceptionFilter = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const typeorm_1 = require("typeorm");
|
|
12
|
+
const nestjs_i18n_1 = require("nestjs-i18n");
|
|
13
|
+
let HttpExceptionFilter = class HttpExceptionFilter {
|
|
14
|
+
catch(exception, host) {
|
|
15
|
+
const i18n = nestjs_i18n_1.I18nContext.current(host);
|
|
16
|
+
const ctx = host.switchToHttp();
|
|
17
|
+
const response = ctx.getResponse();
|
|
18
|
+
const request = ctx.getRequest();
|
|
19
|
+
let statusCode = exception instanceof common_1.HttpException ? exception.getStatus() : 500;
|
|
20
|
+
let error = exception instanceof common_1.HttpException
|
|
21
|
+
? exception.message
|
|
22
|
+
: 'Internal server error';
|
|
23
|
+
if (exception instanceof typeorm_1.EntityNotFoundError) {
|
|
24
|
+
statusCode = 404;
|
|
25
|
+
error = 'Entity not found';
|
|
26
|
+
}
|
|
27
|
+
if (statusCode === 500) {
|
|
28
|
+
console.error(exception);
|
|
29
|
+
}
|
|
30
|
+
const getFirstError = (error, property = '') => {
|
|
31
|
+
var _a;
|
|
32
|
+
if (((_a = error === null || error === void 0 ? void 0 : error.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
33
|
+
const firstError = error.children[0];
|
|
34
|
+
firstError['property'] = `${property}.${firstError['property']}`;
|
|
35
|
+
return getFirstError(firstError, firstError.property);
|
|
36
|
+
}
|
|
37
|
+
return error;
|
|
38
|
+
};
|
|
39
|
+
if (exception instanceof nestjs_i18n_1.I18nValidationException) {
|
|
40
|
+
const firstErros = getFirstError(exception.errors[0], exception.errors[0].property);
|
|
41
|
+
const constraint = Object.values(firstErros.constraints)[0];
|
|
42
|
+
const [translationKey, argsString] = constraint.split('|');
|
|
43
|
+
const args = !!argsString ? JSON.parse(argsString) : {};
|
|
44
|
+
error = i18n.translate(translationKey, {
|
|
45
|
+
args: Object.assign({ property: firstErros.property, value: firstErros.value, constraints: firstErros.constraints }, args),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const parseJson = {
|
|
49
|
+
code: statusCode,
|
|
50
|
+
msg: error,
|
|
51
|
+
requestId: request.id,
|
|
52
|
+
timestamp: new Date().toISOString(),
|
|
53
|
+
};
|
|
54
|
+
return response.status(200).json(parseJson);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.HttpExceptionFilter = HttpExceptionFilter;
|
|
58
|
+
exports.HttpExceptionFilter = HttpExceptionFilter = __decorate([
|
|
59
|
+
(0, common_1.Catch)()
|
|
60
|
+
], HttpExceptionFilter);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.QueryFailedFilter = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const core_1 = require("@nestjs/core");
|
|
15
|
+
const http_1 = require("http");
|
|
16
|
+
const typeorm_1 = require("typeorm");
|
|
17
|
+
const constraint_errors_1 = require("./constraint-errors");
|
|
18
|
+
let QueryFailedFilter = class QueryFailedFilter {
|
|
19
|
+
constructor(reflector) {
|
|
20
|
+
this.reflector = reflector;
|
|
21
|
+
}
|
|
22
|
+
catch(exception, host) {
|
|
23
|
+
var _a;
|
|
24
|
+
const ctx = host.switchToHttp();
|
|
25
|
+
const response = ctx.getResponse();
|
|
26
|
+
const status = ((_a = exception.constraint) === null || _a === void 0 ? void 0 : _a.startsWith('UQ'))
|
|
27
|
+
? common_1.HttpStatus.CONFLICT
|
|
28
|
+
: common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
29
|
+
response.status(status).json({
|
|
30
|
+
code: status,
|
|
31
|
+
error: http_1.STATUS_CODES[status],
|
|
32
|
+
msg: exception.constraint
|
|
33
|
+
? constraint_errors_1.constraintErrors[exception.constraint]
|
|
34
|
+
: undefined,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.QueryFailedFilter = QueryFailedFilter;
|
|
39
|
+
exports.QueryFailedFilter = QueryFailedFilter = __decorate([
|
|
40
|
+
(0, common_1.Catch)(typeorm_1.QueryFailedError),
|
|
41
|
+
__metadata("design:paramtypes", [core_1.Reflector])
|
|
42
|
+
], QueryFailedFilter);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.HealthCheckerController = void 0;
|
|
22
|
+
const ioredis_1 = require("ioredis");
|
|
23
|
+
const common_1 = require("@nestjs/common");
|
|
24
|
+
const terminus_1 = require("@nestjs/terminus");
|
|
25
|
+
const service_indicator_1 = require("./health-indicators/service.indicator");
|
|
26
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
27
|
+
const nestjs_redis_health_1 = require("@liaoliaots/nestjs-redis-health");
|
|
28
|
+
const services_1 = require("../shared/services");
|
|
29
|
+
let HealthCheckerController = class HealthCheckerController {
|
|
30
|
+
constructor(configService, healthCheckService, ormIndicator, serviceIndicator, redisIndicator) {
|
|
31
|
+
this.configService = configService;
|
|
32
|
+
this.healthCheckService = healthCheckService;
|
|
33
|
+
this.ormIndicator = ormIndicator;
|
|
34
|
+
this.serviceIndicator = serviceIndicator;
|
|
35
|
+
this.redisIndicator = redisIndicator;
|
|
36
|
+
if (this.configService.isRedisEnabled) {
|
|
37
|
+
this.redis = new ioredis_1.default(this.configService.ioRedisConfig);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
check() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const indicator = [
|
|
43
|
+
() => this.ormIndicator.pingCheck('database', { timeout: 1500 }),
|
|
44
|
+
];
|
|
45
|
+
if (this.configService.isRedisEnabled) {
|
|
46
|
+
indicator.push(() => this.redisIndicator.checkHealth('redis', {
|
|
47
|
+
type: 'redis',
|
|
48
|
+
client: this.redis,
|
|
49
|
+
timeout: 1500,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
return this.healthCheckService.check(indicator);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.HealthCheckerController = HealthCheckerController;
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, common_1.Get)(),
|
|
59
|
+
(0, terminus_1.HealthCheck)(),
|
|
60
|
+
(0, swagger_1.ApiOperation)({ summary: 'Service health check' }),
|
|
61
|
+
__metadata("design:type", Function),
|
|
62
|
+
__metadata("design:paramtypes", []),
|
|
63
|
+
__metadata("design:returntype", Promise)
|
|
64
|
+
], HealthCheckerController.prototype, "check", null);
|
|
65
|
+
exports.HealthCheckerController = HealthCheckerController = __decorate([
|
|
66
|
+
(0, common_1.Controller)('health'),
|
|
67
|
+
__metadata("design:paramtypes", [services_1.ApiConfigService,
|
|
68
|
+
terminus_1.HealthCheckService,
|
|
69
|
+
terminus_1.TypeOrmHealthIndicator,
|
|
70
|
+
service_indicator_1.ServiceHealthIndicator,
|
|
71
|
+
nestjs_redis_health_1.RedisHealthIndicator])
|
|
72
|
+
], HealthCheckerController);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.HealthCheckerModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const terminus_1 = require("@nestjs/terminus");
|
|
12
|
+
const nestjs_redis_health_1 = require("@liaoliaots/nestjs-redis-health");
|
|
13
|
+
const health_checker_controller_1 = require("./health-checker.controller");
|
|
14
|
+
const service_indicator_1 = require("./health-indicators/service.indicator");
|
|
15
|
+
const services_1 = require("../shared/services");
|
|
16
|
+
let HealthCheckerModule = class HealthCheckerModule {
|
|
17
|
+
};
|
|
18
|
+
exports.HealthCheckerModule = HealthCheckerModule;
|
|
19
|
+
exports.HealthCheckerModule = HealthCheckerModule = __decorate([
|
|
20
|
+
(0, common_1.Module)({
|
|
21
|
+
imports: [terminus_1.TerminusModule, nestjs_redis_health_1.RedisHealthModule],
|
|
22
|
+
controllers: [health_checker_controller_1.HealthCheckerController],
|
|
23
|
+
providers: [services_1.ApiConfigService, service_indicator_1.ServiceHealthIndicator],
|
|
24
|
+
})
|
|
25
|
+
], HealthCheckerModule);
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.ServiceHealthIndicator = void 0;
|
|
25
|
+
const common_1 = require("@nestjs/common");
|
|
26
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
27
|
+
const terminus_1 = require("@nestjs/terminus");
|
|
28
|
+
const rxjs_1 = require("rxjs");
|
|
29
|
+
const operators_1 = require("rxjs/operators");
|
|
30
|
+
let ServiceHealthIndicator = class ServiceHealthIndicator extends terminus_1.HealthIndicator {
|
|
31
|
+
constructor(clientProxy) {
|
|
32
|
+
super();
|
|
33
|
+
this.clientProxy = clientProxy;
|
|
34
|
+
}
|
|
35
|
+
isHealthy(eventName) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
try {
|
|
38
|
+
if (!this.clientProxy) {
|
|
39
|
+
return {
|
|
40
|
+
[eventName]: {
|
|
41
|
+
status: 'down',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const result = yield (0, rxjs_1.firstValueFrom)(this.clientProxy.send(eventName, { check: true }).pipe((0, operators_1.timeout)(10000)), {
|
|
46
|
+
defaultValue: undefined,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
[eventName]: result,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw new terminus_1.HealthCheckError(`${eventName} failed`, {
|
|
54
|
+
[eventName]: error,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.ServiceHealthIndicator = ServiceHealthIndicator;
|
|
61
|
+
exports.ServiceHealthIndicator = ServiceHealthIndicator = __decorate([
|
|
62
|
+
(0, common_1.Injectable)(),
|
|
63
|
+
__param(0, (0, common_1.Optional)()),
|
|
64
|
+
__param(0, (0, common_1.Inject)('NATS_SERVICE')),
|
|
65
|
+
__metadata("design:paramtypes", [microservices_1.ClientProxy])
|
|
66
|
+
], ServiceHealthIndicator);
|
|
@@ -2,22 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getIPAdress = exports.randomString = exports.enumToArray = void 0;
|
|
4
4
|
const os_1 = require("os");
|
|
5
|
-
/**
|
|
6
|
-
* 将枚举值转换成数组
|
|
7
|
-
* @param Enum 枚举
|
|
8
|
-
*/
|
|
9
5
|
function enumToArray(Enum) {
|
|
10
6
|
return Object.keys(Enum)
|
|
11
7
|
.filter((key) => typeof Enum[key] === 'number')
|
|
12
8
|
.map((key) => Enum[key]);
|
|
13
9
|
}
|
|
14
10
|
exports.enumToArray = enumToArray;
|
|
15
|
-
/**
|
|
16
|
-
* 生成随机字符串
|
|
17
|
-
* @param {number} length 生成长度
|
|
18
|
-
* @param {string} charSet 指定字符集
|
|
19
|
-
* @returns {string} 生成字符串
|
|
20
|
-
*/
|
|
21
11
|
const randomString = (length = 8, charSet) => {
|
|
22
12
|
charSet =
|
|
23
13
|
charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
@@ -29,9 +19,6 @@ const randomString = (length = 8, charSet) => {
|
|
|
29
19
|
return randomString;
|
|
30
20
|
};
|
|
31
21
|
exports.randomString = randomString;
|
|
32
|
-
/**
|
|
33
|
-
* 获取服务部署 IP 地址
|
|
34
|
-
*/
|
|
35
22
|
function getIPAdress() {
|
|
36
23
|
const interfaces = (0, os_1.networkInterfaces)();
|
|
37
24
|
for (const devName in interfaces) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ColumnOptions } from 'typeorm/decorator/options/ColumnOptions';
|
|
2
2
|
export declare function timestamp(value?: number): number;
|
|
3
|
-
export declare function strToTimeStamp(str: string | Date):
|
|
3
|
+
export declare function strToTimeStamp(str: string | Date): number;
|
|
4
4
|
export declare function getTodayTimeStamp(): {
|
|
5
|
-
startTime:
|
|
6
|
-
endTime:
|
|
5
|
+
startTime: number;
|
|
6
|
+
endTime: number;
|
|
7
7
|
};
|
|
8
8
|
export declare function unixtimestampToDate(value: number): Date;
|
|
9
9
|
export declare function formatDateTime(value: number | string, format?: string, holder?: string | null): string;
|
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.timestampColumn = exports.formatDateTime = exports.unixtimestampToDate = exports.getTodayTimeStamp = exports.strToTimeStamp = exports.timestamp = void 0;
|
|
27
|
-
const moment =
|
|
28
|
-
const _ =
|
|
4
|
+
const moment = require("moment");
|
|
5
|
+
const _ = require("lodash");
|
|
29
6
|
function timestamp(value) {
|
|
30
7
|
if (!value) {
|
|
31
8
|
value = moment.now();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"NOT_EMPTY": "{property} cannot be empty",
|
|
3
|
+
"NOT_EQUALS": "{property} should not be equal to {constraints.1}",
|
|
4
|
+
"LENGTH": "{property} needs to be at least {constraints.0} and at most {constraints.1} characters long",
|
|
5
|
+
"MIN_LENGTH": "{property} needs to be at least {constraints.0} characters long",
|
|
6
|
+
"MAX_LENGTH": "{property} needs to be at most {constraints.0} characters long",
|
|
7
|
+
"INVALID_EMAIL": " {property} is invalid email",
|
|
8
|
+
"INVALID_BOOLEAN": "{property} is not a boolean",
|
|
9
|
+
"MIN": "{property} with value: \"{value}\" needs to be at least {constraints.0}",
|
|
10
|
+
"MAX": "{property} with value: \"{value}\" needs to be less than {constraints.0}",
|
|
11
|
+
"NOT_FOUND": "Not Found",
|
|
12
|
+
"DELETE_FAILED": "Gagal menghapus data",
|
|
13
|
+
"FILE_NOT_EMPTY": "File tidak boleh kosong",
|
|
14
|
+
"FILE_ONLY_EXCEL": "Hanya menerima extensi xlsx, xls",
|
|
15
|
+
"EMAIL_EXISTS": "email already exits",
|
|
16
|
+
"CONFIRM_PASSWORD_NOT_MATCH": "confirm password not match",
|
|
17
|
+
"INVALID_STRING": "{property} must be a string",
|
|
18
|
+
"INVALID_DATETIME": "{property} is not a valid date",
|
|
19
|
+
"IS_NUMBER": "{property} must be a number",
|
|
20
|
+
"IS_ENUM": "{property} must be one of the following values: {constraints.1}",
|
|
21
|
+
"IS_STRING": "{property} must be a string",
|
|
22
|
+
"IS_ARRAY": "{property} must be an array",
|
|
23
|
+
"IS_URL": "{property} must be a URL",
|
|
24
|
+
"IS_UUID": "{property} must be a UUID",
|
|
25
|
+
"IS_DATE": "{property} must be a Date instance",
|
|
26
|
+
"MIN_DATE": "{property} should be later than {constraints.0}",
|
|
27
|
+
"MIN_DATE_NOW": "{property} should be later than the current time",
|
|
28
|
+
"MAX_DATE": "{property} should be earlier than {constraints.0}",
|
|
29
|
+
"MAX_DATE_NOW": "{property} should be earlier than current time",
|
|
30
|
+
"IS_IN": "{property} must be one of the following values: {constraints.1}",
|
|
31
|
+
"IS_INT": "{property} must be an integer number",
|
|
32
|
+
"IS_POSITIVE": "{property} must be a positive number",
|
|
33
|
+
"IS_NOT_EMPTY": "{property} should not be empty",
|
|
34
|
+
"IS_UNIQUE": "{property} with the same value `{value}` exists",
|
|
35
|
+
"IS_EXISTS": "{property} value `{value}` does not exists",
|
|
36
|
+
"IS_FQDN": "{property} value `{value}` not a valid FQDN",
|
|
37
|
+
"IS_IP": "{property} value `{value}` not a valid IP"
|
|
38
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"NOT_EMPTY": "{property}不能为空",
|
|
3
|
+
"NOT_EQUALS": "{property}不能等于{constraints.1}",
|
|
4
|
+
"LENGTH": "{property}长度必须在{constraints.0}到{constraints.1}个字符之间",
|
|
5
|
+
"MIN_LENGTH": "{property}长度至少为{constraints.0}个字符",
|
|
6
|
+
"MAX_LENGTH": "{property}长度不能超过{constraints.0}个字符",
|
|
7
|
+
"INVALID_EMAIL": "{property}不是有效电子邮件",
|
|
8
|
+
"INVALID_BOOLEAN": "{property}不是布尔值",
|
|
9
|
+
"MIN": "{property}必须大于{constraints.0}",
|
|
10
|
+
"MAX": "{property}必须小于{constraints.0}",
|
|
11
|
+
"NOT_FOUND": "未找到",
|
|
12
|
+
"DELETE_FAILED": "删除数据失败",
|
|
13
|
+
"FILE_NOT_EMPTY": "文件不能为空",
|
|
14
|
+
"FILE_ONLY_EXCEL": "只接受xlsx、xls文件",
|
|
15
|
+
"EMAIL_EXISTS": "电子邮件已存在",
|
|
16
|
+
"CONFIRM_PASSWORD_NOT_MATCH": "确认密码不匹配",
|
|
17
|
+
"INVALID_STRING": "{property}必须是一个字符串",
|
|
18
|
+
"INVALID_DATETIME": "{property}不是一个有效日期",
|
|
19
|
+
"IS_NUMBER": "{property}必须是一个数字",
|
|
20
|
+
"IS_ENUM": "{property}必须是以下值之一:{constraints.1}",
|
|
21
|
+
"IS_STRING": "{property}必须是一个字符串",
|
|
22
|
+
"IS_ARRAY": "{property}必须是一个数组",
|
|
23
|
+
"IS_URL": "{property}必须是一个URL",
|
|
24
|
+
"IS_UUID": "{property}必须是一个UUID",
|
|
25
|
+
"IS_DATE": "{property}必须是一个日期实例",
|
|
26
|
+
"MIN_DATE": "{property}日期不早于{constraints.0}",
|
|
27
|
+
"MAX_DATE": "{property}日期不晚于{constraints.0}",
|
|
28
|
+
"MIN_DATE_NOW": "{property}日期不早于当前时间",
|
|
29
|
+
"MAX_DATE_NOW": "{property}日期不晚于当前时间",
|
|
30
|
+
"IS_IN": "{property}必须是以下值之一:{constraints}",
|
|
31
|
+
"IS_INT": "{property}必须是一个整数",
|
|
32
|
+
"IS_POSITIVE": "{property}必须是一个正数",
|
|
33
|
+
"IS_NOT_EMPTY": "{property}不能为空",
|
|
34
|
+
"IS_UNIQUE": "存在相同值为`{value}`的{property}",
|
|
35
|
+
"IS_EXISTS": "{property}值`{value}`不存在",
|
|
36
|
+
"IS_FQDN": "{property} value `{value}` 必须是有效域名",
|
|
37
|
+
"IS_IP": "{property} value `{value}` 必须是有效IP"
|
|
38
|
+
}
|
package/{src → dist}/index.js
RENAMED
|
@@ -20,7 +20,6 @@ __exportStar(require("./exceptions"), exports);
|
|
|
20
20
|
__exportStar(require("./filters"), exports);
|
|
21
21
|
__exportStar(require("./interfaces"), exports);
|
|
22
22
|
__exportStar(require("./interceptors"), exports);
|
|
23
|
-
// export * from './mutiltenancy';
|
|
24
23
|
__exportStar(require("./shared"), exports);
|
|
25
24
|
__exportStar(require("./types"), exports);
|
|
26
25
|
__exportStar(require("./snake-naming.strategy"), exports);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AuthUserInterceptor = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const providers_1 = require("../providers");
|
|
12
|
+
const omni_auth_decorator_1 = require("../decorators/omni-auth.decorator");
|
|
13
|
+
let AuthUserInterceptor = class AuthUserInterceptor {
|
|
14
|
+
intercept(context, next) {
|
|
15
|
+
const req = context.switchToHttp().getRequest();
|
|
16
|
+
req.user = (0, omni_auth_decorator_1.getOmniAuthData)(req);
|
|
17
|
+
providers_1.ContextProvider.setAuthUser(req.user);
|
|
18
|
+
return next.handle();
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.AuthUserInterceptor = AuthUserInterceptor;
|
|
22
|
+
exports.AuthUserInterceptor = AuthUserInterceptor = __decorate([
|
|
23
|
+
(0, common_1.Injectable)()
|
|
24
|
+
], AuthUserInterceptor);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.UseLanguageInterceptor = exports.LanguageInterceptor = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
const providers_1 = require("../providers");
|
|
13
|
+
let LanguageInterceptor = class LanguageInterceptor {
|
|
14
|
+
intercept(context, next) {
|
|
15
|
+
const request = context.switchToHttp().getRequest();
|
|
16
|
+
const language = request.headers['x-language-code'];
|
|
17
|
+
if (constants_1.LanguageCode[language]) {
|
|
18
|
+
providers_1.ContextProvider.setLanguage(language);
|
|
19
|
+
}
|
|
20
|
+
return next.handle();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.LanguageInterceptor = LanguageInterceptor;
|
|
24
|
+
exports.LanguageInterceptor = LanguageInterceptor = __decorate([
|
|
25
|
+
(0, common_1.Injectable)()
|
|
26
|
+
], LanguageInterceptor);
|
|
27
|
+
function UseLanguageInterceptor() {
|
|
28
|
+
return (0, common_1.UseInterceptors)(LanguageInterceptor);
|
|
29
|
+
}
|
|
30
|
+
exports.UseLanguageInterceptor = UseLanguageInterceptor;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TranslationInterceptor = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const operators_1 = require("rxjs/operators");
|
|
12
|
+
let TranslationInterceptor = class TranslationInterceptor {
|
|
13
|
+
intercept(context, next) {
|
|
14
|
+
const ctx = context.switchToHttp();
|
|
15
|
+
const req = ctx.getRequest();
|
|
16
|
+
const res = ctx.getResponse();
|
|
17
|
+
return next.handle().pipe((0, operators_1.map)((data) => {
|
|
18
|
+
if (res.statusCode === common_1.HttpStatus.CREATED) {
|
|
19
|
+
res.status(common_1.HttpStatus.OK);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
code: 200,
|
|
23
|
+
data,
|
|
24
|
+
msg: 'success',
|
|
25
|
+
requestId: req.id,
|
|
26
|
+
timestamp: new Date().toISOString(),
|
|
27
|
+
};
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.TranslationInterceptor = TranslationInterceptor;
|
|
32
|
+
exports.TranslationInterceptor = TranslationInterceptor = __decorate([
|
|
33
|
+
(0, common_1.Injectable)()
|
|
34
|
+
], TranslationInterceptor);
|
|
@@ -7,7 +7,6 @@ class ContextProvider {
|
|
|
7
7
|
const store = nestjs_cls_1.ClsServiceManager.getClsService();
|
|
8
8
|
return store.get(ContextProvider.getKeyWithNamespace(key));
|
|
9
9
|
}
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
10
|
static set(key, value) {
|
|
12
11
|
const store = nestjs_cls_1.ClsServiceManager.getClsService();
|
|
13
12
|
store.set(ContextProvider.getKeyWithNamespace(key), value);
|
|
@@ -24,7 +23,6 @@ class ContextProvider {
|
|
|
24
23
|
static getRouter() {
|
|
25
24
|
const value = ContextProvider.get(ContextProvider.routerKey);
|
|
26
25
|
if (value) {
|
|
27
|
-
// @ts-ignore
|
|
28
26
|
return value;
|
|
29
27
|
}
|
|
30
28
|
return {
|
|
@@ -5,9 +5,5 @@ export declare class GeneratorProvider {
|
|
|
5
5
|
static getS3Key(publicUrl: string): string;
|
|
6
6
|
static generateVerificationCode(): string;
|
|
7
7
|
static generatePassword(): string;
|
|
8
|
-
/**
|
|
9
|
-
* generate random string
|
|
10
|
-
* @param length
|
|
11
|
-
*/
|
|
12
8
|
static generateRandomString(length: number): string;
|
|
13
9
|
}
|