# express-ts-generator

> It strongly support type definition for express request and response model in accordance with Open API

Latest version **1.0.2** (published 2020-01-26) · ISC license · 0 weekly downloads

## Install

```sh
npm install express-ts-generator
pnpm add express-ts-generator
yarn add express-ts-generator
bun add express-ts-generator
```

Provides the command `apigen`.

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2020-01-26 |
| First published | 2020-01-26 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 110.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | steelydylan |

## Links

- npm: https://www.npmjs.com/package/express-ts-generator
- npm.io page: https://npm.io/package/express-ts-generator

## Dependencies (4)

- [yargs](https://npm.io/package/yargs.md) ^15.1.0
- [typescript](https://npm.io/package/typescript.md) ^3.7.5
- [@types/express](https://npm.io/package/@types/express.md) ^4.17.2
- [typescript-parser](https://npm.io/package/typescript-parser.md) ^2.6.1

## Recent versions

- 1.0.2 (latest) — 2020-01-26
- 1.0.1 — 2020-01-26
- 1.0.0 — 2020-01-26

## README

# express-ts-generator

It strongly support type definition for express request and response model in accordance with Open API


## Install

```sh
$ npm install dtsgenerator express-ts-generator --save
```

## Generate definition file

```sh
$ npx dtsgen openapi/openapi.yaml -o ./src/@types/openapi.d.ts && npx apigen -s ./src/@types/openapi.d.ts -d ./src/@types/api.ts
```

generated file will look like this

```ts
/* eslint-disable @typescript-eslint/no-namespace */
/* eslint-disable @typescript-eslint/no-explicit-any */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import { Controller } from 'express-ts-generator';

export namespace Music$MusicIdController {
  export type Get = Controller<{
    response: Paths.Music$MusicId.Get.Responses.$200;
  }>;
}
export namespace MusicsController {
  export type Get = Controller<{
    response: Paths.Musics.Get.Responses.$200;
  }>;
  export type Post = Controller<{
    body: Paths.Musics.Post.RequestBody;
  }>;
}
```

## Usage

in express controller...

```ts
import { SomeController } from './types/api';
export const Post: SomeController.Post = async (
  request,
  response
): Promise<void> => {
  // request and response will be typed automatically
};

export const Get: SomeController.Get = async (
  request,
  response
): Promise<void> => {
  // request and response will be typed automatically
};
```

## You can see how useful it is!!

![](./screenshot.png)


## Demo Repository

[Github](https://github.com/steelydylan/express-ts-generator-test)

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