Comments (3)
Hi.
Since you are utilizing class-transformer
, @Type
decorator from class-transformer
could work for you.
You need:
class RootDto {
@IsNumber()
id : number,
@IsString()
description : string,
@IsString()
type : string,
@ValidateNested()
@Type(typeHelpOptions => {
const type = typeHelpOptions.object.type; // attribute type value from the object.
switch (type) {
case 'TypeOne':
return TypeOneDto;
case 'TypeTwo':
return TypeTwoDto;
case 'TypeThree':
return TypeThreeDto;
default:
throw new Error(`No matching class found for: ${type}`);
}
})
metadata : TypeOneDto | TypeTwoDto | TypeThreeDto
}
Important: For this to work, your object, must go through class-transformer
method plainToClass
. For example, if you are using Nest, it should already happen. But, in general, if you are manually instantiating class and filling with plain object, then @Type
won't even get executed, hence, won't work.
from class-validator.
Hi @emir-gradient ,
Yes this is with nestjs and your solution seems to work well, i did add @IsObject()
decorator to make metadata field required.
Thanks.
from class-validator.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
from class-validator.
Related Issues (20)
- Class-level validators
- question: How do I set a default error message for my decorator? HOT 2
- question: Default definition "strong password" is unclear HOT 3
- question: isPhoneNumber validation input without country code HOT 1
- feature: return promise from validation only if necessary and validate sync if possible
- fix: Typo in MaxDate comment HOT 2
- question: get constrains in decorators and not the message HOT 1
- fix please: class level decorator makes bug HOT 2
- feature: add `@IsVatId()` decorator HOT 1
- Please add a JavaScript verification decorator item
- question: How to get object state before it was transformed in Validator?
- Unable to use cutom validator, since it is saying it is not a function
- feature: accsess eachPrefix in error messages
- Easy way to compose ORed validators HOT 1
- question: <Advanced conditional validation> HOT 2
- question: array of numbers with null values HOT 1
- fix: Cannot find namespace 'ValidatorJS'
- fix: ValidateNested allows empty arrays as objecs
- question: Validating based upon root object's property
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from class-validator.