# swagger-transformer

> This package uses decorators to generate the Swagger file template based on [AJV validator](https://ajv.js.org/).

Latest version **1.0.9** (published 2022-09-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install swagger-transformer
pnpm add swagger-transformer
yarn add swagger-transformer
bun add swagger-transformer
```

Provides the command `swagger-transformer`.

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.9 |
| Published | 2022-09-09 |
| First published | 2022-09-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 73.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Jeconias Santos |
| Maintainers | jeconias |
| Keywords | swagger, validators, decorators, typescript |

## Links

- npm: https://www.npmjs.com/package/swagger-transformer
- Repository: https://github.com/jeconias/swagger-transformer
- Homepage: https://github.com/jeconias/swagger-transformer#readme
- Issues: https://github.com/jeconias/swagger-transformer/issues
- npm.io page: https://npm.io/package/swagger-transformer

## Dependencies (3)

- [yaml](https://npm.io/package/yaml.md) ^2.1.1
- [commander](https://npm.io/package/commander.md) ^9.4.0
- [reflect-metadata](https://npm.io/package/reflect-metadata.md) ^0.1.13

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.9 (latest) — 2022-09-09
- 1.0.8 — 2022-09-09
- 1.0.7 — 2022-09-08
- 1.0.6 — 2022-09-08
- 1.0.5 — 2022-09-08
- 1.0.4 — 2022-09-08
- 1.0.3 — 2022-09-08
- 1.0.2 — 2022-09-08
- 1.0.1 — 2022-09-08
- 1.0.0 — 2022-09-08

## README

### Swagger Transformer

This package uses decorators to generate the Swagger file template based on [AJV validator](https://ajv.js.org/).

#### How to use

- Create a `sg-transformer-config.json`file based on `sg-transformer-config.example.json` in project root;
- Use the decorators tô mapping your paths;

    ```tsx
        // Controller
        @Post('/dogs')
        @Tags('dogs', ...)
        @ajvBodySchema({ schema: dogsRequestBody })
        @ajvResponseSchema({ httpCode: 200, schema: dogsResponsesSchema, description: "" }, {...}, {...})
        public async create(req: Request, res: Response){
            ...
        }
        
        @Get('/dogs/{dogName}')
        @Tags('dogs')
        @ajvPath({name: "dogName", schema: { type: "string", ... } })
        @ajvQuery({name: "ageFilter", schema: { type: "number", ... } })
        @ajvResponseSchema({ httpCode: 200, schema: dogsResponsesSchema, description: "" }, {...}, {...})
        public async list(req: Request, res: Response){
            ...
        }
    ```

    After register all decorators, call `SwaggerGenerate.init().generate({});` to swagger-transfomer binary generate a output.

- Run `yarn swagger-transformer gen -a ./src/AppExample.ts` to generate a Swagger file.


### WIP

- Some types of AJV are not implemented in Transformer.

---
_Source: https://npm.io/package/swagger-transformer · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
