nestjs-swagger-validator 0.1.0 → 0.1.2

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.
@@ -1,41 +1,3 @@
1
- import { type ApiPropertyOptions as ApiPropertyOptionsSwagger } from '@nestjs/swagger';
2
- type BaseOptions = Omit<ApiPropertyOptionsSwagger, 'type'> & {
3
- isNotEmpty?: boolean;
4
- typeClass?: any;
5
- validateNested?: boolean;
6
- arrayMinSize?: number;
7
- };
8
- type StringOptions = BaseOptions & {
9
- type: 'string';
10
- isEmail?: boolean;
11
- isPhone?: boolean;
12
- isUrl?: boolean;
13
- isDate?: boolean;
14
- };
15
- type NumberOptions = BaseOptions & {
16
- type: 'number';
17
- isPositive?: boolean;
18
- isInt?: boolean;
19
- };
20
- type BooleanOptions = BaseOptions & {
21
- type: 'boolean';
22
- };
23
- type ObjectOptions = BaseOptions & {
24
- type: 'object';
25
- };
26
- type ClassType = Function | [Function];
27
- type ClassOptions = BaseOptions & {
28
- type: ClassType;
29
- };
30
- type EnumOptions = BaseOptions & {
31
- type?: undefined;
32
- enum: Record<string, unknown> | readonly string[] | string[];
33
- };
34
- type NoTypeOptions = BaseOptions & {
35
- type?: undefined;
36
- enum?: undefined;
37
- };
38
- type ApiPropertyOptions = StringOptions | NumberOptions | BooleanOptions | ObjectOptions | EnumOptions | ClassOptions | NoTypeOptions;
1
+ import type { ApiPropertyOptions } from './types';
39
2
  declare function ApiProperty(options: ApiPropertyOptions): PropertyDecorator;
40
3
  export { ApiProperty };
41
- export type { ApiPropertyOptions, BooleanOptions, ClassOptions, EnumOptions, NoTypeOptions, NumberOptions, ObjectOptions, StringOptions, };
@@ -5,48 +5,44 @@ const common_1 = require("@nestjs/common");
5
5
  const swagger_1 = require("@nestjs/swagger");
6
6
  const class_transformer_1 = require("class-transformer");
7
7
  const class_validator_1 = require("class-validator");
8
- const validators_1 = require("./validators");
9
- function getOptionalDecorator(options) {
10
- if (options.nullable && options.required === false) {
11
- return [(0, class_validator_1.IsOptional)({ each: options.isArray })];
12
- }
13
- if (options.nullable) {
14
- return [(0, validators_1.IsNullable)({ each: options.isArray })];
15
- }
16
- if (options.required === false) {
17
- return [(0, class_validator_1.IsOptional)({ each: options.isArray }), (0, validators_1.IsUndefined)({ each: options.isArray })];
18
- }
19
- return [(0, class_validator_1.IsDefined)({ each: options.isArray })];
20
- }
8
+ const helpers_1 = require("./helpers");
21
9
  function ApiProperty(options) {
22
10
  const decorators = [
23
11
  (0, swagger_1.ApiProperty)(options),
24
12
  (0, class_transformer_1.Expose)(),
25
- ...getOptionalDecorator(options),
13
+ ...(0, helpers_1.getOptionalDecorator)(options),
26
14
  ];
27
15
  if (options.type === 'string' && !options.format) {
28
16
  decorators.push((0, class_validator_1.IsString)({ each: options.isArray }));
29
17
  if (options.isEmail) {
30
- decorators.push((0, class_validator_1.IsEmail)(undefined, { each: options.isArray }));
18
+ decorators.push((0, class_validator_1.IsEmail)(undefined, { each: options.isArray, message: (0, helpers_1.getMessage)(options.isEmail) }));
31
19
  }
32
20
  if (options.isUrl) {
33
- decorators.push((0, class_validator_1.IsUrl)(undefined, { each: options.isArray }));
21
+ decorators.push((0, class_validator_1.IsUrl)(undefined, { each: options.isArray, message: (0, helpers_1.getMessage)(options.isUrl) }));
34
22
  }
35
23
  if (options.isPhone) {
36
- decorators.push((0, class_validator_1.IsPhoneNumber)(undefined, { each: options.isArray }));
24
+ decorators.push((0, class_validator_1.IsPhoneNumber)(undefined, { each: options.isArray, message: (0, helpers_1.getMessage)(options.isPhone) }));
37
25
  }
38
26
  if (options.isDate) {
39
- decorators.push((0, class_validator_1.IsDateString)(undefined, { each: options.isArray }));
27
+ decorators.push((0, class_validator_1.IsDateString)(undefined, { each: options.isArray, message: (0, helpers_1.getMessage)(options.isDate) }));
28
+ }
29
+ if (options.matches) {
30
+ if (options.matches instanceof RegExp) {
31
+ decorators.push((0, class_validator_1.Matches)(options.matches, { each: options.isArray }));
32
+ }
33
+ else {
34
+ decorators.push((0, class_validator_1.Matches)(options.matches.pattern, { each: options.isArray, message: options.matches.message }));
35
+ }
40
36
  }
41
37
  }
42
38
  if (options.type === 'number') {
43
39
  decorators.push((0, class_transformer_1.Type)(() => Number));
44
40
  decorators.push((0, class_validator_1.IsNumber)({}, { each: options.isArray }));
45
41
  if (options.isPositive) {
46
- decorators.push((0, class_validator_1.IsPositive)({ each: options.isArray }));
42
+ decorators.push((0, class_validator_1.IsPositive)({ each: options.isArray, message: (0, helpers_1.getMessage)(options.isPositive) }));
47
43
  }
48
44
  if (options.isInt) {
49
- decorators.push((0, class_validator_1.IsInt)({ each: options.isArray }));
45
+ decorators.push((0, class_validator_1.IsInt)({ each: options.isArray, message: (0, helpers_1.getMessage)(options.isInt) }));
50
46
  }
51
47
  }
52
48
  if (options.type === 'boolean') {
@@ -55,17 +51,20 @@ function ApiProperty(options) {
55
51
  if (options.type === 'object') {
56
52
  decorators.push((0, class_validator_1.IsObject)({ each: options.isArray }));
57
53
  }
58
- if (options.enum) {
59
- decorators.push((0, class_validator_1.IsEnum)(options.enum, { each: options.isArray }));
54
+ if ('enum' in options && options.enum) {
55
+ const enumMessage = options.enumMessage;
56
+ decorators.push((0, class_validator_1.IsEnum)(options.enum, { each: options.isArray, message: enumMessage }));
60
57
  }
61
58
  if (options.minLength !== undefined) {
62
- decorators.push((0, class_validator_1.MinLength)(options.minLength, { each: options.isArray }));
59
+ const { value, message } = (0, helpers_1.getNumberOption)(options.minLength);
60
+ decorators.push((0, class_validator_1.MinLength)(value, { each: options.isArray, message }));
63
61
  }
64
62
  if (options.maxLength !== undefined) {
65
- decorators.push((0, class_validator_1.MaxLength)(options.maxLength, { each: options.isArray }));
63
+ const { value, message } = (0, helpers_1.getNumberOption)(options.maxLength);
64
+ decorators.push((0, class_validator_1.MaxLength)(value, { each: options.isArray, message }));
66
65
  }
67
66
  if (options.isNotEmpty) {
68
- decorators.push((0, class_validator_1.IsNotEmpty)({ each: options.isArray }));
67
+ decorators.push((0, class_validator_1.IsNotEmpty)({ each: options.isArray, message: (0, helpers_1.getMessage)(options.isNotEmpty) }));
69
68
  }
70
69
  if (options.typeClass) {
71
70
  decorators.push((0, class_transformer_1.Type)(() => options.typeClass));
@@ -76,8 +75,9 @@ function ApiProperty(options) {
76
75
  if (options.isArray) {
77
76
  decorators.push((0, class_validator_1.IsArray)());
78
77
  }
79
- if (options.arrayMinSize) {
80
- decorators.push((0, class_validator_1.ArrayMinSize)(options.arrayMinSize));
78
+ if (options.arrayMinSize !== undefined) {
79
+ const { value, message } = (0, helpers_1.getNumberOption)(options.arrayMinSize);
80
+ decorators.push((0, class_validator_1.ArrayMinSize)(value, { message }));
81
81
  }
82
82
  return (0, common_1.applyDecorators)(...decorators);
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-property.decorator.js","sourceRoot":"","sources":["../src/api-property.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-property.decorator.js","sourceRoot":"","sources":["../src/api-property.decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ApiPropertyOptions, MessageOption, NumberMessageOption } from './types';
2
+ export declare function getMessage(option: MessageOption | undefined): string | undefined;
3
+ export declare function getNumberOption(option: NumberMessageOption): {
4
+ value: number;
5
+ message?: string;
6
+ };
7
+ export declare function getOptionalDecorator(options: ApiPropertyOptions): PropertyDecorator[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMessage = getMessage;
4
+ exports.getNumberOption = getNumberOption;
5
+ exports.getOptionalDecorator = getOptionalDecorator;
6
+ const class_validator_1 = require("class-validator");
7
+ const validators_1 = require("./validators");
8
+ function getMessage(option) {
9
+ return typeof option === 'object' ? option.message : undefined;
10
+ }
11
+ function getNumberOption(option) {
12
+ return typeof option === 'object' ? option : { value: option };
13
+ }
14
+ function getOptionalDecorator(options) {
15
+ if (options.nullable && options.required === false) {
16
+ return [(0, class_validator_1.IsOptional)({ each: options.isArray })];
17
+ }
18
+ if (options.nullable) {
19
+ return [(0, validators_1.IsNullable)({ each: options.isArray })];
20
+ }
21
+ if (options.required === false) {
22
+ return [(0, class_validator_1.IsOptional)({ each: options.isArray }), (0, validators_1.IsUndefined)({ each: options.isArray })];
23
+ }
24
+ return [(0, class_validator_1.IsDefined)({ each: options.isArray })];
25
+ }
26
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;AAKA,gCAEC;AAED,0CAEC;AAED,oDAcC;AA3BD,qDAAwD;AAGxD,6CAAuD;AAEvD,SAAgB,UAAU,CAAC,MAAiC;IAC1D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,eAAe,CAAC,MAA2B;IACzD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjE,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAA2B;IAC9D,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACnD,OAAO,CAAC,IAAA,4BAAU,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,IAAA,uBAAU,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAA,4BAAU,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAA,wBAAW,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,CAAC,IAAA,2BAAS,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export type { ApiPropertyOptions, BooleanOptions, ClassOptions, EnumOptions, NoTypeOptions, NumberOptions, ObjectOptions, StringOptions, } from './api-property.decorator';
2
1
  export { ApiProperty } from './api-property.decorator';
2
+ export type { ApiPropertyOptions, BooleanOptions, ClassOptions, EnumOptions, MessageOption, NoTypeOptions, NumberMessageOption, NumberOptions, ObjectOptions, StringOptions, } from './types';
3
3
  export { IsNullable, IsNullableConstraint, IsUndefined, IsUndefinedConstraint } from './validators';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAUA,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AACpB,2CAAoG;AAA3F,wGAAA,UAAU,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,mHAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAapB,2CAAoG;AAA3F,wGAAA,UAAU,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,mHAAA,qBAAqB,OAAA"}