@nest-omni/core 1.0.7 → 1.0.9
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/package.json +4 -1
- package/src/boilerplate.polyfill.d.ts +0 -39
- package/src/boilerplate.polyfill.js +0 -78
- package/src/boilerplate.polyfill.ts +0 -202
- package/src/common/abstract-client.service.d.ts +0 -20
- package/src/common/abstract-client.service.js +0 -39
- package/src/common/abstract-client.service.ts +0 -56
- package/src/common/abstract.entity.d.ts +0 -24
- package/src/common/abstract.entity.js +0 -152
- package/src/common/abstract.entity.ts +0 -73
- package/src/common/dto/abstract.dto.d.ts +0 -13
- 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.d.ts +0 -3
- 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.d.ts +0 -5
- 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.d.ts +0 -15
- 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.d.ts +0 -8
- 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.d.ts +0 -11
- package/src/common/dto/page.dto.js +0 -94
- package/src/common/dto/page.dto.ts +0 -36
- package/src/common/utils.d.ts +0 -14
- package/src/common/utils.js +0 -39
- package/src/common/utils.ts +0 -45
- package/src/constants/index.d.ts +0 -4
- package/src/constants/index.js +0 -20
- package/src/constants/index.ts +0 -4
- package/src/constants/language-code.d.ts +0 -5
- package/src/constants/language-code.js +0 -10
- package/src/constants/language-code.ts +0 -7
- package/src/constants/order.d.ts +0 -4
- package/src/constants/order.js +0 -8
- package/src/constants/order.ts +0 -4
- package/src/constants/role-type.d.ts +0 -4
- package/src/constants/role-type.js +0 -8
- package/src/constants/role-type.ts +0 -4
- package/src/constants/token-type.d.ts +0 -4
- package/src/constants/token-type.js +0 -8
- package/src/constants/token-type.ts +0 -4
- package/src/decorators/api-page-ok-response.decorator.d.ts +0 -5
- package/src/decorators/api-page-ok-response.decorator.js +0 -25
- package/src/decorators/api-page-ok-response.decorator.ts +0 -31
- package/src/decorators/auth-user.decorator.d.ts +0 -1
- package/src/decorators/auth-user.decorator.js +0 -15
- package/src/decorators/auth-user.decorator.ts +0 -16
- package/src/decorators/controller.decorator.d.ts +0 -1
- package/src/decorators/controller.decorator.js +0 -34
- package/src/decorators/controller.decorator.ts +0 -8
- package/src/decorators/field.decorators.d.ts +0 -71
- package/src/decorators/field.decorators.js +0 -455
- package/src/decorators/field.decorators.ts +0 -773
- package/src/decorators/http.decorators.d.ts +0 -3
- package/src/decorators/http.decorators.js +0 -8
- package/src/decorators/http.decorators.ts +0 -10
- package/src/decorators/index.d.ts +0 -12
- package/src/decorators/index.js +0 -28
- package/src/decorators/index.ts +0 -12
- package/src/decorators/omni-auth.decorator.d.ts +0 -8
- package/src/decorators/omni-auth.decorator.js +0 -60
- package/src/decorators/omni-auth.decorator.ts +0 -46
- package/src/decorators/operation.decorator.d.ts +0 -1
- package/src/decorators/operation.decorator.js +0 -6
- package/src/decorators/operation.decorator.ts +0 -4
- package/src/decorators/property.decorators.d.ts +0 -15
- package/src/decorators/property.decorators.js +0 -36
- package/src/decorators/property.decorators.ts +0 -62
- package/src/decorators/public-route.decorator.d.ts +0 -3
- package/src/decorators/public-route.decorator.js +0 -8
- package/src/decorators/public-route.decorator.ts +0 -8
- package/src/decorators/swagger.schema.d.ts +0 -5
- package/src/decorators/swagger.schema.js +0 -82
- package/src/decorators/swagger.schema.ts +0 -117
- package/src/decorators/timestamp-column.decorator.d.ts +0 -1
- package/src/decorators/timestamp-column.decorator.js +0 -28
- package/src/decorators/timestamp-column.decorator.ts +0 -29
- package/src/decorators/transform.decorators.d.ts +0 -35
- package/src/decorators/transform.decorators.js +0 -122
- package/src/decorators/transform.decorators.ts +0 -147
- package/src/decorators/translate.decorator.d.ts +0 -5
- package/src/decorators/translate.decorator.js +0 -18
- package/src/decorators/translate.decorator.ts +0 -19
- package/src/decorators/use-dto.decorator.d.ts +0 -4
- package/src/decorators/use-dto.decorator.js +0 -9
- package/src/decorators/use-dto.decorator.ts +0 -11
- package/src/decorators/user-check.decorator.d.ts +0 -6
- package/src/decorators/user-check.decorator.js +0 -44
- package/src/decorators/user-check.decorator.ts +0 -30
- package/src/decorators/user.decorator.d.ts +0 -8
- package/src/decorators/user.decorator.js +0 -62
- package/src/decorators/user.decorator.ts +0 -48
- package/src/decorators/user_auth.decorator.d.ts +0 -1
- package/src/decorators/user_auth.decorator.js +0 -16
- package/src/decorators/user_auth.decorator.ts +0 -15
- package/src/decorators/validator.decorators.d.ts +0 -10
- package/src/decorators/validator.decorators.js +0 -59
- package/src/decorators/validator.decorators.ts +0 -78
- package/src/exceptions/file-not-image.exception.d.ts +0 -4
- package/src/exceptions/file-not-image.exception.js +0 -10
- package/src/exceptions/file-not-image.exception.ts +0 -7
- package/src/exceptions/index.d.ts +0 -2
- package/src/exceptions/index.js +0 -18
- package/src/exceptions/index.ts +0 -2
- package/src/exceptions/page-type.exception.d.ts +0 -4
- package/src/exceptions/page-type.exception.js +0 -10
- package/src/exceptions/page-type.exception.ts +0 -7
- package/src/exceptions/user-not-found.exception.d.ts +0 -4
- package/src/exceptions/user-not-found.exception.js +0 -10
- package/src/exceptions/user-not-found.exception.ts +0 -7
- package/src/filters/bad-request.filter.d.ts +0 -5
- package/src/filters/bad-request.filter.js +0 -104
- package/src/filters/bad-request.filter.ts +0 -67
- package/src/filters/constraint-errors.d.ts +0 -1
- package/src/filters/constraint-errors.js +0 -7
- package/src/filters/constraint-errors.ts +0 -5
- package/src/filters/index.d.ts +0 -3
- package/src/filters/index.js +0 -19
- package/src/filters/index.ts +0 -3
- package/src/filters/query-failed.filter.d.ts +0 -10
- 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.d.ts +0 -15
- 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.d.ts +0 -2
- 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.d.ts +0 -8
- 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.js +0 -49
- package/src/helpers/common.helper.ts +0 -49
- package/src/helpers/date.helper.d.ts +0 -10
- package/src/helpers/date.helper.js +0 -81
- 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.d.ts +0 -3
- package/src/helpers/index.js +0 -19
- 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.d.ts +0 -11
- package/src/index.js +0 -28
- package/src/index.ts +0 -12
- package/src/interceptors/auth-user.interceptor.d.ts +0 -4
- package/src/interceptors/auth-user.interceptor.js +0 -68
- package/src/interceptors/auth-user.interceptor.ts +0 -20
- package/src/interceptors/index.d.ts +0 -2
- package/src/interceptors/index.js +0 -18
- package/src/interceptors/index.ts +0 -2
- package/src/interceptors/language-interceptor.service.d.ts +0 -6
- package/src/interceptors/language-interceptor.service.js +0 -74
- package/src/interceptors/language-interceptor.service.ts +0 -31
- package/src/interceptors/translation-interceptor.service.d.ts +0 -5
- package/src/interceptors/translation-interceptor.service.js +0 -83
- package/src/interceptors/translation-interceptor.service.ts +0 -43
- package/src/interfaces/IApiFile.d.ts +0 -4
- package/src/interfaces/IApiFile.js +0 -2
- package/src/interfaces/IApiFile.ts +0 -4
- package/src/interfaces/IFile.d.ts +0 -9
- package/src/interfaces/IFile.js +0 -2
- package/src/interfaces/IFile.ts +0 -8
- package/src/interfaces/ITranslationDecoratorInterface.d.ts +0 -3
- package/src/interfaces/ITranslationDecoratorInterface.js +0 -2
- package/src/interfaces/ITranslationDecoratorInterface.ts +0 -3
- package/src/interfaces/index.d.ts +0 -3
- package/src/interfaces/index.js +0 -19
- package/src/interfaces/index.ts +0 -3
- package/src/interfaces/response.d.ts +0 -25
- package/src/interfaces/response.js +0 -2
- package/src/interfaces/response.ts +0 -37
- package/src/middlewares/index.d.ts +0 -3
- package/src/middlewares/index.js +0 -19
- package/src/middlewares/index.ts +0 -3
- package/src/middlewares/omni-auth.middleware.d.ts +0 -1
- package/src/middlewares/omni-auth.middleware.js +0 -13
- package/src/middlewares/omni-auth.middleware.ts +0 -10
- package/src/middlewares/powerby.middleware.d.ts +0 -1
- package/src/middlewares/powerby.middleware.js +0 -10
- package/src/middlewares/powerby.middleware.ts +0 -6
- package/src/middlewares/request-id.middleware.d.ts +0 -7
- package/src/middlewares/request-id.middleware.js +0 -22
- package/src/middlewares/request-id.middleware.ts +0 -28
- package/src/providers/context.provider.d.ts +0 -32
- package/src/providers/context.provider.js +0 -73
- package/src/providers/context.provider.ts +0 -98
- package/src/providers/generator.provider.d.ts +0 -13
- package/src/providers/generator.provider.js +0 -54
- package/src/providers/generator.provider.ts +0 -66
- package/src/providers/index.d.ts +0 -2
- package/src/providers/index.js +0 -18
- package/src/providers/index.ts +0 -2
- package/src/setup/bootstrap.setup.d.ts +0 -5
- package/src/setup/bootstrap.setup.js +0 -138
- package/src/setup/bootstrap.setup.ts +0 -139
- package/src/setup/index.d.ts +0 -1
- package/src/setup/index.js +0 -17
- package/src/setup/index.ts +0 -1
- package/src/setup/microservices.setup.js +0 -55
- package/src/setup-swagger.d.ts +0 -2
- package/src/setup-swagger.js +0 -62
- package/src/setup-swagger.ts +0 -67
- package/src/shared/index.d.ts +0 -2
- package/src/shared/index.js +0 -18
- package/src/shared/index.ts +0 -2
- package/src/shared/serviceRegistryModule.d.ts +0 -2
- package/src/shared/serviceRegistryModule.js +0 -176
- package/src/shared/serviceRegistryModule.ts +0 -110
- package/src/shared/services/api-config.service.d.ts +0 -73
- 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.d.ts +0 -10
- 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.d.ts +0 -4
- package/src/shared/services/generator.service.js +0 -67
- package/src/shared/services/generator.service.ts +0 -13
- package/src/shared/services/index.d.ts +0 -5
- package/src/shared/services/index.js +0 -21
- package/src/shared/services/index.ts +0 -5
- package/src/shared/services/translation.service.d.ts +0 -9
- package/src/shared/services/translation.service.js +0 -109
- package/src/shared/services/translation.service.ts +0 -59
- package/src/shared/services/validator.service.d.ts +0 -3
- package/src/shared/services/validator.service.js +0 -64
- package/src/shared/services/validator.service.ts +0 -10
- package/src/snake-naming.strategy.d.ts +0 -11
- package/src/snake-naming.strategy.js +0 -37
- package/src/snake-naming.strategy.ts +0 -64
- package/src/types.d.ts +0 -9
- package/src/types.js +0 -2
- package/src/types.ts +0 -44
- package/src/validators/file-mimetype.validator.d.ts +0 -13
- package/src/validators/file-mimetype.validator.js +0 -21
- package/src/validators/file-mimetype.validator.ts +0 -34
- package/src/validators/index.d.ts +0 -3
- package/src/validators/index.js +0 -19
- package/src/validators/index.ts +0 -3
- package/src/validators/is-exists.validator.d.ts +0 -18
- package/src/validators/is-exists.validator.js +0 -99
- package/src/validators/is-exists.validator.ts +0 -60
- package/src/validators/is-unique.validator.d.ts +0 -17
- 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.d.ts +0 -2
- package/src/validators/phone-country-code.validator.js +0 -30
- package/src/validators/phone-country-code.validator.ts +0 -36
- package/src/validators/same-as.validator.d.ts +0 -2
- package/src/validators/same-as.validator.js +0 -25
- package/src/validators/same-as.validator.ts +0 -27
- package/src/validators/skip-empty.validator.d.ts +0 -6
- package/src/validators/skip-empty.validator.js +0 -23
- package/src/validators/skip-empty.validator.ts +0 -25
- package/tsconfig.json +0 -30
- package/tsconfig.lib.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PhoneNumberSerializer = exports.S3UrlParser = exports.ToUpperCase = exports.ToLowerCase = exports.ToArray = exports.ToInt = exports.ToBoolean = exports.Trim = void 0;
|
|
4
|
-
const class_transformer_1 = require("class-transformer");
|
|
5
|
-
const lodash_1 = require("lodash");
|
|
6
|
-
const providers_1 = require("../providers");
|
|
7
|
-
const libphonenumber_js_1 = require("libphonenumber-js");
|
|
8
|
-
/**
|
|
9
|
-
* @description trim spaces from start and end, replace multiple spaces with one.
|
|
10
|
-
* @example
|
|
11
|
-
* @ApiProperty()
|
|
12
|
-
* @IsString()
|
|
13
|
-
* @Trim()
|
|
14
|
-
* name: string;
|
|
15
|
-
* @returns PropertyDecorator
|
|
16
|
-
* @constructor
|
|
17
|
-
*/
|
|
18
|
-
function Trim() {
|
|
19
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
20
|
-
const value = params.value;
|
|
21
|
-
if ((0, lodash_1.isArray)(value)) {
|
|
22
|
-
return (0, lodash_1.map)(value, (v) => (0, lodash_1.trim)(v).replace(/\s\s+/g, ' '));
|
|
23
|
-
}
|
|
24
|
-
return (0, lodash_1.trim)(value).replace(/\s\s+/g, ' ');
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
exports.Trim = Trim;
|
|
28
|
-
function ToBoolean() {
|
|
29
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
30
|
-
switch (params.value) {
|
|
31
|
-
case 'true':
|
|
32
|
-
return true;
|
|
33
|
-
case 'false':
|
|
34
|
-
return false;
|
|
35
|
-
default:
|
|
36
|
-
return params.value;
|
|
37
|
-
}
|
|
38
|
-
}, { toClassOnly: true });
|
|
39
|
-
}
|
|
40
|
-
exports.ToBoolean = ToBoolean;
|
|
41
|
-
/**
|
|
42
|
-
* @description convert string or number to integer
|
|
43
|
-
* @example
|
|
44
|
-
* @NumberField()
|
|
45
|
-
* @ToInt()
|
|
46
|
-
* name: number;
|
|
47
|
-
* @returns PropertyDecorator
|
|
48
|
-
* @constructor
|
|
49
|
-
*/
|
|
50
|
-
function ToInt() {
|
|
51
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
52
|
-
const value = params.value;
|
|
53
|
-
return Number.parseInt(value, 10);
|
|
54
|
-
}, { toClassOnly: true });
|
|
55
|
-
}
|
|
56
|
-
exports.ToInt = ToInt;
|
|
57
|
-
/**
|
|
58
|
-
* @description transforms to array, specially for query params
|
|
59
|
-
* @example
|
|
60
|
-
* @NumberField()
|
|
61
|
-
* @ToArray()
|
|
62
|
-
* name: number;
|
|
63
|
-
* @constructor
|
|
64
|
-
*/
|
|
65
|
-
function ToArray() {
|
|
66
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
67
|
-
const value = params.value;
|
|
68
|
-
if ((0, lodash_1.isNil)(value)) {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
return (0, lodash_1.castArray)(value);
|
|
72
|
-
}, { toClassOnly: true });
|
|
73
|
-
}
|
|
74
|
-
exports.ToArray = ToArray;
|
|
75
|
-
function ToLowerCase() {
|
|
76
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
77
|
-
const value = params.value;
|
|
78
|
-
if (!value) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
if (!Array.isArray(value)) {
|
|
82
|
-
return value.toLowerCase();
|
|
83
|
-
}
|
|
84
|
-
return value.map((v) => v.toLowerCase());
|
|
85
|
-
}, {
|
|
86
|
-
toClassOnly: true,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
exports.ToLowerCase = ToLowerCase;
|
|
90
|
-
function ToUpperCase() {
|
|
91
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
92
|
-
const value = params.value;
|
|
93
|
-
if (!value) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
if (!Array.isArray(value)) {
|
|
97
|
-
return value.toUpperCase();
|
|
98
|
-
}
|
|
99
|
-
return value.map((v) => v.toUpperCase());
|
|
100
|
-
}, {
|
|
101
|
-
toClassOnly: true,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
exports.ToUpperCase = ToUpperCase;
|
|
105
|
-
function S3UrlParser() {
|
|
106
|
-
return (0, class_transformer_1.Transform)((params) => {
|
|
107
|
-
const key = params.value;
|
|
108
|
-
switch (params.type) {
|
|
109
|
-
case class_transformer_1.TransformationType.CLASS_TO_PLAIN:
|
|
110
|
-
return providers_1.GeneratorProvider.getS3PublicUrl(key);
|
|
111
|
-
case class_transformer_1.TransformationType.PLAIN_TO_CLASS:
|
|
112
|
-
return providers_1.GeneratorProvider.getS3Key(key);
|
|
113
|
-
default:
|
|
114
|
-
return key;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
exports.S3UrlParser = S3UrlParser;
|
|
119
|
-
function PhoneNumberSerializer() {
|
|
120
|
-
return (0, class_transformer_1.Transform)((params) => (0, libphonenumber_js_1.parsePhoneNumber)(params.value).number);
|
|
121
|
-
}
|
|
122
|
-
exports.PhoneNumberSerializer = PhoneNumberSerializer;
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { Transform, TransformationType } from 'class-transformer';
|
|
2
|
-
import { castArray, isArray, isNil, map, trim } from 'lodash';
|
|
3
|
-
|
|
4
|
-
import { GeneratorProvider } from '../providers';
|
|
5
|
-
import { parsePhoneNumber } from 'libphonenumber-js';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @description trim spaces from start and end, replace multiple spaces with one.
|
|
9
|
-
* @example
|
|
10
|
-
* @ApiProperty()
|
|
11
|
-
* @IsString()
|
|
12
|
-
* @Trim()
|
|
13
|
-
* name: string;
|
|
14
|
-
* @returns PropertyDecorator
|
|
15
|
-
* @constructor
|
|
16
|
-
*/
|
|
17
|
-
export function Trim(): PropertyDecorator {
|
|
18
|
-
return Transform((params) => {
|
|
19
|
-
const value = params.value as string[] | string;
|
|
20
|
-
|
|
21
|
-
if (isArray(value)) {
|
|
22
|
-
return map(value, (v) => trim(v).replace(/\s\s+/g, ' '));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return trim(value).replace(/\s\s+/g, ' ');
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function ToBoolean(): PropertyDecorator {
|
|
30
|
-
return Transform(
|
|
31
|
-
(params) => {
|
|
32
|
-
switch (params.value) {
|
|
33
|
-
case 'true':
|
|
34
|
-
return true;
|
|
35
|
-
case 'false':
|
|
36
|
-
return false;
|
|
37
|
-
default:
|
|
38
|
-
return params.value;
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
{ toClassOnly: true },
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @description convert string or number to integer
|
|
47
|
-
* @example
|
|
48
|
-
* @NumberField()
|
|
49
|
-
* @ToInt()
|
|
50
|
-
* name: number;
|
|
51
|
-
* @returns PropertyDecorator
|
|
52
|
-
* @constructor
|
|
53
|
-
*/
|
|
54
|
-
export function ToInt(): PropertyDecorator {
|
|
55
|
-
return Transform(
|
|
56
|
-
(params) => {
|
|
57
|
-
const value = params.value as string;
|
|
58
|
-
|
|
59
|
-
return Number.parseInt(value, 10);
|
|
60
|
-
},
|
|
61
|
-
{ toClassOnly: true },
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @description transforms to array, specially for query params
|
|
67
|
-
* @example
|
|
68
|
-
* @NumberField()
|
|
69
|
-
* @ToArray()
|
|
70
|
-
* name: number;
|
|
71
|
-
* @constructor
|
|
72
|
-
*/
|
|
73
|
-
export function ToArray(): PropertyDecorator {
|
|
74
|
-
return Transform(
|
|
75
|
-
(params) => {
|
|
76
|
-
const value = params.value;
|
|
77
|
-
|
|
78
|
-
if (isNil(value)) {
|
|
79
|
-
return [];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return castArray(value);
|
|
83
|
-
},
|
|
84
|
-
{ toClassOnly: true },
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export function ToLowerCase(): PropertyDecorator {
|
|
89
|
-
return Transform(
|
|
90
|
-
(params) => {
|
|
91
|
-
const value = params.value;
|
|
92
|
-
|
|
93
|
-
if (!value) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (!Array.isArray(value)) {
|
|
98
|
-
return value.toLowerCase();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return value.map((v) => v.toLowerCase());
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
toClassOnly: true,
|
|
105
|
-
},
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export function ToUpperCase(): PropertyDecorator {
|
|
110
|
-
return Transform(
|
|
111
|
-
(params) => {
|
|
112
|
-
const value = params.value;
|
|
113
|
-
|
|
114
|
-
if (!value) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (!Array.isArray(value)) {
|
|
119
|
-
return value.toUpperCase();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return value.map((v) => v.toUpperCase());
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
toClassOnly: true,
|
|
126
|
-
},
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
export function S3UrlParser(): PropertyDecorator {
|
|
131
|
-
return Transform((params) => {
|
|
132
|
-
const key = params.value as string;
|
|
133
|
-
|
|
134
|
-
switch (params.type) {
|
|
135
|
-
case TransformationType.CLASS_TO_PLAIN:
|
|
136
|
-
return GeneratorProvider.getS3PublicUrl(key);
|
|
137
|
-
case TransformationType.PLAIN_TO_CLASS:
|
|
138
|
-
return GeneratorProvider.getS3Key(key);
|
|
139
|
-
default:
|
|
140
|
-
return key;
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export function PhoneNumberSerializer(): PropertyDecorator {
|
|
146
|
-
return Transform((params) => parsePhoneNumber(params.value as string).number);
|
|
147
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { ITranslationDecoratorInterface } from '../interfaces';
|
|
2
|
-
export declare const STATIC_TRANSLATION_DECORATOR_KEY = "custom:static-translate";
|
|
3
|
-
export declare const DYNAMIC_TRANSLATION_DECORATOR_KEY = "custom:dynamic-translate";
|
|
4
|
-
export declare function StaticTranslate(data?: ITranslationDecoratorInterface): PropertyDecorator;
|
|
5
|
-
export declare function DynamicTranslate(): PropertyDecorator;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DynamicTranslate = exports.StaticTranslate = exports.DYNAMIC_TRANSLATION_DECORATOR_KEY = exports.STATIC_TRANSLATION_DECORATOR_KEY = void 0;
|
|
4
|
-
exports.STATIC_TRANSLATION_DECORATOR_KEY = 'custom:static-translate';
|
|
5
|
-
exports.DYNAMIC_TRANSLATION_DECORATOR_KEY = 'custom:dynamic-translate';
|
|
6
|
-
// FIXME: This is a temporary solution to get the translation decorator working.
|
|
7
|
-
function StaticTranslate(data = {}) {
|
|
8
|
-
return (target, key) => {
|
|
9
|
-
Reflect.defineMetadata(exports.STATIC_TRANSLATION_DECORATOR_KEY, data, target, key);
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
exports.StaticTranslate = StaticTranslate;
|
|
13
|
-
function DynamicTranslate() {
|
|
14
|
-
return (target, key) => {
|
|
15
|
-
Reflect.defineMetadata(exports.DYNAMIC_TRANSLATION_DECORATOR_KEY, {}, target, key);
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
exports.DynamicTranslate = DynamicTranslate;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { ITranslationDecoratorInterface } from '../interfaces';
|
|
2
|
-
|
|
3
|
-
export const STATIC_TRANSLATION_DECORATOR_KEY = 'custom:static-translate';
|
|
4
|
-
export const DYNAMIC_TRANSLATION_DECORATOR_KEY = 'custom:dynamic-translate';
|
|
5
|
-
|
|
6
|
-
// FIXME: This is a temporary solution to get the translation decorator working.
|
|
7
|
-
export function StaticTranslate(
|
|
8
|
-
data: ITranslationDecoratorInterface = {},
|
|
9
|
-
): PropertyDecorator {
|
|
10
|
-
return (target, key) => {
|
|
11
|
-
Reflect.defineMetadata(STATIC_TRANSLATION_DECORATOR_KEY, data, target, key);
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function DynamicTranslate(): PropertyDecorator {
|
|
16
|
-
return (target, key) => {
|
|
17
|
-
Reflect.defineMetadata(DYNAMIC_TRANSLATION_DECORATOR_KEY, {}, target, key);
|
|
18
|
-
};
|
|
19
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { AbstractEntity } from '../common/abstract.entity';
|
|
2
|
-
import type { AbstractDto } from '../common/dto/abstract.dto';
|
|
3
|
-
import type { Constructor } from '../types';
|
|
4
|
-
export declare function UseDto(dtoClass: Constructor<AbstractDto, [AbstractEntity, unknown]>): ClassDecorator;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AbstractEntity } from '../common/abstract.entity';
|
|
2
|
-
import type { AbstractDto } from '../common/dto/abstract.dto';
|
|
3
|
-
import type { Constructor } from '../types';
|
|
4
|
-
|
|
5
|
-
export function UseDto(
|
|
6
|
-
dtoClass: Constructor<AbstractDto, [AbstractEntity, unknown]>,
|
|
7
|
-
): ClassDecorator {
|
|
8
|
-
return (ctor) => {
|
|
9
|
-
ctor.prototype.dtoClass = dtoClass;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export interface IUser {
|
|
2
|
-
uid: number;
|
|
3
|
-
username: string;
|
|
4
|
-
}
|
|
5
|
-
export declare const User: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
|
|
6
|
-
export declare function getUserData(req: any, data?: string): IUser | null;
|
|
@@ -1,44 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.getUserData = exports.User = void 0;
|
|
27
|
-
const common_1 = require("@nestjs/common");
|
|
28
|
-
const lodash = __importStar(require("lodash"));
|
|
29
|
-
exports.User = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
30
|
-
return getUserData(ctx.switchToHttp().getRequest(), data);
|
|
31
|
-
});
|
|
32
|
-
function getUserData(req, data) {
|
|
33
|
-
const headers = req.headers;
|
|
34
|
-
if (lodash.isEmpty(headers['x-userid']) ||
|
|
35
|
-
lodash.isEmpty(headers['x-username'])) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
const user = {
|
|
39
|
-
uid: headers['x-userid'],
|
|
40
|
-
username: headers['x-username'],
|
|
41
|
-
};
|
|
42
|
-
return data ? user[data] : user;
|
|
43
|
-
}
|
|
44
|
-
exports.getUserData = getUserData;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
|
|
2
|
-
import * as lodash from 'lodash';
|
|
3
|
-
|
|
4
|
-
export interface IUser {
|
|
5
|
-
uid: number;
|
|
6
|
-
username: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const User = createParamDecorator(
|
|
10
|
-
(data: string, ctx: ExecutionContext): IUser => {
|
|
11
|
-
return getUserData(ctx.switchToHttp().getRequest(), data);
|
|
12
|
-
},
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
export function getUserData(req, data?: string): IUser | null {
|
|
16
|
-
const headers = req.headers;
|
|
17
|
-
if (
|
|
18
|
-
lodash.isEmpty(headers['x-userid']) ||
|
|
19
|
-
lodash.isEmpty(headers['x-username'])
|
|
20
|
-
) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const user = {
|
|
25
|
-
uid: headers['x-userid'],
|
|
26
|
-
username: headers['x-username'],
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
return data ? user[data] : user;
|
|
30
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export interface IUser {
|
|
2
|
-
uid: number;
|
|
3
|
-
username: string;
|
|
4
|
-
tenantId?: string;
|
|
5
|
-
appId?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const User: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
|
|
8
|
-
export declare function getUserData(req: any, data?: string): IUser;
|
|
@@ -1,62 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.getUserData = exports.User = void 0;
|
|
27
|
-
const common_1 = require("@nestjs/common");
|
|
28
|
-
const lodash = __importStar(require("lodash"));
|
|
29
|
-
const config_1 = require("@nestjs/config");
|
|
30
|
-
exports.User = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
31
|
-
return getUserData(ctx.switchToHttp().getRequest(), data);
|
|
32
|
-
});
|
|
33
|
-
function getUserData(req, data) {
|
|
34
|
-
const headers = req.headers;
|
|
35
|
-
let user = {
|
|
36
|
-
uid: 0,
|
|
37
|
-
username: '',
|
|
38
|
-
};
|
|
39
|
-
const configService = new config_1.ConfigService(req);
|
|
40
|
-
// 未通过网关透传用户信息且处于local开发环境,则从配置获取用户信息
|
|
41
|
-
if (lodash.isEmpty(headers['x-userid']) ||
|
|
42
|
-
lodash.isEmpty(headers['x-username'])) {
|
|
43
|
-
if (process.env.NODE_ENV === 'dev') {
|
|
44
|
-
user = {
|
|
45
|
-
uid: configService.get('MOCK_UID'),
|
|
46
|
-
username: configService.get('MOCK_USERNAME'),
|
|
47
|
-
appId: configService.get('MOCK_APP_ID'),
|
|
48
|
-
tenantId: configService.get('MOCK_TENANT_ID'),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
user = {
|
|
54
|
-
uid: headers['x-userid'],
|
|
55
|
-
username: headers['x-username'],
|
|
56
|
-
appId: headers['x-appid'],
|
|
57
|
-
tenantId: headers['x-tenantid'],
|
|
58
|
-
};
|
|
59
|
-
return data ? user[data] : user;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.getUserData = getUserData;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
|
|
2
|
-
import * as lodash from 'lodash';
|
|
3
|
-
import { ConfigService } from '@nestjs/config';
|
|
4
|
-
|
|
5
|
-
export interface IUser {
|
|
6
|
-
uid: number;
|
|
7
|
-
username: string;
|
|
8
|
-
tenantId?: string;
|
|
9
|
-
appId?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const User = createParamDecorator(
|
|
13
|
-
(data: string, ctx: ExecutionContext): IUser => {
|
|
14
|
-
return getUserData(ctx.switchToHttp().getRequest(), data);
|
|
15
|
-
},
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
export function getUserData(req, data?: string): IUser {
|
|
19
|
-
const headers = req.headers;
|
|
20
|
-
let user: IUser = {
|
|
21
|
-
uid: 0,
|
|
22
|
-
username: '',
|
|
23
|
-
};
|
|
24
|
-
const configService = new ConfigService(req);
|
|
25
|
-
// 未通过网关透传用户信息且处于local开发环境,则从配置获取用户信息
|
|
26
|
-
if (
|
|
27
|
-
lodash.isEmpty(headers['x-userid']) ||
|
|
28
|
-
lodash.isEmpty(headers['x-username'])
|
|
29
|
-
) {
|
|
30
|
-
if (process.env.NODE_ENV === 'dev') {
|
|
31
|
-
user = {
|
|
32
|
-
uid: configService.get('MOCK_UID'),
|
|
33
|
-
username: configService.get('MOCK_USERNAME'),
|
|
34
|
-
appId: configService.get('MOCK_APP_ID'),
|
|
35
|
-
tenantId: configService.get('MOCK_TENANT_ID'),
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
} else {
|
|
39
|
-
user = {
|
|
40
|
-
uid: headers['x-userid'],
|
|
41
|
-
username: headers['x-username'],
|
|
42
|
-
appId: headers['x-appid'],
|
|
43
|
-
tenantId: headers['x-tenantid'],
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
return data ? user[data] : user;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function UserFilter(field: string): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UserFilter = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const crud_1 = require("@dataui/crud");
|
|
6
|
-
const user_decorator_1 = require("./user.decorator");
|
|
7
|
-
function UserFilter(field) {
|
|
8
|
-
const obj = {};
|
|
9
|
-
return (0, common_1.applyDecorators)((0, crud_1.CrudAuth)({
|
|
10
|
-
filter: (req) => {
|
|
11
|
-
obj[field] = (0, user_decorator_1.getUserData)(req, 'uid');
|
|
12
|
-
return obj;
|
|
13
|
-
},
|
|
14
|
-
}));
|
|
15
|
-
}
|
|
16
|
-
exports.UserFilter = UserFilter;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { applyDecorators } from '@nestjs/common';
|
|
2
|
-
import { CrudAuth } from '@dataui/crud';
|
|
3
|
-
import { getUserData } from './user.decorator';
|
|
4
|
-
|
|
5
|
-
export function UserFilter(field: string) {
|
|
6
|
-
const obj = {};
|
|
7
|
-
return applyDecorators(
|
|
8
|
-
CrudAuth({
|
|
9
|
-
filter: (req) => {
|
|
10
|
-
obj[field] = getUserData(req, 'uid');
|
|
11
|
-
return obj;
|
|
12
|
-
},
|
|
13
|
-
}),
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ValidationOptions } from 'class-validator';
|
|
2
|
-
import { IsPhoneNumber as isPhoneNumber } from 'class-validator';
|
|
3
|
-
export declare function IsPassword(validationOptions?: ValidationOptions): PropertyDecorator;
|
|
4
|
-
export declare function IsPhoneNumber(validationOptions?: ValidationOptions & {
|
|
5
|
-
region?: Parameters<typeof isPhoneNumber>[0];
|
|
6
|
-
}): PropertyDecorator;
|
|
7
|
-
export declare function IsTmpKey(validationOptions?: ValidationOptions): PropertyDecorator;
|
|
8
|
-
export declare function IsUndefinable(options?: ValidationOptions): PropertyDecorator;
|
|
9
|
-
export declare function IsEmptyable(options?: ValidationOptions): PropertyDecorator;
|
|
10
|
-
export declare function IsNullable(options?: ValidationOptions): PropertyDecorator;
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IsNullable = exports.IsEmptyable = exports.IsUndefinable = exports.IsTmpKey = exports.IsPhoneNumber = exports.IsPassword = void 0;
|
|
4
|
-
const class_validator_1 = require("class-validator");
|
|
5
|
-
const lodash_1 = require("lodash");
|
|
6
|
-
function IsPassword(validationOptions) {
|
|
7
|
-
return (object, propertyName) => {
|
|
8
|
-
(0, class_validator_1.registerDecorator)({
|
|
9
|
-
propertyName,
|
|
10
|
-
name: 'isPassword',
|
|
11
|
-
target: object.constructor,
|
|
12
|
-
constraints: [],
|
|
13
|
-
options: validationOptions,
|
|
14
|
-
validator: {
|
|
15
|
-
validate(value) {
|
|
16
|
-
return /^[\d!#$%&*@A-Z^a-z]*$/.test(value);
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
exports.IsPassword = IsPassword;
|
|
23
|
-
function IsPhoneNumber(validationOptions) {
|
|
24
|
-
return (0, class_validator_1.IsPhoneNumber)(validationOptions === null || validationOptions === void 0 ? void 0 : validationOptions.region, Object.assign({ message: 'error.phoneNumber' }, validationOptions));
|
|
25
|
-
}
|
|
26
|
-
exports.IsPhoneNumber = IsPhoneNumber;
|
|
27
|
-
function IsTmpKey(validationOptions) {
|
|
28
|
-
return (object, propertyName) => {
|
|
29
|
-
(0, class_validator_1.registerDecorator)({
|
|
30
|
-
propertyName,
|
|
31
|
-
name: 'tmpKey',
|
|
32
|
-
target: object.constructor,
|
|
33
|
-
options: validationOptions,
|
|
34
|
-
validator: {
|
|
35
|
-
validate(value) {
|
|
36
|
-
return (0, lodash_1.isString)(value) && /^tmp\//.test(value);
|
|
37
|
-
},
|
|
38
|
-
defaultMessage() {
|
|
39
|
-
return 'error.invalidTmpKey';
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
exports.IsTmpKey = IsTmpKey;
|
|
46
|
-
function IsUndefinable(options) {
|
|
47
|
-
return (0, class_validator_1.ValidateIf)((obj, value) => value !== undefined, options);
|
|
48
|
-
}
|
|
49
|
-
exports.IsUndefinable = IsUndefinable;
|
|
50
|
-
function IsEmptyable(options) {
|
|
51
|
-
return (0, class_validator_1.ValidateIf)((obj, value) => !(value === null ||
|
|
52
|
-
value === undefined ||
|
|
53
|
-
((0, lodash_1.isString)(value) && value.trim() === '')), options);
|
|
54
|
-
}
|
|
55
|
-
exports.IsEmptyable = IsEmptyable;
|
|
56
|
-
function IsNullable(options) {
|
|
57
|
-
return (0, class_validator_1.ValidateIf)((obj, value) => value !== null, options);
|
|
58
|
-
}
|
|
59
|
-
exports.IsNullable = IsNullable;
|