Обычно вы используете встроенный ClassSerializerInterceptor
в сочетании с ValidationPipe
(с transform: true
).Он автоматически вызывает classToPlain
в ответе:
В вашем dto (с toPlainOnly
):
@Transform((money: ExchangeableMoney) => money.localValues, {toPlainOnly: true})
public foobar: ExchangeableMoney;
В вашем контроллере:
@UseInterceptors(ClassSerializerInterceptor)
или глобально в вашем main.ts:
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));