TypeIs 특수 타입
열거형과 JSON 타입입니다. 엔티티, DTO, 라우트 옵션에서 모두 사용할 수 있습니다.
import { TypeIs } from '@asapjs/sequelize';이 페이지에서 찾을 수 있는 것
| 심볼 | Sequelize | Swagger | 고유 옵션 |
|---|---|---|---|
TypeIs.ENUM | ENUM | string (enum 배열) | values (필수) |
TypeIs.JSON | JSON | object | schema |
참고: 기존 문서에서 언급되던
TypeIs.BASE64와TypeIs.BINARY는 현재@asapjs/schema의TypeIsInterface에 정의되어 있지 않으며,@asapjs/sequelize에서도 export하지 않습니다.sequelizePlugin의case 'binary'핸들러는 존재하지만, 해당 타입을 생성하는 팩토리가 등록되어 있지 않아 사용자 코드에서 접근할 수 없습니다.
TypeIs.ENUM
TypeIs.ENUM(options: EnumOptions)| 고유 옵션 | 타입 | 필수 | 설명 |
|---|---|---|---|
values | string[] | 예 | 허용 값 목록 (1개 이상 필수) |
| 항목 | 값 |
|---|---|
| Sequelize 타입 | DataTypes.ENUM(...values) |
| Swagger 타입 | string with enum 배열 |
fixValue | values에 존재하면 해당 값 반환, 없으면 Error throw |
enum UserRole { ADMIN = 'ADMIN', USER = 'USER' }
@TypeIs.ENUM({
values: Object.keys(UserRole),
comment: 'User role',
})
role: UserRole;TypeIs.JSON
TypeIs.JSON(options?: JsonOptions)| 고유 옵션 | 타입 | 설명 |
|---|---|---|
schema | Record<string, any> | JSON Schema 검증용 (향후 확장 예정) |
| 항목 | 값 |
|---|---|
| Sequelize 타입 | DataTypes.JSON |
| Swagger 타입 | object |
fixValue | 값이 문자열이면 JSON.parse 시도; 그렇지 않으면 그대로 반환. 파싱 실패 시 Error throw. |
@TypeIs.JSON({ comment: 'Arbitrary metadata' })
metadata: Record<string, unknown>;관련 항목
- TypeIs 기본 타입 — 숫자, 문자열, 불리언, 날짜
- TypeIs 관계 타입 — FOREIGNKEY, BELONGSTO
- TypeIs 복합 타입 — DTO, QUERY, ARRAY
- @asapjs/sequelize 개요 — TypeIs 빠른 참조 테이블
Last updated on