@36node/swagen
Version:
A module boilerplate for nodejs and web.
139 lines (88 loc) • 3.43 kB
Markdown
# @36node/swagen
[![version][0]][1] [![downloads][2]][3]
## Install
```bash
yarn global add @36node/template-cli
```
## Usage
```sh
$ swagen -h
Usage: swagen [options] [command]
Options:
-V, --version output the version number
-h, --help output usage information
Commands:
koa [options] Generate code for koa server api
sdk [options] Generate code for client sdk
postman [options] Transform openapi file to postman collection file
```
### Generate client sdk code
```sh
$ swagen sdk -h
Usage: sdk [options] [yamlFile] [name] [dist]
Generate code for client sdk
Options:
-h, --help output usage information
# example, default name is filename of yaml file or specified by name option
$ swagen sdk ./petstore.yaml ./sdk petstore
```
### Generate koa server api code
```sh
$ swagen koa -h
Usage: koa [options] [yamlFile] [dist]
Generate code for koa server api
Options:
-h, --help output usage information
# example, if dist not specified, current dir will be used as default dist
$ swagen koa ./petstore.yaml ./koa
```
### Generate postman collection from openapi
```sh
$ swagen postman -h
Usage: postman [options] [yamlFile] [targetFile]
Transform openapi file to postman collection file
Options:
-h, --help output usage information
# example, default targetFile name is the openapi info title properity
$ swagen postman ./petstore.yaml ./petstore.postman_collection.json
# will generate petstore.postman_collection.json in pwd
# then can use fastman to import collection to postman
$ fastman import ./petstore.postman_collection.json
```
### Generate mock collection from openapi
```sh
$ swagen mock -h
Usage: mock [options] [yamlFile] [dist]
Transform openapi file to json-server data file
Options:
-c, --count [count] Add count of mock data to generate, default is 10
-h, --help output usage information
# example, default targetFile name is the openapi info title properity
$ swagen mock ./petstore.yaml ./mock/
# will generate data.json and routes.json in mock
# then can use json-server with these data and routes
$ json-server ./mock/db.json --routes ./mock/routes.json
```
More about **json-server** you can see [here](https://github.com/typicode/json-server)
### Use remote file
```sh
# set name with 'petstore'
swagen sdk https://api.36node.com/petstore/v0/openapi.yaml . petstore
```
## Contributing
1. Fork it!
2. Create your feature branch: `git checkout -b feature/a-new-command`
3. Commit your changes: `git commit -am 'Add a new command'`
4. Push to the branch: `git push origin feature/a-new-command`
5. Submit a pull request :D
## Add new template
1. Add new generator js file in src/generators, filename is the template name.
2. In new generator js file, export default function which generate template.
## Author
**template-cli** © [36node](https://github.com/36node), Released under the [MIT](./LICENSE) License.
Authored and maintained by 36node with help from contributors ([list](https://github.com/36node/template-cli/contributors)).
> [github.com/zzswang](https://github.com/zzswang) · GitHub [@36node](https://github.com/36node) · Twitter [@y](https://twitter.com/y)
[0]: https://img.shields.io/npm/v/@36node/swagen.svg?style=flat
[1]: https://npmjs.com/package/@36node/swagen
[2]: https://img.shields.io/npm/dm/@36node/swagen.svg?style=flat
[3]: https://npmjs.com/package/@36node/swagen