nestjs-valibot
TypeScript icon, indicating that this package has built-in type declarations

0.0.10 • Public • Published

nestjs-valibot

Features

How to start

1. define valibot pipe globally it'll be initialize ValibotValidationPipe internally

@Module({
  imports: [
    ValibotModule.forRoot({
      disableErrorMessages: true,
    }),
  ],
})
export class AppModule {}

or

import { ValibotValidationPipe } from 'nestjs-valibot';

@Module({
  providers: [
    {
      provide: APP_PIPE,
      useClass: ValibotValidationPipe,
    },
  ],
})
export class AppModule {}

or

// main.ts
app.useGlobalPipes(new ValibotValidationPipe());

2. create DTO

// app.module.ts
import * as v from 'valibot';
import { createDto } from 'nestjs-valibot';

const schema = v.object({
  page: v.number(),
});

export class GetRowDto extends createDto(schema) {}

3. use it

import { GetRowDto } from './app.dto';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Post()
  getPage(@Body() { page }: GetRowDto) {
    return page;
  }
}

4. using onto frontend

try {
  const data = new GetRowDto(input);
} catch(err: ValiError) {}
const { issues, success } = safeParse(GetRowDto.schema);

TODO

  • [x] create pipe to connect valibot output to nestjs
  • [x] create module that is customizable

Dependents (0)

Package Sidebar

Install

npm i nestjs-valibot

Weekly Downloads

53

Version

0.0.10

License

MIT

Unpacked Size

6.27 kB

Total Files

6

Last publish

Collaborators

  • bino0216