@fluojs/validation
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,gCAAgC,EAErC,KAAK,0BAA0B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAgE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG/H,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAClF,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;AAElH,KAAK,kBAAkB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAyGtE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,gBAAgB,CAExG;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEhF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACxE,UAAU,0BAA0B,qBACgD,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,SAAS,aArEF,0BAA0B,KAAG,gBAqEqD,CAAC;AACvG;;GAEG;AACH,eAAO,MAAM,UAAU,aAzEH,0BAA0B,KAAG,gBAyEuD,CAAC;AACzG;;GAEG;AACH,eAAO,MAAM,MAAM,6BArFW,0BAA0B,KAAG,gBAqF2E,CAAC;AACvI;;GAEG;AACH,eAAO,MAAM,SAAS,6BAzFQ,0BAA0B,KAAG,gBAyFiF,CAAC;AAC7I;;GAEG;AACH,eAAO,MAAM,OAAO,aArFA,0BAA0B,KAAG,gBAqFiD,CAAC;AACnG;;GAEG;AACH,eAAO,MAAM,UAAU,aAzFH,0BAA0B,KAAG,gBAyFuD,CAAC;AACzG;;GAEG;AACH,eAAO,MAAM,IAAI,yCArFyB,0BAA0B,KAAG,gBAqF+C,CAAC;AACvH;;GAEG;AACH,eAAO,MAAM,OAAO,yCAzFsB,0BAA0B,KAAG,gBAyFqD,CAAC;AAC7H;;GAEG;AACH,eAAO,MAAM,MAAM,aArGC,0BAA0B,KAAG,gBAqG+C,CAAC;AACjG;;GAEG;AACH,eAAO,MAAM,OAAO,aAzGA,0BAA0B,KAAG,gBAyGiD,CAAC;AACnG;;GAEG;AACH,eAAO,MAAM,QAAQ,aA7GD,0BAA0B,KAAG,gBA6GmD,CAAC;AACrG;;GAEG;AACH,eAAO,MAAM,KAAK,aAjHE,0BAA0B,KAAG,gBAiH6C,CAAC;AAC/F;;GAEG;AACH,eAAO,MAAM,UAAU,aArHH,0BAA0B,KAAG,gBAqHuD,CAAC;AACzG;;GAEG;AACH,eAAO,MAAM,UAAU,aAzHH,0BAA0B,KAAG,gBAyHuD,CAAC;AAEzG;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAGnI;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,4BAlJI,0BAA0B,KAAG,gBAkJsF,CAAC;AAClJ;;GAEG;AACH,eAAO,MAAM,GAAG,4BAtJc,0BAA0B,KAAG,gBAsJoE,CAAC;AAChI;;GAEG;AACH,eAAO,MAAM,GAAG,4BA1Jc,0BAA0B,KAAG,gBA0JoE,CAAC;AAChI;;GAEG;AACH,eAAO,MAAM,OAAO,0BA9JU,0BAA0B,KAAG,gBA8J0E,CAAC;AACtI;;GAEG;AACH,eAAO,MAAM,OAAO,0BAlKU,0BAA0B,KAAG,gBAkK0E,CAAC;AACtI;;GAEG;AACH,eAAO,MAAM,QAAQ,4BAtKS,0BAA0B,KAAG,gBAsK8E,CAAC;AAC1I;;GAEG;AACH,eAAO,MAAM,WAAW,4BA1KM,0BAA0B,KAAG,gBA0KoF,CAAC;AAEhJ;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAExG;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAM7H;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,4BA1MQ,0BAA0B,KAAG,gBA0MgF,CAAC;AAC5I;;GAEG;AACH,eAAO,MAAM,SAAS,4BA9MQ,0BAA0B,KAAG,gBA8MgF,CAAC;AAE5I;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,kBAAkB,CAAC,EAAE,MAAM,GAAG,0BAA0B,EACxD,OAAO,CAAC,EAAE,0BAA0B,GACnC,gBAAgB,CAkBlB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,0BAA0B,qBAA4D,CAAC;AACzH;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,0BAA0B,qBAAmE,CAAC;AACvI;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,0BAA0B,qBAA4D,CAAC;AACzH;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,0BAA0B,qBAA6D,CAAC;AAC3H;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,0BAA0B,qBAAoE,CAAC;AACzI;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,0BAA0B,qBAA8D,CAAC;AAC7H;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,0BAA0B,qBAAiE,CAAC;AACnI;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,0BAA0B,qBAA8D,CAAC;AAC7H;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,0BAA0B,qBAA4D,CAAC;AACzH;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,0BAA0B,qBAA2D,CAAC;AACvH;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,0BAA0B,qBAA+D,CAAC;AAC/H;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,0BAA0B,qBAAkE,CAAC;AACrI;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,0BAA0B,qBAA2D,CAAC;AACvH;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,0BAA0B,qBAA0D,CAAC;AACrH;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,0BAA0B,qBAA6D,CAAC;AAC3H;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,0BAA0B,qBAAgE,CAAC;AACjI;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,0BAA0B,qBAAgE,CAAC;AACjI;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,0BAA0B,qBAA+D,CAAC;AAC/H;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,0BAA0B,qBAA8D,CAAC;AAC7H;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,0BAA0B,qBAAmE,CAAC;AACvI;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,0BAA0B,qBAA2D,CAAC;AACvH;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,0BAA0B,qBAA8D,CAAC;AAC7H;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,0BAA0B,qBAA6D,CAAC;AAC3H;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,0BAA0B,qBAAgE,CAAC;AACjI;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,0BAA0B,qBAA8D,CAAC;AAC7H;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,0BAA0B,qBAA+D,CAAC;AAC/H;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,0BAA0B,qBAAgE,CAAC;AACjI;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,0BAA0B,qBAA8D,CAAC;AAE7H;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAE3G;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEhG;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEzH;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEpG;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEjH;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAE5E;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEhH;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAEjF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,yCA5egB,0BAA0B,KAAG,gBA4emE,CAAC;AAC3I;;GAEG;AACH,eAAO,MAAM,gBAAgB,yCAhfa,0BAA0B,KAAG,gBAgfyE,CAAC;AACjJ;;GAEG;AACH,eAAO,MAAM,aAAa,aA5fN,0BAA0B,KAAG,gBA4f+D,CAAC;AACjH;;GAEG;AACH,eAAO,MAAM,YAAY,4BAxgBK,0BAA0B,KAAG,gBAwgBsF,CAAC;AAClJ;;GAEG;AACH,eAAO,MAAM,YAAY,4BA5gBK,0BAA0B,KAAG,gBA4gBsF,CAAC;AAElJ;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,0BAA0B,EAC9E,OAAO,CAAC,EAAE,0BAA0B,GACnC,gBAAgB,CAKlB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,gCAAgC,GAAG,gBAAgB,CASrH;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,gBAAgB,CAUlH"} |
@@ -1,5 +0,6 @@ | ||
| import { metadataSymbol } from '@fluojs/core/internal'; | ||
| import { ensureMetadataSymbol } from '@fluojs/core/internal'; | ||
| import { createClassValidatorFromStandardSchema, isStandardSchemaLike } from './standard-schema.js'; | ||
| const standardDtoValidationMetadataKey = Symbol.for('fluo.standard.dto-validation'); | ||
| const standardClassValidationMetadataKey = Symbol.for('fluo.standard.class-validation'); | ||
| ensureMetadataSymbol(); | ||
| function getStandardMetadataBag(metadata) { | ||
@@ -9,3 +10,2 @@ if (metadata === null || metadata === undefined) { | ||
| } | ||
| void metadataSymbol; | ||
| return metadata; | ||
@@ -12,0 +12,0 @@ } |
+2
-2
@@ -12,3 +12,3 @@ { | ||
| ], | ||
| "version": "1.0.0-beta.2", | ||
| "version": "1.0.0-beta.3", | ||
| "private": false, | ||
@@ -46,3 +46,3 @@ "license": "MIT", | ||
| "validator": "^13.15.26", | ||
| "@fluojs/core": "^1.0.0-beta.3" | ||
| "@fluojs/core": "^1.0.0-beta.4" | ||
| }, | ||
@@ -49,0 +49,0 @@ "devDependencies": { |
+45
-56
@@ -7,4 +7,2 @@ # @fluojs/validation | ||
| `@fluojs/validation`은 애플리케이션의 **입력 경계(Input Boundary)**를 담당합니다. 가공되지 않은(untyped) raw 데이터를 검증이 완료된 타입 기반 클래스 인스턴스(DTO)로 변환하는 강력한 데코레이터 세트와 실체화(Materialization) 엔진을 제공합니다. 이를 통해 비즈니스 로직에 도달하기 전 데이터의 무결성을 보장합니다. | ||
| ## 목차 | ||
@@ -28,31 +26,35 @@ | ||
| - 들어오는 데이터(요청 바디, 쿼리 파라미터 등)를 클래스 기반 스키마에 맞춰 검증해야 할 때. | ||
| - 일반 JavaScript 객체를 재귀적 검증이 포함된 타입 기반 클래스 인스턴스로 변환하고 싶을 때. | ||
| - 기존 DTO로부터 새로운 DTO를 파생시키고 싶을 때 (예: `UserDto`에서 `UpdateUserDto` 생성). | ||
| - Zod나 Valibot 같은 기존 검증 라이브러리를 클래스 기반 DTO 구조 내에서 사용하고 싶을 때. | ||
| - raw request payload를 비즈니스 로직에 도달하기 전에 검증된 DTO 인스턴스로 바꿔야 할 때 | ||
| - 컨트롤러나 서비스에서 ad hoc parsing 대신 class 기반 검증 규칙을 쓰고 싶을 때 | ||
| - `PickType`, `PartialType`, `IntersectionType` 같은 metadata-preserving mapped DTO helper가 필요할 때 | ||
| - `@ValidateClass(...)`로 Zod나 Valibot 같은 Standard Schema validator를 붙이고 싶을 때 | ||
| ## 빠른 시작 | ||
| 표준 데코레이터를 사용하여 DTO를 정의하고, `DefaultValidator`를 사용하여 raw 데이터를 실체화 및 검증합니다. | ||
| ```ts | ||
| import { DefaultValidator, DtoValidationError, IsEmail, IsString, MinLength } from '@fluojs/validation'; | ||
| ```typescript | ||
| import { IsEmail, IsString, MinLength, DefaultValidator } from '@fluojs/validation'; | ||
| class CreateUserDto { | ||
| @IsEmail() | ||
| email: string = ''; | ||
| email = ''; | ||
| @IsString() | ||
| @MinLength(2) | ||
| name: string = ''; | ||
| name = ''; | ||
| } | ||
| const validator = new DefaultValidator(); | ||
| const rawData = { email: 'test@example.com', name: 'Ko' }; | ||
| // materialize()는 CreateUserDto의 인스턴스를 생성하고 검증을 수행합니다. | ||
| const user = await validator.materialize(rawData, CreateUserDto); | ||
| try { | ||
| const dto = await validator.materialize( | ||
| { email: 'hello@example.com', name: 'fluo' }, | ||
| CreateUserDto, | ||
| ); | ||
| console.log(user instanceof CreateUserDto); // true | ||
| console.log(user.name); // "Ko" | ||
| console.log(dto instanceof CreateUserDto); | ||
| } catch (error) { | ||
| if (error instanceof DtoValidationError) { | ||
| console.log(error.issues); | ||
| } | ||
| } | ||
| ``` | ||
@@ -62,3 +64,3 @@ | ||
| ### 실체화 vs 검증 (Materialization vs Validation) | ||
| ### `materialize()` vs `validate()` | ||
@@ -93,58 +95,41 @@ - **`materialize<T>(value, target)`**: **입력 처리**에 가장 적합합니다. plain 객체를 받아 대상 클래스의 인스턴스를 생성하고, 값을 복사하며, 중첩된 DTO를 재귀적으로 처리한 후 모든 검증 규칙을 실행합니다. | ||
| ### Mapped Types (Pick, Omit, Partial) | ||
| ### Mapped DTO 헬퍼 | ||
| 모든 검증 데코레이터와 바인딩 메타데이터를 보존하면서 새로운 DTO 클래스를 파생합니다. | ||
| ```typescript | ||
| ```ts | ||
| import { IsString, IsEmail, PickType, PartialType } from '@fluojs/validation'; | ||
| class UserDto { | ||
| @IsString() name: string = ''; | ||
| @IsEmail() email: string = ''; | ||
| @IsString() name = ''; | ||
| @IsEmail() email = ''; | ||
| } | ||
| // 'email' 필드만 포함 | ||
| class EmailOnlyDto extends PickType(UserDto, ['email']) {} | ||
| // 모든 필드를 선택 사항(optional)으로 변경 | ||
| class UpdateUserDto extends PartialType(UserDto) {} | ||
| ``` | ||
| ### Standard Schema 지원 (Zod, Valibot) | ||
| ### Standard Schema 지원 | ||
| `@ValidateClass`를 통해 클래스 레벨에서 선호하는 스키마 라이브러리를 사용할 수 있습니다. fluo는 [Standard Schema](https://github.com/standard-schema/spec) 규격을 구현하는 모든 라이브러리를 지원합니다. | ||
| 유효하지 않은 입력은 명시적인 `issues`로 보고되어야 하며, 이슈가 없는 검증 결과는 성공으로 처리합니다. | ||
| Standard Schema adapter는 유효하지 않은 입력을 명시적인 issue로 보고해야 합니다. issue가 없는 검증 결과는 성공으로 처리합니다. | ||
| ```typescript | ||
| ```ts | ||
| import { ValidateClass } from '@fluojs/validation'; | ||
| import { z } from 'zod'; | ||
| const UserSchema = z.object({ | ||
| age: z.number().min(18), | ||
| }); | ||
| const UserSchema = z.object({ age: z.number().min(18) }); | ||
| @ValidateClass(UserSchema) | ||
| class RestrictedUserDto { | ||
| age: number = 0; | ||
| age = 0; | ||
| } | ||
| ``` | ||
| ### 중첩 검증 (Nested Validation) | ||
| `ValidateClass(...)`는 custom class-level validator도 받을 수 있습니다. `Validate(...)`는 built-in decorator만으로 부족할 때 custom field-level validator를 붙이고, `ValidateIf(...)`는 predicate가 false를 반환하면 dependent validator를 short-circuit합니다. | ||
| `@ValidateNested`를 사용하여 복잡한 계층적 데이터 구조를 검증합니다. | ||
| ### 중첩 검증 | ||
| ```typescript | ||
| import { IsString, ValidateNested } from '@fluojs/validation'; | ||
| `@ValidateNested(...)`는 객체 필드, 배열, `Set`, `Map`을 지원합니다. 중첩 DTO path는 validation issue에서 dot/index 표기법을 사용하며, cycle은 안전하게 감지되고 shared reference는 허용됩니다. | ||
| class ProfileDto { | ||
| @IsString() bio: string = ''; | ||
| } | ||
| ### 암묵적 scalar coercion 없음 | ||
| class UserDto { | ||
| @IsString() name: string = ''; | ||
| @ValidateNested(() => ProfileDto) | ||
| profile?: ProfileDto; | ||
| } | ||
| ``` | ||
| `materialize()`는 의도적으로 엄격합니다. Transport가 `'42'`를 넘기고 DTO가 `number`를 기대한다면, transport나 binding layer가 먼저 변환해야 합니다. | ||
@@ -155,6 +140,8 @@ ## 공개 API | ||
| - **핵심 데코레이터**: `IsString`, `IsNumber`, `IsBoolean`, `IsDate`, `IsArray`, `IsObject`, `IsEnum`, `IsInt`, `IsDefined`, `IsOptional`, `ValidateNested`, `ValidateIf`, `Validate`, `ValidateClass` | ||
| - **문자열 및 네트워크 데코레이터**: `IsEmail`, `IsUrl`, `IsUUID`, `IsIP`, `IsAlpha`, `IsAlphanumeric`, `IsAscii`, `IsBase64`, `IsDateString`, `IsJSON`, `IsJWT`, `IsNumberString`, `IsISO8601`, `Matches`, `Length`, `MinLength`, `MaxLength`, `Contains`, `NotContains` | ||
| - **숫자 및 날짜 데코레이터**: `Min`, `Max`, `IsPositive`, `IsNegative`, `IsDivisibleBy`, `MinDate`, `MaxDate` | ||
| - **존재 및 비교 데코레이터**: `IsEmpty`, `IsNotEmpty`, `Equals`, `NotEquals`, `IsIn`, `IsNotIn` | ||
| - **문자열 및 네트워크 데코레이터**: `IsEmail`, `IsUrl`, `IsUUID`, `IsIP`, `IsAlpha`, `IsAlphanumeric`, `IsAscii`, `IsBase64`, `IsBooleanString`, `IsDataURI`, `IsDateString`, `IsDecimal`, `IsFQDN`, `IsHexColor`, `IsHexadecimal`, `IsJSON`, `IsJWT`, `IsLocale`, `IsLowercase`, `IsMagnetURI`, `IsMimeType`, `IsMongoId`, `IsNumberString`, `IsPort`, `IsRFC3339`, `IsSemVer`, `IsUppercase`, `IsISO8601`, `Matches`, `Length`, `MinLength`, `MaxLength`, `Contains`, `NotContains` | ||
| - **숫자, 날짜, 지리, locale 데코레이터**: `Min`, `Max`, `IsPositive`, `IsNegative`, `IsDivisibleBy`, `MinDate`, `MaxDate`, `IsLatitude`, `IsLongitude`, `IsLatLong`, `IsISBN`, `IsISSN`, `IsMobilePhone`, `IsPostalCode`, `IsRgbColor`, `IsCurrency` | ||
| - **배열 데코레이터**: `ArrayContains`, `ArrayNotContains`, `ArrayNotEmpty`, `ArrayMinSize`, `ArrayMaxSize`, `ArrayUnique` | ||
| - **Mapped DTO 헬퍼**: `PickType`, `OmitType`, `PartialType`, `IntersectionType` | ||
| - **Mapped DTO 서브패스**: `@fluojs/validation/mapped-types` | ||
| - **Standard Schema 계약**: `ValidateClass(...)` 스키마를 타입 지정하기 위한 `StandardSchemaV1Like` | ||
@@ -165,9 +152,11 @@ - **검증 흐름**: 실체화 및 검증을 위한 `materialize()`, 단순 검증을 위한 `validate()` | ||
| - `@fluojs/core`: 데코레이터가 사용하는 메타데이터 시스템을 제공합니다. | ||
| - `@fluojs/http`: 이 패키지를 사용하여 들어오는 요청 데이터를 자동으로 검증합니다. | ||
| - `@fluojs/serialization`: **출력** 측면(응답용 DTO 가공)을 담당합니다. | ||
| - `@fluojs/http`: request data를 bind한 뒤 이 패키지로 검증합니다. | ||
| - `@fluojs/serialization`: response side에서 output DTO를 가공합니다. | ||
| - `@fluojs/core`: validation decorator가 사용하는 metadata primitive를 제공합니다. | ||
| ## 예제 소스 | ||
| - `packages/validation/src/validation.test.ts`: 모든 데코레이터와 엔진에 대한 종합 테스트. | ||
| - `examples/realworld-api`: 실제 프로덕션과 유사한 환경에서의 DTO 사용 예시. | ||
| - `packages/validation/src/validation.test.ts` | ||
| - `packages/validation/src/mapped-types.test.ts` | ||
| - `examples/realworld-api/src/users/create-user.dto.ts` | ||
| - `examples/auth-jwt-passport/src/auth/login.dto.ts` |
+12
-3
@@ -5,3 +5,3 @@ # @fluojs/validation | ||
| Input-side validation decorators, mapped DTO helpers, and the materialization engine for fluo. | ||
| Input-side validation decorators, mapped DTO helpers, and the validation engine for fluo. | ||
@@ -125,2 +125,8 @@ ## Table of Contents | ||
| `ValidateClass(...)` also accepts custom class-level validators. `Validate(...)` attaches custom field-level validators when built-in decorators are not enough, and `ValidateIf(...)` short-circuits dependent validators when its predicate returns false. | ||
| ### Nested validation | ||
| `@ValidateNested(...)` supports object fields, arrays, `Set`, and `Map`. Nested DTO paths use dot/index notation in validation issues, cycles are detected safely, and shared references are allowed. | ||
| ### No implicit scalar coercion | ||
@@ -134,6 +140,8 @@ | ||
| - **Core decorators**: `IsString`, `IsNumber`, `IsBoolean`, `IsDate`, `IsArray`, `IsObject`, `IsEnum`, `IsInt`, `IsDefined`, `IsOptional`, `ValidateNested`, `ValidateIf`, `Validate`, `ValidateClass` | ||
| - **String and network decorators**: `IsEmail`, `IsUrl`, `IsUUID`, `IsIP`, `IsAlpha`, `IsAlphanumeric`, `IsAscii`, `IsBase64`, `IsDateString`, `IsJSON`, `IsJWT`, `IsNumberString`, `IsISO8601`, `Matches`, `Length`, `MinLength`, `MaxLength`, `Contains`, `NotContains` | ||
| - **Number and date decorators**: `Min`, `Max`, `IsPositive`, `IsNegative`, `IsDivisibleBy`, `MinDate`, `MaxDate` | ||
| - **Presence and comparison decorators**: `IsEmpty`, `IsNotEmpty`, `Equals`, `NotEquals`, `IsIn`, `IsNotIn` | ||
| - **String and network decorators**: `IsEmail`, `IsUrl`, `IsUUID`, `IsIP`, `IsAlpha`, `IsAlphanumeric`, `IsAscii`, `IsBase64`, `IsBooleanString`, `IsDataURI`, `IsDateString`, `IsDecimal`, `IsFQDN`, `IsHexColor`, `IsHexadecimal`, `IsJSON`, `IsJWT`, `IsLocale`, `IsLowercase`, `IsMagnetURI`, `IsMimeType`, `IsMongoId`, `IsNumberString`, `IsPort`, `IsRFC3339`, `IsSemVer`, `IsUppercase`, `IsISO8601`, `Matches`, `Length`, `MinLength`, `MaxLength`, `Contains`, `NotContains` | ||
| - **Number, date, geo, and locale decorators**: `Min`, `Max`, `IsPositive`, `IsNegative`, `IsDivisibleBy`, `MinDate`, `MaxDate`, `IsLatitude`, `IsLongitude`, `IsLatLong`, `IsISBN`, `IsISSN`, `IsMobilePhone`, `IsPostalCode`, `IsRgbColor`, `IsCurrency` | ||
| - **Array decorators**: `ArrayContains`, `ArrayNotContains`, `ArrayNotEmpty`, `ArrayMinSize`, `ArrayMaxSize`, `ArrayUnique` | ||
| - **Mapped DTO helpers**: `PickType`, `OmitType`, `PartialType`, `IntersectionType` | ||
| - **Mapped DTO subpath**: `@fluojs/validation/mapped-types` | ||
| - **Standard Schema contract**: `StandardSchemaV1Like` for typing `ValidateClass(...)` schemas | ||
@@ -151,3 +159,4 @@ - **Validation flow**: `materialize()` for hydration + validation, `validate()` for validation-only checks | ||
| - `packages/validation/src/validation.test.ts` | ||
| - `packages/validation/src/mapped-types.test.ts` | ||
| - `examples/realworld-api/src/users/create-user.dto.ts` | ||
| - `examples/auth-jwt-passport/src/auth/login.dto.ts` |
103361
0.69%159
6%Updated