nestjs-swagger-validator 0.1.2 → 0.1.3

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/README.md CHANGED
@@ -69,6 +69,9 @@ birthDate: string;
69
69
 
70
70
  @ApiProperty({ type: 'string', minLength: 8, maxLength: 128 })
71
71
  password: string;
72
+
73
+ @ApiProperty({ type: 'string', matches: /^[a-z0-9-]+$/ })
74
+ slug: string;
72
75
  ```
73
76
 
74
77
  ### Number
@@ -139,6 +142,67 @@ middleName: string | null;
139
142
  nickname?: string | null;
140
143
  ```
141
144
 
145
+ ## Custom Error Messages
146
+
147
+ Type validators (`IsString`, `IsNumber`, `IsBoolean`, `IsObject`) use `typeMessage`:
148
+
149
+ ```typescript
150
+ @ApiProperty({ type: 'string', typeMessage: 'Must be a string' })
151
+ name: string;
152
+
153
+ @ApiProperty({ type: 'number', typeMessage: 'Must be a number' })
154
+ age: number;
155
+
156
+ @ApiProperty({ type: 'boolean', typeMessage: 'Must be true or false' })
157
+ isActive: boolean;
158
+ ```
159
+
160
+ All boolean validators (`isEmail`, `isUrl`, `isPhone`, `isDate`, `isPositive`, `isInt`, `isNotEmpty`) accept an object with a `message` property:
161
+
162
+ ```typescript
163
+ @ApiProperty({
164
+ type: 'string',
165
+ isEmail: { message: 'Invalid email format' },
166
+ isNotEmpty: { message: 'Email is required' },
167
+ })
168
+ email: string;
169
+
170
+ @ApiProperty({
171
+ type: 'number',
172
+ isPositive: { message: 'Must be positive' },
173
+ isInt: { message: 'Must be an integer' },
174
+ })
175
+ age: number;
176
+ ```
177
+
178
+ Numeric validators (`minLength`, `maxLength`, `arrayMinSize`) accept a `value`/`message` object:
179
+
180
+ ```typescript
181
+ @ApiProperty({
182
+ type: 'string',
183
+ minLength: { value: 3, message: 'At least 3 characters' },
184
+ maxLength: { value: 50, message: 'At most 50 characters' },
185
+ })
186
+ name: string;
187
+ ```
188
+
189
+ Regex matching with a custom message:
190
+
191
+ ```typescript
192
+ @ApiProperty({
193
+ type: 'string',
194
+ matches: { pattern: /^[a-z0-9-]+$/, message: 'Must be a valid slug' },
195
+ })
196
+ slug: string;
197
+ ```
198
+
199
+ Enum with a custom message:
200
+
201
+ ```typescript
202
+ @ApiProperty({ enum: Role, enumMessage: 'Must be a valid role' })
203
+ role: Role;
204
+ ```
205
+
142
206
  ## Custom Validators
143
207
 
144
208
  The package also exports `IsNullable` and `IsUndefined` validators for standalone use:
@@ -13,7 +13,7 @@ function ApiProperty(options) {
13
13
  ...(0, helpers_1.getOptionalDecorator)(options),
14
14
  ];
15
15
  if (options.type === 'string' && !options.format) {
16
- decorators.push((0, class_validator_1.IsString)({ each: options.isArray }));
16
+ decorators.push((0, class_validator_1.IsString)({ each: options.isArray, message: options.typeMessage }));
17
17
  if (options.isEmail) {
18
18
  decorators.push((0, class_validator_1.IsEmail)(undefined, { each: options.isArray, message: (0, helpers_1.getMessage)(options.isEmail) }));
19
19
  }
@@ -37,7 +37,7 @@ function ApiProperty(options) {
37
37
  }
38
38
  if (options.type === 'number') {
39
39
  decorators.push((0, class_transformer_1.Type)(() => Number));
40
- decorators.push((0, class_validator_1.IsNumber)({}, { each: options.isArray }));
40
+ decorators.push((0, class_validator_1.IsNumber)({}, { each: options.isArray, message: options.typeMessage }));
41
41
  if (options.isPositive) {
42
42
  decorators.push((0, class_validator_1.IsPositive)({ each: options.isArray, message: (0, helpers_1.getMessage)(options.isPositive) }));
43
43
  }
@@ -46,10 +46,10 @@ function ApiProperty(options) {
46
46
  }
47
47
  }
48
48
  if (options.type === 'boolean') {
49
- decorators.push((0, class_validator_1.IsBoolean)({ each: options.isArray }));
49
+ decorators.push((0, class_validator_1.IsBoolean)({ each: options.isArray, message: options.typeMessage }));
50
50
  }
51
51
  if (options.type === 'object') {
52
- decorators.push((0, class_validator_1.IsObject)({ each: options.isArray }));
52
+ decorators.push((0, class_validator_1.IsObject)({ each: options.isArray, message: options.typeMessage }));
53
53
  }
54
54
  if ('enum' in options && options.enum) {
55
55
  const enumMessage = options.enumMessage;
@@ -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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"}