UNPKG

ts-transformer-fastest-validator

Version:

TypeScript transformer converting types to fastest-validator schema.

76 lines (57 loc) 2.19 kB
[![Build Status][travis-image]][travis-url] [![Downloads](https://img.shields.io/npm/dm/ts-transformer-fastest-validator.svg)](https://www.npmjs.com/package/ts-transformer-fastest-validator) # ts-transformer-fastest-validator [![NPM version][npm-image]][npm-url] 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 ``` ## How to use directly with fastest-validator ```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>()); ``` ## How to use with Moleculer ```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}`; } } } } ``` ## How to use the custom transformer 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" } ] }, // ... } ``` ### What can be transformed Take a look at [tests](https://github.com/ipetrovic11/ts-transformer-fastest-validator/tree/main/test) for all possibilities. # License MIT [travis-image]:https://travis-ci.org/ipetrovic11/ts-transformer-fastest-validator.svg?branch=master [travis-url]:https://travis-ci.org/ipetrovic11/ts-transformer-fastest-validator [npm-image]:https://img.shields.io/npm/v/ts-transformer-fastest-validator.svg?style=flat [npm-url]:https://www.npmjs.com/package/ts-transformer-fastest-validator