ts-transformer-fastest-validator
Version:
TypeScript transformer converting types to fastest-validator schema.
76 lines (57 loc) • 2.19 kB
Markdown
[![Build Status][travis-image]][travis-url] [](https://www.npmjs.com/package/ts-transformer-fastest-validator)
A TypeScript custom transformer to obtain json schema for [fastest-validator](https://github.com/icebob/fastest-validator) from TypeScript interface
```
$ npm install ts-transformer-fastest-validator --save
```
```ts
import { convertToSchema } from 'ts-transformer-fastest-validator';
import Validator from 'fastest';
interface IExample {
str: string;
}
const v = new Validator();
v.validate({ str: 'string' }, convertToSchema<IExample>());
```
```ts
import { convertToSchema } from 'ts-transformer-fastest-validator';
interface IUser {
name: string;
}
const GreeterService: ServiceSchema = {
actions: {
welcome: {
params: convertToSchema<IUser>(),
handler({ params: user }: Context<IUser>) {
return `Welcome, ${user.name}`;
}
}
}
}
```
Unfortunately, TypeScript itself does not currently provide any easy way to use custom transformers (See https://github.com/Microsoft/TypeScript/issues/14419).
### For ttypescript
See [ttypescript's README](https://github.com/cevek/ttypescript/blob/master/README.md) for how to use this with module bundlers such as webpack or Rollup.
```json
// tsconfig.json
{
"compilerOptions": {
// ...
"plugins": [
{ "transform": "ts-transformer-fastest-validator/transformer" }
]
},
// ...
}
```
Take a look at [tests](https://github.com/ipetrovic11/ts-transformer-fastest-validator/tree/main/test) for all possibilities.
MIT
[]:https://travis-ci.org/ipetrovic11/ts-transformer-fastest-validator.svg?branch=master
[]:https://travis-ci.org/ipetrovic11/ts-transformer-fastest-validator
[]:https://img.shields.io/npm/v/ts-transformer-fastest-validator.svg?style=flat
[]:https://www.npmjs.com/package/ts-transformer-fastest-validator