@aenode/prop 0.0.21 → 0.0.37
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 +12 -16
- package/assets/favicon.svg +1 -1
- package/bin/prop.mjs +3 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/common/base-dto-class.d.ts +4 -0
- package/dist/lib/common/base-dto-class.d.ts.map +1 -0
- package/dist/lib/common/base-dto-class.js +7 -0
- package/dist/lib/common/base-dto-class.js.map +1 -0
- package/dist/lib/common/global-validation-pipe.d.ts +3 -0
- package/dist/lib/common/global-validation-pipe.d.ts.map +1 -0
- package/dist/lib/common/global-validation-pipe.js +34 -0
- package/dist/lib/common/global-validation-pipe.js.map +1 -0
- package/dist/lib/common/message.dto.d.ts +4 -0
- package/dist/lib/common/message.dto.d.ts.map +1 -0
- package/dist/lib/common/message.dto.js +11 -0
- package/dist/lib/common/message.dto.js.map +1 -0
- package/dist/lib/common/validation-error-response.dto.d.ts +10 -0
- package/dist/lib/common/validation-error-response.dto.d.ts.map +1 -0
- package/dist/lib/common/validation-error-response.dto.js +44 -0
- package/dist/lib/common/validation-error-response.dto.js.map +1 -0
- package/dist/lib/default-value-transformer.d.ts +9 -0
- package/dist/lib/default-value-transformer.d.ts.map +1 -0
- package/dist/lib/default-value-transformer.js +22 -0
- package/dist/lib/default-value-transformer.js.map +1 -0
- package/dist/lib/index.d.ts +27 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +29 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/json-transformer.d.ts +2 -0
- package/dist/lib/json-transformer.d.ts.map +1 -0
- package/dist/lib/json-transformer.js +14 -0
- package/dist/lib/json-transformer.js.map +1 -0
- package/dist/lib/prop-boolean.d.ts +17 -0
- package/dist/lib/prop-boolean.d.ts.map +1 -0
- package/dist/lib/prop-boolean.js +39 -0
- package/dist/lib/prop-boolean.js.map +1 -0
- package/dist/lib/prop-common.d.ts +15 -0
- package/dist/lib/prop-common.d.ts.map +1 -0
- package/dist/lib/prop-common.js +43 -0
- package/dist/lib/prop-common.js.map +1 -0
- package/dist/lib/prop-date.d.ts +17 -0
- package/dist/lib/prop-date.d.ts.map +1 -0
- package/dist/lib/prop-date.js +41 -0
- package/dist/lib/prop-date.js.map +1 -0
- package/dist/lib/prop-enum.d.ts +17 -0
- package/dist/lib/prop-enum.d.ts.map +1 -0
- package/dist/lib/prop-enum.js +36 -0
- package/dist/lib/prop-enum.js.map +1 -0
- package/dist/lib/prop-number.d.ts +19 -0
- package/dist/lib/prop-number.d.ts.map +1 -0
- package/dist/lib/prop-number.js +62 -0
- package/dist/lib/prop-number.js.map +1 -0
- package/dist/lib/prop-object-validation.d.ts +9 -0
- package/dist/lib/prop-object-validation.d.ts.map +1 -0
- package/dist/lib/prop-object-validation.js +24 -0
- package/dist/lib/prop-object-validation.js.map +1 -0
- package/dist/lib/prop-object.d.ts +18 -0
- package/dist/lib/prop-object.d.ts.map +1 -0
- package/dist/lib/prop-object.js +53 -0
- package/dist/lib/prop-object.js.map +1 -0
- package/dist/lib/prop-options.d.ts +67 -0
- package/dist/lib/prop-options.d.ts.map +1 -0
- package/dist/lib/prop-options.js +3 -0
- package/dist/lib/prop-options.js.map +1 -0
- package/dist/lib/prop-string.d.ts +19 -0
- package/dist/lib/prop-string.d.ts.map +1 -0
- package/dist/lib/prop-string.js +112 -0
- package/dist/lib/prop-string.js.map +1 -0
- package/dist/lib/prop-validation.d.ts +10 -0
- package/dist/lib/prop-validation.d.ts.map +1 -0
- package/dist/lib/prop-validation.js +75 -0
- package/dist/lib/prop-validation.js.map +1 -0
- package/dist/lib/prop.d.ts +3 -0
- package/dist/lib/prop.d.ts.map +1 -0
- package/dist/lib/prop.js +13 -0
- package/dist/lib/prop.js.map +1 -0
- package/dist/lib/test-helpers.d.ts +3 -0
- package/dist/lib/test-helpers.d.ts.map +1 -0
- package/dist/lib/test-helpers.js +19 -0
- package/dist/lib/test-helpers.js.map +1 -0
- package/dist/lib/to-api-property-optionts.d.ts +4 -0
- package/dist/lib/to-api-property-optionts.d.ts.map +1 -0
- package/dist/lib/to-api-property-optionts.js +29 -0
- package/dist/lib/to-api-property-optionts.js.map +1 -0
- package/dist/lib/validators/index.d.ts +8 -0
- package/dist/lib/validators/index.d.ts.map +1 -0
- package/dist/lib/validators/index.js +10 -0
- package/dist/lib/validators/index.js.map +1 -0
- package/dist/lib/validators/is-relative-path.d.ts +3 -0
- package/dist/lib/validators/is-relative-path.d.ts.map +1 -0
- package/dist/lib/validators/is-relative-path.js +26 -0
- package/dist/lib/validators/is-relative-path.js.map +1 -0
- package/dist/lib/validators/less-than.d.ts +3 -0
- package/dist/lib/validators/less-than.d.ts.map +1 -0
- package/dist/lib/validators/less-than.js +26 -0
- package/dist/lib/validators/less-than.js.map +1 -0
- package/dist/lib/validators/max-properties.d.ts +3 -0
- package/dist/lib/validators/max-properties.d.ts.map +1 -0
- package/dist/lib/validators/max-properties.js +29 -0
- package/dist/lib/validators/max-properties.js.map +1 -0
- package/dist/lib/validators/min-properties.d.ts +3 -0
- package/dist/lib/validators/min-properties.d.ts.map +1 -0
- package/dist/lib/validators/min-properties.js +29 -0
- package/dist/lib/validators/min-properties.js.map +1 -0
- package/dist/lib/validators/more-than.d.ts +3 -0
- package/dist/lib/validators/more-than.d.ts.map +1 -0
- package/dist/lib/validators/more-than.js +26 -0
- package/dist/lib/validators/more-than.js.map +1 -0
- package/dist/lib/validators/not-with.d.ts +2 -0
- package/dist/lib/validators/not-with.d.ts.map +1 -0
- package/dist/lib/validators/not-with.js +25 -0
- package/dist/lib/validators/not-with.js.map +1 -0
- package/dist/lib/validators/not-without.d.ts +2 -0
- package/dist/lib/validators/not-without.d.ts.map +1 -0
- package/dist/lib/validators/not-without.js +25 -0
- package/dist/lib/validators/not-without.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -0
- package/package.json +24 -41
- package/dist/graphql/filter-dtos.d.ts +0 -69
- package/dist/graphql/filter-dtos.d.ts.map +0 -1
- package/dist/graphql/filter-dtos.js +0 -370
- package/dist/graphql/filter-dtos.js.map +0 -1
- package/dist/graphql/index.d.ts +0 -10
- package/dist/graphql/index.d.ts.map +0 -1
- package/dist/graphql/index.js +0 -12
- package/dist/graphql/index.js.map +0 -1
- package/dist/graphql/input-type.d.ts +0 -2
- package/dist/graphql/input-type.d.ts.map +0 -1
- package/dist/graphql/input-type.js +0 -8
- package/dist/graphql/input-type.js.map +0 -1
- package/dist/graphql/object-type.d.ts +0 -2
- package/dist/graphql/object-type.d.ts.map +0 -1
- package/dist/graphql/object-type.js +0 -8
- package/dist/graphql/object-type.js.map +0 -1
- package/dist/graphql/prop-order-count.d.ts +0 -2
- package/dist/graphql/prop-order-count.d.ts.map +0 -1
- package/dist/graphql/prop-order-count.js +0 -11
- package/dist/graphql/prop-order-count.js.map +0 -1
- package/dist/graphql/prop-order.d.ts +0 -2
- package/dist/graphql/prop-order.d.ts.map +0 -1
- package/dist/graphql/prop-order.js +0 -11
- package/dist/graphql/prop-order.js.map +0 -1
- package/dist/graphql/prop.d.ts +0 -9
- package/dist/graphql/prop.d.ts.map +0 -1
- package/dist/graphql/prop.js +0 -29
- package/dist/graphql/prop.js.map +0 -1
- package/dist/graphql/register-enums.d.ts +0 -2
- package/dist/graphql/register-enums.d.ts.map +0 -1
- package/dist/graphql/register-enums.js +0 -11
- package/dist/graphql/register-enums.js.map +0 -1
- package/dist/graphql/sort-count.dto.d.ts +0 -5
- package/dist/graphql/sort-count.dto.d.ts.map +0 -1
- package/dist/graphql/sort-count.dto.js +0 -22
- package/dist/graphql/sort-count.dto.js.map +0 -1
- package/dist/peers.d.ts +0 -2
- package/dist/peers.d.ts.map +0 -1
- package/dist/peers.js +0 -3
- package/dist/peers.js.map +0 -1
- package/dist/restapi/filter-dtos.d.ts +0 -44
- package/dist/restapi/filter-dtos.d.ts.map +0 -1
- package/dist/restapi/filter-dtos.js +0 -202
- package/dist/restapi/filter-dtos.js.map +0 -1
- package/dist/restapi/index.d.ts +0 -7
- package/dist/restapi/index.d.ts.map +0 -1
- package/dist/restapi/index.js +0 -9
- package/dist/restapi/index.js.map +0 -1
- package/dist/restapi/prop-order-count.d.ts +0 -2
- package/dist/restapi/prop-order-count.d.ts.map +0 -1
- package/dist/restapi/prop-order-count.js +0 -11
- package/dist/restapi/prop-order-count.js.map +0 -1
- package/dist/restapi/prop-order.d.ts +0 -2
- package/dist/restapi/prop-order.d.ts.map +0 -1
- package/dist/restapi/prop-order.js +0 -11
- package/dist/restapi/prop-order.js.map +0 -1
- package/dist/restapi/prop.d.ts +0 -3
- package/dist/restapi/prop.d.ts.map +0 -1
- package/dist/restapi/prop.js +0 -11
- package/dist/restapi/prop.js.map +0 -1
- package/dist/restapi/sort-count.dto.d.ts +0 -5
- package/dist/restapi/sort-count.dto.d.ts.map +0 -1
- package/dist/restapi/sort-count.dto.js +0 -18
- package/dist/restapi/sort-count.dto.js.map +0 -1
- package/dist/restapi/to-api-property-options.d.ts +0 -4
- package/dist/restapi/to-api-property-options.d.ts.map +0 -1
- package/dist/restapi/to-api-property-options.js +0 -37
- package/dist/restapi/to-api-property-options.js.map +0 -1
- package/license +0 -70
package/README.md
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
   
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
<p align="center">
|
|
5
|
-
<img
|
|
4
|
+
<img src="https://aenode.github.io/aenode/libs/prop/assets/favicon.svg" alt="aenode Logo" height="128" width="128" style="border-radius: 32px;"/>
|
|
6
5
|
</p>
|
|
7
6
|
|
|
8
7
|
## @aenode/prop
|
|
9
8
|
|
|
10
|
-
Nestjs
|
|
11
|
-
|
|
9
|
+
Nestjs input validation and swagger property decorator
|
|
12
10
|
|
|
13
11
|
## Install
|
|
14
12
|
|
|
15
13
|
```sh
|
|
16
|
-
|
|
14
|
+
bun add @aenode/prop
|
|
17
15
|
```
|
|
18
16
|
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
If you find my open-source contributions or the **@aenode/prop** project helpful, consider supporting my work. Your sponsorship helps me maintain these projects and explore new enterprise patterns.
|
|
17
|
+
## Examples
|
|
22
18
|
|
|
23
|
-
|
|
19
|
+
```ts
|
|
20
|
+
export class User {
|
|
21
|
+
@Prop({ required: true, format: 'email' }) username: string;
|
|
22
|
+
@Prop({ format: 'password' }) password: string;
|
|
23
|
+
@Prop({ minimum: 17 }) age: number;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
24
26
|
|
|
25
27
|
---
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<p align="left">
|
|
30
|
-
<a href="mailto:aenode+aenode+prop@proton.me">
|
|
31
|
-
<img src="https://img.shields.io/badge/Email-D14836?style=for-the-badge&logo=proton&logoColor=white" />
|
|
32
|
-
</a>
|
|
33
|
-
</p>
|
|
29
|
+
[](https://cash.app/$puqlib) [](mailto:aenode+aenode+aenode-prop@proton.me)
|
package/assets/favicon.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" height="48px" width="48px" fill="#5985E1"><path d="M22.93,41.57Q22.5,41.14 22.5,40.5V27.6l-9.1,9.1q-0.44,0.45-1.04,0.45T11.3,36.71t-0.45-1.05T11.3,34.6l9.1-9.1H7.5q-0.64,0-1.07-0.43T6,23.99t0.43-1.07T7.5,22.5H20.45L11.3,13.35q-0.45-0.44-0.45-1.05t0.44-1.05t1.05-0.45t1.06,0.45l9.1,9.1V7.5q0-0.64 0.43-1.07T24.01,6t1.07,0.43T25.5,7.5V20.4l9.15-9.15q0.44-0.45 1.05-0.45t1.05,0.44t0.45,1.05t-0.45,1.06L27.6,22.5H40.5q0.64,0 1.07,0.43T42,24.01t-0.43,1.07T40.5,25.5H27.65l9.1,9.1q0.45,0.44 0.45,1.04T36.76,36.7t-1.05,0.45T34.65,36.7L25.5,27.55V40.5q0,0.64-0.43,1.07T23.99,42t-1.07-0.43Z"/></svg>
|
package/bin/prop.mjs
ADDED
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAE3B,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import '@aenode/nest/meta';\n\nexport * from './lib/index.js';\n"],"names":[],"mappings":"AAAA,OAAO,oBAAoB;AAE3B,cAAc,iBAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-dto-class.d.ts","sourceRoot":"","sources":["../../../src/lib/common/base-dto-class.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY,CAAC,CAAC;gBACb,KAAK,EAAE,CAAC;CAGrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/common/base-dto-class.ts"],"sourcesContent":["export class BaseDtoClass<T> {\n constructor(value: T) {\n Object.assign(this, value);\n }\n}\n"],"names":["BaseDtoClass","value","Object","assign"],"mappings":"AAAA,OAAO,MAAMA;IACX,YAAYC,KAAQ,CAAE;QACpBC,OAAOC,MAAM,CAAC,IAAI,EAAEF;IACtB;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-validation-pipe.d.ts","sourceRoot":"","sources":["../../../src/lib/common/global-validation-pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAqB7B,eAAO,MAAM,oBAAoB,gBAe/B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { UnprocessableEntityException, ValidationPipe } from '@aenode/nest/common';
|
|
2
|
+
import { inspect } from 'node:util';
|
|
3
|
+
function toValidationErrorDto(error) {
|
|
4
|
+
const children = error.children ? error.children.flatMap((c)=>toValidationErrorDto(c)) : [];
|
|
5
|
+
return [
|
|
6
|
+
...children,
|
|
7
|
+
...Object.entries(error.constraints ?? {}).map(([constraint, message])=>{
|
|
8
|
+
return {
|
|
9
|
+
property: error.property,
|
|
10
|
+
constraint,
|
|
11
|
+
message
|
|
12
|
+
};
|
|
13
|
+
})
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
export const globalValidationPipe = new ValidationPipe({
|
|
17
|
+
transform: true,
|
|
18
|
+
transformOptions: {
|
|
19
|
+
excludeExtraneousValues: true,
|
|
20
|
+
exposeDefaultValues: false,
|
|
21
|
+
exposeUnsetFields: false
|
|
22
|
+
},
|
|
23
|
+
exceptionFactory (validationErrors) {
|
|
24
|
+
console.log(inspect(validationErrors, true, 100));
|
|
25
|
+
const errors = validationErrors.flatMap((error)=>{
|
|
26
|
+
return toValidationErrorDto(error);
|
|
27
|
+
});
|
|
28
|
+
throw new UnprocessableEntityException({
|
|
29
|
+
errors
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=global-validation-pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/common/global-validation-pipe.ts"],"sourcesContent":["import {\n UnprocessableEntityException,\n ValidationPipe,\n type ValidationError,\n} from '@aenode/nest/common';\nimport { inspect } from 'node:util';\nimport type { ValidationErrorDto } from './validation-error-response.dto.js';\n\nfunction toValidationErrorDto(error: ValidationError): ValidationErrorDto[] {\n const children: ValidationErrorDto[] = error.children\n ? error.children.flatMap((c) => toValidationErrorDto(c))\n : [];\n\n return [\n ...children,\n ...Object.entries(error.constraints ?? {}).map(([constraint, message]) => {\n return {\n property: error.property,\n constraint,\n message,\n } as ValidationErrorDto;\n }),\n ];\n}\n\nexport const globalValidationPipe = new ValidationPipe({\n transform: true,\n transformOptions: {\n excludeExtraneousValues: true,\n exposeDefaultValues: false,\n exposeUnsetFields: false,\n },\n exceptionFactory(validationErrors) {\n console.log(inspect(validationErrors, true, 100));\n const errors = validationErrors.flatMap((error) => {\n return toValidationErrorDto(error);\n });\n\n throw new UnprocessableEntityException({ errors });\n },\n});\n"],"names":["UnprocessableEntityException","ValidationPipe","inspect","toValidationErrorDto","error","children","flatMap","c","Object","entries","constraints","map","constraint","message","property","globalValidationPipe","transform","transformOptions","excludeExtraneousValues","exposeDefaultValues","exposeUnsetFields","exceptionFactory","validationErrors","console","log","errors"],"mappings":"AAAA,SACEA,4BAA4B,EAC5BC,cAAc,QAET,sBAAsB;AAC7B,SAASC,OAAO,QAAQ,YAAY;AAGpC,SAASC,qBAAqBC,KAAsB;IAClD,MAAMC,WAAiCD,MAAMC,QAAQ,GACjDD,MAAMC,QAAQ,CAACC,OAAO,CAAC,CAACC,IAAMJ,qBAAqBI,MACnD,EAAE;IAEN,OAAO;WACFF;WACAG,OAAOC,OAAO,CAACL,MAAMM,WAAW,IAAI,CAAC,GAAGC,GAAG,CAAC,CAAC,CAACC,YAAYC,QAAQ;YACnE,OAAO;gBACLC,UAAUV,MAAMU,QAAQ;gBACxBF;gBACAC;YACF;QACF;KACD;AACH;AAEA,OAAO,MAAME,uBAAuB,IAAId,eAAe;IACrDe,WAAW;IACXC,kBAAkB;QAChBC,yBAAyB;QACzBC,qBAAqB;QACrBC,mBAAmB;IACrB;IACAC,kBAAiBC,gBAAgB;QAC/BC,QAAQC,GAAG,CAACtB,QAAQoB,kBAAkB,MAAM;QAC5C,MAAMG,SAASH,iBAAiBhB,OAAO,CAAC,CAACF;YACvC,OAAOD,qBAAqBC;QAC9B;QAEA,MAAM,IAAIJ,6BAA6B;YAAEyB;QAAO;IAClD;AACF,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.dto.d.ts","sourceRoot":"","sources":["../../../src/lib/common/message.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;IACb,OAAO,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
|
+
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
|
+
import { Prop } from '../prop.js';
|
|
4
|
+
export class MessageDto {
|
|
5
|
+
}
|
|
6
|
+
_ts_decorate([
|
|
7
|
+
Prop(),
|
|
8
|
+
_ts_metadata("design:type", String)
|
|
9
|
+
], MessageDto.prototype, "message", void 0);
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=message.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/common/message.dto.ts"],"sourcesContent":["import { Prop } from '../prop.js';\n\nexport class MessageDto {\n @Prop() message: string;\n}\n"],"names":["Prop","MessageDto"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,aAAa;AAElC,OAAO,MAAMC;AAEb"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class ValidationErrorDto {
|
|
2
|
+
property: string;
|
|
3
|
+
constraint: string;
|
|
4
|
+
message: string;
|
|
5
|
+
constructor(value: ValidationErrorDto);
|
|
6
|
+
}
|
|
7
|
+
export declare class ValidationErrorResponseDto {
|
|
8
|
+
errors: ValidationErrorDto[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=validation-error-response.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error-response.dto.d.ts","sourceRoot":"","sources":["../../../src/lib/common/validation-error-response.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IACF,QAAQ,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IAEnD,OAAO,EAAE,MAAM,CAAC;gBAEJ,KAAK,EAAE,kBAAkB;CAGtC;AAED,qBAAa,0BAA0B;IAYrC,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
|
+
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
|
+
import { Prop } from '../prop.js';
|
|
4
|
+
export class ValidationErrorDto {
|
|
5
|
+
constructor(value){
|
|
6
|
+
Object.assign(this, value);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
_ts_decorate([
|
|
10
|
+
Prop({
|
|
11
|
+
example: 'name'
|
|
12
|
+
}),
|
|
13
|
+
_ts_metadata("design:type", String)
|
|
14
|
+
], ValidationErrorDto.prototype, "property", void 0);
|
|
15
|
+
_ts_decorate([
|
|
16
|
+
Prop({
|
|
17
|
+
example: 'minLength'
|
|
18
|
+
}),
|
|
19
|
+
_ts_metadata("design:type", String)
|
|
20
|
+
], ValidationErrorDto.prototype, "constraint", void 0);
|
|
21
|
+
_ts_decorate([
|
|
22
|
+
Prop({
|
|
23
|
+
example: 'name must be longer than or equal to 3 characters.'
|
|
24
|
+
}),
|
|
25
|
+
_ts_metadata("design:type", String)
|
|
26
|
+
], ValidationErrorDto.prototype, "message", void 0);
|
|
27
|
+
export class ValidationErrorResponseDto {
|
|
28
|
+
}
|
|
29
|
+
_ts_decorate([
|
|
30
|
+
Prop({
|
|
31
|
+
type: ()=>ValidationErrorDto,
|
|
32
|
+
isArray: true,
|
|
33
|
+
example: [
|
|
34
|
+
new ValidationErrorDto({
|
|
35
|
+
property: 'name',
|
|
36
|
+
constraint: 'minLength',
|
|
37
|
+
message: 'name must be longer than or equal to 3 characters'
|
|
38
|
+
})
|
|
39
|
+
]
|
|
40
|
+
}),
|
|
41
|
+
_ts_metadata("design:type", Array)
|
|
42
|
+
], ValidationErrorResponseDto.prototype, "errors", void 0);
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=validation-error-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/common/validation-error-response.dto.ts"],"sourcesContent":["import { Prop } from '../prop.js';\n\nexport class ValidationErrorDto {\n @Prop({ example: 'name' }) property: string;\n @Prop({ example: 'minLength' }) constraint: string;\n @Prop({ example: 'name must be longer than or equal to 3 characters.' })\n message: string;\n\n constructor(value: ValidationErrorDto) {\n Object.assign(this, value);\n }\n}\n\nexport class ValidationErrorResponseDto {\n @Prop({\n type: () => ValidationErrorDto,\n isArray: true,\n example: [\n new ValidationErrorDto({\n property: 'name',\n constraint: 'minLength',\n message: 'name must be longer than or equal to 3 characters',\n }),\n ],\n })\n errors: ValidationErrorDto[];\n}\n"],"names":["Prop","ValidationErrorDto","value","Object","assign","example","ValidationErrorResponseDto","type","isArray","property","constraint","message"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,aAAa;AAElC,OAAO,MAAMC;IAMX,YAAYC,KAAyB,CAAE;QACrCC,OAAOC,MAAM,CAAC,IAAI,EAAEF;IACtB;AACF;;;QARUG,SAAS;;;;;;QACTA,SAAS;;;;;;QACTA,SAAS;;;;AAQnB,OAAO,MAAMC;AAab;;;QAXIC,MAAM,IAAMN;QACZO,SAAS;QACTH,SAAS;YACP,IAAIJ,mBAAmB;gBACrBQ,UAAU;gBACVC,YAAY;gBACZC,SAAS;YACX;SACD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PropValidationOptions } from './prop-options.js';
|
|
2
|
+
/**
|
|
3
|
+
* Property value transformer for default values.
|
|
4
|
+
*
|
|
5
|
+
* @param options
|
|
6
|
+
* @returns a property decorator
|
|
7
|
+
*/
|
|
8
|
+
export declare function DefaultValueTransformer(options?: Pick<PropValidationOptions, 'defaultValue'>): PropertyDecorator;
|
|
9
|
+
//# sourceMappingURL=default-value-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-value-transformer.d.ts","sourceRoot":"","sources":["../../src/lib/default-value-transformer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,cAAc,CAAC,GACpD,iBAAiB,CAcnB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Transform } from '@aenode/nest/transformer';
|
|
2
|
+
/**
|
|
3
|
+
* Property value transformer for default values.
|
|
4
|
+
*
|
|
5
|
+
* @param options
|
|
6
|
+
* @returns a property decorator
|
|
7
|
+
*/ export function DefaultValueTransformer(options) {
|
|
8
|
+
return (...args)=>{
|
|
9
|
+
options ??= {};
|
|
10
|
+
const { defaultValue } = options;
|
|
11
|
+
if (defaultValue) {
|
|
12
|
+
Transform(({ value })=>{
|
|
13
|
+
if (value !== undefined && value !== null) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
return defaultValue;
|
|
17
|
+
})(...args);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=default-value-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/default-value-transformer.ts"],"sourcesContent":["import { Transform } from '@aenode/nest/transformer';\nimport type { PropValidationOptions } from './prop-options.js';\n\n/**\n * Property value transformer for default values.\n *\n * @param options\n * @returns a property decorator\n */\nexport function DefaultValueTransformer(\n options?: Pick<PropValidationOptions, 'defaultValue'>,\n): PropertyDecorator {\n return (...args) => {\n options ??= {};\n\n const { defaultValue } = options;\n if (defaultValue) {\n Transform(({ value }) => {\n if (value !== undefined && value !== null) {\n return value;\n }\n return defaultValue;\n })(...args);\n }\n };\n}\n"],"names":["Transform","DefaultValueTransformer","options","args","defaultValue","value","undefined"],"mappings":"AAAA,SAASA,SAAS,QAAQ,2BAA2B;AAGrD;;;;;CAKC,GACD,OAAO,SAASC,wBACdC,OAAqD;IAErD,OAAO,CAAC,GAAGC;QACTD,YAAY,CAAC;QAEb,MAAM,EAAEE,YAAY,EAAE,GAAGF;QACzB,IAAIE,cAAc;YAChBJ,UAAU,CAAC,EAAEK,KAAK,EAAE;gBAClB,IAAIA,UAAUC,aAAaD,UAAU,MAAM;oBACzC,OAAOA;gBACT;gBACA,OAAOD;YACT,MAAMD;QACR;IACF;AACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from './common/base-dto-class.js';
|
|
2
|
+
export * from './common/global-validation-pipe.js';
|
|
3
|
+
export * from './common/message.dto.js';
|
|
4
|
+
export * from './common/validation-error-response.dto.js';
|
|
5
|
+
export * from './default-value-transformer.js';
|
|
6
|
+
export * from './json-transformer.js';
|
|
7
|
+
export * from './prop-boolean.js';
|
|
8
|
+
export * from './prop-common.js';
|
|
9
|
+
export * from './prop-date.js';
|
|
10
|
+
export * from './prop-enum.js';
|
|
11
|
+
export * from './prop-number.js';
|
|
12
|
+
export * from './prop-object-validation.js';
|
|
13
|
+
export * from './prop-object.js';
|
|
14
|
+
export * from './prop-options.js';
|
|
15
|
+
export * from './prop-string.js';
|
|
16
|
+
export * from './prop-validation.js';
|
|
17
|
+
export * from './prop.js';
|
|
18
|
+
export * from './test-helpers.js';
|
|
19
|
+
export * from './to-api-property-optionts.js';
|
|
20
|
+
export * from './validators/is-relative-path.js';
|
|
21
|
+
export * from './validators/less-than.js';
|
|
22
|
+
export * from './validators/max-properties.js';
|
|
23
|
+
export * from './validators/min-properties.js';
|
|
24
|
+
export * from './validators/more-than.js';
|
|
25
|
+
export * from './validators/not-with.js';
|
|
26
|
+
export * from './validators/not-without.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @index(['./**/*.ts', '!./**/*.spec.ts','!./**/index.ts', '!./**/_*.ts','!./**/main.ts', '!./**/generated/**'], f => `export * from '${f.path}.js'`)
|
|
2
|
+
export * from './common/base-dto-class.js';
|
|
3
|
+
export * from './common/global-validation-pipe.js';
|
|
4
|
+
export * from './common/message.dto.js';
|
|
5
|
+
export * from './common/validation-error-response.dto.js';
|
|
6
|
+
export * from './default-value-transformer.js';
|
|
7
|
+
export * from './json-transformer.js';
|
|
8
|
+
export * from './prop-boolean.js';
|
|
9
|
+
export * from './prop-common.js';
|
|
10
|
+
export * from './prop-date.js';
|
|
11
|
+
export * from './prop-enum.js';
|
|
12
|
+
export * from './prop-number.js';
|
|
13
|
+
export * from './prop-object-validation.js';
|
|
14
|
+
export * from './prop-object.js';
|
|
15
|
+
export * from './prop-options.js';
|
|
16
|
+
export * from './prop-string.js';
|
|
17
|
+
export * from './prop-validation.js';
|
|
18
|
+
export * from './prop.js';
|
|
19
|
+
export * from './test-helpers.js';
|
|
20
|
+
export * from './to-api-property-optionts.js';
|
|
21
|
+
export * from './validators/is-relative-path.js';
|
|
22
|
+
export * from './validators/less-than.js';
|
|
23
|
+
export * from './validators/max-properties.js';
|
|
24
|
+
export * from './validators/min-properties.js';
|
|
25
|
+
export * from './validators/more-than.js';
|
|
26
|
+
export * from './validators/not-with.js';
|
|
27
|
+
export * from './validators/not-without.js';
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/index.ts"],"sourcesContent":["// @index(['./**/*.ts', '!./**/*.spec.ts','!./**/index.ts', '!./**/_*.ts','!./**/main.ts', '!./**/generated/**'], f => `export * from '${f.path}.js'`)\nexport * from './common/base-dto-class.js';\nexport * from './common/global-validation-pipe.js';\nexport * from './common/message.dto.js';\nexport * from './common/validation-error-response.dto.js';\nexport * from './default-value-transformer.js';\nexport * from './json-transformer.js';\nexport * from './prop-boolean.js';\nexport * from './prop-common.js';\nexport * from './prop-date.js';\nexport * from './prop-enum.js';\nexport * from './prop-number.js';\nexport * from './prop-object-validation.js';\nexport * from './prop-object.js';\nexport * from './prop-options.js';\nexport * from './prop-string.js';\nexport * from './prop-validation.js';\nexport * from './prop.js';\nexport * from './test-helpers.js';\nexport * from './to-api-property-optionts.js';\nexport * from './validators/is-relative-path.js';\nexport * from './validators/less-than.js';\nexport * from './validators/max-properties.js';\nexport * from './validators/min-properties.js';\nexport * from './validators/more-than.js';\nexport * from './validators/not-with.js';\nexport * from './validators/not-without.js';\n"],"names":[],"mappings":"AAAA,sJAAsJ;AACtJ,cAAc,6BAA6B;AAC3C,cAAc,qCAAqC;AACnD,cAAc,0BAA0B;AACxC,cAAc,4CAA4C;AAC1D,cAAc,iCAAiC;AAC/C,cAAc,wBAAwB;AACtC,cAAc,oBAAoB;AAClC,cAAc,mBAAmB;AACjC,cAAc,iBAAiB;AAC/B,cAAc,iBAAiB;AAC/B,cAAc,mBAAmB;AACjC,cAAc,8BAA8B;AAC5C,cAAc,mBAAmB;AACjC,cAAc,oBAAoB;AAClC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,YAAY;AAC1B,cAAc,oBAAoB;AAClC,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,4BAA4B;AAC1C,cAAc,iCAAiC;AAC/C,cAAc,iCAAiC;AAC/C,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AACzC,cAAc,8BAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-transformer.d.ts","sourceRoot":"","sources":["../../src/lib/json-transformer.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,IAAI,iBAAiB,CASnD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Transform } from '@aenode/nest/transformer';
|
|
2
|
+
import { isJSON } from '@aenode/nest/validator';
|
|
3
|
+
export function JsonTransformer() {
|
|
4
|
+
return (...args)=>{
|
|
5
|
+
Transform(({ value })=>{
|
|
6
|
+
if (isJSON(value)) {
|
|
7
|
+
return JSON.parse(value);
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
})(...args);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=json-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/json-transformer.ts"],"sourcesContent":["import { Transform } from '@aenode/nest/transformer';\nimport { isJSON } from '@aenode/nest/validator';\n\nexport function JsonTransformer(): PropertyDecorator {\n return (...args) => {\n Transform(({ value }) => {\n if (isJSON(value)) {\n return JSON.parse(value);\n }\n return value;\n })(...args);\n };\n}\n"],"names":["Transform","isJSON","JsonTransformer","args","value","JSON","parse"],"mappings":"AAAA,SAASA,SAAS,QAAQ,2BAA2B;AACrD,SAASC,MAAM,QAAQ,yBAAyB;AAEhD,OAAO,SAASC;IACd,OAAO,CAAC,GAAGC;QACTH,UAAU,CAAC,EAAEI,KAAK,EAAE;YAClB,IAAIH,OAAOG,QAAQ;gBACjB,OAAOC,KAAKC,KAAK,CAACF;YACpB;YACA,OAAOA;QACT,MAAMD;IACR;AACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ValidationOptions } from '@aenode/nest/validator';
|
|
2
|
+
import type { BooleanValidationOptions } from './prop-options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Boolean property validation decorator
|
|
5
|
+
*
|
|
6
|
+
* @param options boolean validation options
|
|
7
|
+
* @returns a property decorator
|
|
8
|
+
*/
|
|
9
|
+
export declare function PropBoolean(options: BooleanValidationOptions): PropertyDecorator;
|
|
10
|
+
/**
|
|
11
|
+
* Boolean property validation decorator
|
|
12
|
+
*
|
|
13
|
+
* @param options boolean validation options
|
|
14
|
+
* @returns a property decorator
|
|
15
|
+
*/
|
|
16
|
+
export declare function __PropBoolean(options: BooleanValidationOptions, validationOptions?: ValidationOptions): PropertyDecorator;
|
|
17
|
+
//# sourceMappingURL=prop-boolean.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-boolean.d.ts","sourceRoot":"","sources":["../../src/lib/prop-boolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAInB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,wBAAwB,EACjC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CAkBnB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Transform } from '@aenode/nest/transformer';
|
|
2
|
+
import { IsBoolean } from '@aenode/nest/validator';
|
|
3
|
+
import { __PropCommon } from './prop-common.js';
|
|
4
|
+
/**
|
|
5
|
+
* Boolean property validation decorator
|
|
6
|
+
*
|
|
7
|
+
* @param options boolean validation options
|
|
8
|
+
* @returns a property decorator
|
|
9
|
+
*/ export function PropBoolean(options) {
|
|
10
|
+
return (...args)=>{
|
|
11
|
+
__PropBoolean(options)(...args);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Boolean property validation decorator
|
|
16
|
+
*
|
|
17
|
+
* @param options boolean validation options
|
|
18
|
+
* @returns a property decorator
|
|
19
|
+
*/ export function __PropBoolean(options, validationOptions) {
|
|
20
|
+
return (...args)=>{
|
|
21
|
+
const inferedType = Reflect.getMetadata('design:type', ...args);
|
|
22
|
+
validationOptions ??= {
|
|
23
|
+
each: inferedType === Array,
|
|
24
|
+
groups: options?.groups
|
|
25
|
+
};
|
|
26
|
+
Transform(({ value })=>{
|
|
27
|
+
if (value === 'true') {
|
|
28
|
+
return true;
|
|
29
|
+
} else if (value === 'false') {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
})(...args);
|
|
34
|
+
__PropCommon(options, validationOptions)(...args);
|
|
35
|
+
IsBoolean(validationOptions)(...args);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=prop-boolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/prop-boolean.ts"],"sourcesContent":["import { Transform } from '@aenode/nest/transformer';\nimport { IsBoolean, type ValidationOptions } from '@aenode/nest/validator';\nimport { __PropCommon } from './prop-common.js';\nimport type { BooleanValidationOptions } from './prop-options.js';\n/**\n * Boolean property validation decorator\n *\n * @param options boolean validation options\n * @returns a property decorator\n */\nexport function PropBoolean(\n options: BooleanValidationOptions,\n): PropertyDecorator {\n return (...args) => {\n __PropBoolean(options)(...args);\n };\n}\n\n/**\n * Boolean property validation decorator\n *\n * @param options boolean validation options\n * @returns a property decorator\n */\nexport function __PropBoolean(\n options: BooleanValidationOptions,\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (...args) => {\n const inferedType = Reflect.getMetadata('design:type', ...args);\n validationOptions ??= {\n each: inferedType === Array,\n groups: options?.groups,\n };\n Transform(({ value }) => {\n if (value === 'true') {\n return true;\n } else if (value === 'false') {\n return false;\n }\n return value;\n })(...args);\n __PropCommon(options, validationOptions)(...args);\n IsBoolean(validationOptions)(...args);\n };\n}\n"],"names":["Transform","IsBoolean","__PropCommon","PropBoolean","options","args","__PropBoolean","validationOptions","inferedType","Reflect","getMetadata","each","Array","groups","value"],"mappings":"AAAA,SAASA,SAAS,QAAQ,2BAA2B;AACrD,SAASC,SAAS,QAAgC,yBAAyB;AAC3E,SAASC,YAAY,QAAQ,mBAAmB;AAEhD;;;;;CAKC,GACD,OAAO,SAASC,YACdC,OAAiC;IAEjC,OAAO,CAAC,GAAGC;QACTC,cAAcF,YAAYC;IAC5B;AACF;AAEA;;;;;CAKC,GACD,OAAO,SAASC,cACdF,OAAiC,EACjCG,iBAAqC;IAErC,OAAO,CAAC,GAAGF;QACT,MAAMG,cAAcC,QAAQC,WAAW,CAAC,kBAAkBL;QAC1DE,sBAAsB;YACpBI,MAAMH,gBAAgBI;YACtBC,QAAQT,SAASS;QACnB;QACAb,UAAU,CAAC,EAAEc,KAAK,EAAE;YAClB,IAAIA,UAAU,QAAQ;gBACpB,OAAO;YACT,OAAO,IAAIA,UAAU,SAAS;gBAC5B,OAAO;YACT;YACA,OAAOA;QACT,MAAMT;QACNH,aAAaE,SAASG,sBAAsBF;QAC5CJ,UAAUM,sBAAsBF;IAClC;AACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ValidationOptions } from '@aenode/nest/validator';
|
|
2
|
+
import type { PropValidationOptions } from './prop-options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Common validations and transform decorators including
|
|
5
|
+
* - Expose
|
|
6
|
+
* - IsDefined
|
|
7
|
+
* - IsOptional
|
|
8
|
+
* - DefaultValueTransformer
|
|
9
|
+
*
|
|
10
|
+
* @param options property validation options
|
|
11
|
+
* @param validationOptions class-validator validation options
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare function __PropCommon(options: PropValidationOptions, validationOptions: ValidationOptions): PropertyDecorator;
|
|
15
|
+
//# sourceMappingURL=prop-common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-common.d.ts","sourceRoot":"","sources":["../../src/lib/prop-common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,wBAAwB,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM/D;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,qBAAqB,EAC9B,iBAAiB,EAAE,iBAAiB,GACnC,iBAAiB,CA4BnB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Expose } from '@aenode/nest/transformer';
|
|
2
|
+
import { IsOptional } from '@aenode/nest/validator';
|
|
3
|
+
import { DefaultValueTransformer } from './default-value-transformer.js';
|
|
4
|
+
import { LessThan } from './validators/less-than.js';
|
|
5
|
+
import { MoreThan } from './validators/more-than.js';
|
|
6
|
+
import { NotWith } from './validators/not-with.js';
|
|
7
|
+
import { NotWithout } from './validators/not-without.js';
|
|
8
|
+
/**
|
|
9
|
+
* Common validations and transform decorators including
|
|
10
|
+
* - Expose
|
|
11
|
+
* - IsDefined
|
|
12
|
+
* - IsOptional
|
|
13
|
+
* - DefaultValueTransformer
|
|
14
|
+
*
|
|
15
|
+
* @param options property validation options
|
|
16
|
+
* @param validationOptions class-validator validation options
|
|
17
|
+
* @returns
|
|
18
|
+
*/ export function __PropCommon(options, validationOptions) {
|
|
19
|
+
return (...args)=>{
|
|
20
|
+
const { required } = options;
|
|
21
|
+
Expose({
|
|
22
|
+
groups: options.groups
|
|
23
|
+
})(...args);
|
|
24
|
+
if (options.notWith) {
|
|
25
|
+
NotWith(options.notWith)(...args);
|
|
26
|
+
}
|
|
27
|
+
if (options.notWithout) {
|
|
28
|
+
NotWithout(options.notWithout)(...args);
|
|
29
|
+
}
|
|
30
|
+
if (options.moreThan) {
|
|
31
|
+
MoreThan(options.moreThan, validationOptions)(...args);
|
|
32
|
+
}
|
|
33
|
+
if (options.lessThan) {
|
|
34
|
+
LessThan(options.lessThan, validationOptions)(...args);
|
|
35
|
+
}
|
|
36
|
+
DefaultValueTransformer(options)(...args);
|
|
37
|
+
if (required !== true) {
|
|
38
|
+
IsOptional(validationOptions)(...args);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=prop-common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/prop-common.ts"],"sourcesContent":["import { Expose } from '@aenode/nest/transformer';\nimport { type ValidationOptions, IsOptional } from '@aenode/nest/validator';\nimport { DefaultValueTransformer } from './default-value-transformer.js';\nimport type { PropValidationOptions } from './prop-options.js';\nimport { LessThan } from './validators/less-than.js';\nimport { MoreThan } from './validators/more-than.js';\nimport { NotWith } from './validators/not-with.js';\nimport { NotWithout } from './validators/not-without.js';\n\n/**\n * Common validations and transform decorators including\n * - Expose\n * - IsDefined\n * - IsOptional\n * - DefaultValueTransformer\n *\n * @param options property validation options\n * @param validationOptions class-validator validation options\n * @returns\n */\nexport function __PropCommon(\n options: PropValidationOptions,\n validationOptions: ValidationOptions,\n): PropertyDecorator {\n return (...args) => {\n const { required } = options;\n\n Expose({ groups: options.groups })(...args);\n\n if (options.notWith) {\n NotWith(options.notWith)(...args);\n }\n\n if (options.notWithout) {\n NotWithout(options.notWithout)(...args);\n }\n\n if (options.moreThan) {\n MoreThan(options.moreThan, validationOptions)(...args);\n }\n\n if (options.lessThan) {\n LessThan(options.lessThan, validationOptions)(...args);\n }\n\n DefaultValueTransformer(options)(...args);\n\n if (required !== true) {\n IsOptional(validationOptions)(...args);\n }\n };\n}\n"],"names":["Expose","IsOptional","DefaultValueTransformer","LessThan","MoreThan","NotWith","NotWithout","__PropCommon","options","validationOptions","args","required","groups","notWith","notWithout","moreThan","lessThan"],"mappings":"AAAA,SAASA,MAAM,QAAQ,2BAA2B;AAClD,SAAiCC,UAAU,QAAQ,yBAAyB;AAC5E,SAASC,uBAAuB,QAAQ,iCAAiC;AAEzE,SAASC,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,OAAO,QAAQ,2BAA2B;AACnD,SAASC,UAAU,QAAQ,8BAA8B;AAEzD;;;;;;;;;;CAUC,GACD,OAAO,SAASC,aACdC,OAA8B,EAC9BC,iBAAoC;IAEpC,OAAO,CAAC,GAAGC;QACT,MAAM,EAAEC,QAAQ,EAAE,GAAGH;QAErBR,OAAO;YAAEY,QAAQJ,QAAQI,MAAM;QAAC,MAAMF;QAEtC,IAAIF,QAAQK,OAAO,EAAE;YACnBR,QAAQG,QAAQK,OAAO,KAAKH;QAC9B;QAEA,IAAIF,QAAQM,UAAU,EAAE;YACtBR,WAAWE,QAAQM,UAAU,KAAKJ;QACpC;QAEA,IAAIF,QAAQO,QAAQ,EAAE;YACpBX,SAASI,QAAQO,QAAQ,EAAEN,sBAAsBC;QACnD;QAEA,IAAIF,QAAQQ,QAAQ,EAAE;YACpBb,SAASK,QAAQQ,QAAQ,EAAEP,sBAAsBC;QACnD;QAEAR,wBAAwBM,YAAYE;QAEpC,IAAIC,aAAa,MAAM;YACrBV,WAAWQ,sBAAsBC;QACnC;IACF;AACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ValidationOptions } from '@aenode/nest/validator';
|
|
2
|
+
import type { DateValidationOptions } from './prop-options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Date property validation decorator
|
|
5
|
+
*
|
|
6
|
+
* @param options date validation options
|
|
7
|
+
* @returns a property decorator
|
|
8
|
+
*/
|
|
9
|
+
export declare function PropDate(options: DateValidationOptions): PropertyDecorator;
|
|
10
|
+
/**
|
|
11
|
+
* Date property validation decorator
|
|
12
|
+
*
|
|
13
|
+
* @param options date validation options
|
|
14
|
+
* @returns a property decorator
|
|
15
|
+
*/
|
|
16
|
+
export declare function __PropDate(options?: DateValidationOptions, validationOptions?: ValidationOptions): PropertyDecorator;
|
|
17
|
+
//# sourceMappingURL=prop-date.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-date.d.ts","sourceRoot":"","sources":["../../src/lib/prop-date.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAI1E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,CAAC,EAAE,qBAAqB,EAC/B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CAwBnB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Transform } from '@aenode/nest/transformer';
|
|
2
|
+
import { IsDate, MaxDate, MinDate, isISO8601 } from '@aenode/nest/validator';
|
|
3
|
+
import { __PropCommon } from './prop-common.js';
|
|
4
|
+
/**
|
|
5
|
+
* Date property validation decorator
|
|
6
|
+
*
|
|
7
|
+
* @param options date validation options
|
|
8
|
+
* @returns a property decorator
|
|
9
|
+
*/ export function PropDate(options) {
|
|
10
|
+
return (...args)=>{
|
|
11
|
+
__PropDate(options)(...args);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Date property validation decorator
|
|
16
|
+
*
|
|
17
|
+
* @param options date validation options
|
|
18
|
+
* @returns a property decorator
|
|
19
|
+
*/ export function __PropDate(options, validationOptions) {
|
|
20
|
+
return (...args)=>{
|
|
21
|
+
options ??= {};
|
|
22
|
+
const inferedType = Reflect.getMetadata('design:type', ...args);
|
|
23
|
+
validationOptions ??= {
|
|
24
|
+
each: inferedType === Array,
|
|
25
|
+
groups: options?.groups
|
|
26
|
+
};
|
|
27
|
+
const { minDate: min, maxDate: max } = options ?? {};
|
|
28
|
+
__PropCommon(options, validationOptions)(...args);
|
|
29
|
+
Transform(({ value })=>{
|
|
30
|
+
if (isISO8601(value)) {
|
|
31
|
+
return new Date(value);
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
})(...args);
|
|
35
|
+
IsDate(validationOptions)(...args);
|
|
36
|
+
if (min) MinDate(min, validationOptions)(...args);
|
|
37
|
+
if (max) MaxDate(max, validationOptions)(...args);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=prop-date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/prop-date.ts"],"sourcesContent":["import { Transform } from '@aenode/nest/transformer';\nimport {\n IsDate,\n MaxDate,\n MinDate,\n type ValidationOptions,\n isISO8601,\n} from '@aenode/nest/validator';\nimport { __PropCommon } from './prop-common.js';\nimport type { DateValidationOptions } from './prop-options.js';\n\n/**\n * Date property validation decorator\n *\n * @param options date validation options\n * @returns a property decorator\n */\nexport function PropDate(options: DateValidationOptions): PropertyDecorator {\n return (...args) => {\n __PropDate(options)(...args);\n };\n}\n\n/**\n * Date property validation decorator\n *\n * @param options date validation options\n * @returns a property decorator\n */\nexport function __PropDate(\n options?: DateValidationOptions,\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (...args) => {\n options ??= {};\n const inferedType = Reflect.getMetadata('design:type', ...args);\n validationOptions ??= {\n each: inferedType === Array,\n groups: options?.groups,\n };\n\n const { minDate: min, maxDate: max } = options ?? {};\n\n __PropCommon(options, validationOptions)(...args);\n\n Transform(({ value }) => {\n if (isISO8601(value)) {\n return new Date(value);\n }\n return value;\n })(...args);\n IsDate(validationOptions)(...args);\n\n if (min) MinDate(min, validationOptions)(...args);\n if (max) MaxDate(max, validationOptions)(...args);\n };\n}\n"],"names":["Transform","IsDate","MaxDate","MinDate","isISO8601","__PropCommon","PropDate","options","args","__PropDate","validationOptions","inferedType","Reflect","getMetadata","each","Array","groups","minDate","min","maxDate","max","value","Date"],"mappings":"AAAA,SAASA,SAAS,QAAQ,2BAA2B;AACrD,SACEC,MAAM,EACNC,OAAO,EACPC,OAAO,EAEPC,SAAS,QACJ,yBAAyB;AAChC,SAASC,YAAY,QAAQ,mBAAmB;AAGhD;;;;;CAKC,GACD,OAAO,SAASC,SAASC,OAA8B;IACrD,OAAO,CAAC,GAAGC;QACTC,WAAWF,YAAYC;IACzB;AACF;AAEA;;;;;CAKC,GACD,OAAO,SAASC,WACdF,OAA+B,EAC/BG,iBAAqC;IAErC,OAAO,CAAC,GAAGF;QACTD,YAAY,CAAC;QACb,MAAMI,cAAcC,QAAQC,WAAW,CAAC,kBAAkBL;QAC1DE,sBAAsB;YACpBI,MAAMH,gBAAgBI;YACtBC,QAAQT,SAASS;QACnB;QAEA,MAAM,EAAEC,SAASC,GAAG,EAAEC,SAASC,GAAG,EAAE,GAAGb,WAAW,CAAC;QAEnDF,aAAaE,SAASG,sBAAsBF;QAE5CR,UAAU,CAAC,EAAEqB,KAAK,EAAE;YAClB,IAAIjB,UAAUiB,QAAQ;gBACpB,OAAO,IAAIC,KAAKD;YAClB;YACA,OAAOA;QACT,MAAMb;QACNP,OAAOS,sBAAsBF;QAE7B,IAAIU,KAAKf,QAAQe,KAAKR,sBAAsBF;QAC5C,IAAIY,KAAKlB,QAAQkB,KAAKV,sBAAsBF;IAC9C;AACF"}
|