Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/giddyinc/mongoose-to-swagger
Conversion library for transforming Mongoose schema objects into Swagger schema definitions.
https://github.com/giddyinc/mongoose-to-swagger
docs documentation documentation-tool mongoose open-api open-api-specification openapi-specification swagger swagger-js
Last synced: 6 days ago
JSON representation
Conversion library for transforming Mongoose schema objects into Swagger schema definitions.
- Host: GitHub
- URL: https://github.com/giddyinc/mongoose-to-swagger
- Owner: giddyinc
- License: mit
- Created: 2017-04-04T18:19:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-05-24T15:30:57.000Z (over 1 year ago)
- Last Synced: 2024-04-14T19:57:16.564Z (7 months ago)
- Topics: docs, documentation, documentation-tool, mongoose, open-api, open-api-specification, openapi-specification, swagger, swagger-js
- Language: TypeScript
- Homepage:
- Size: 1.6 MB
- Stars: 55
- Watchers: 23
- Forks: 27
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![NPM version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Coverage Status][coveralls-image]][coveralls-url]# mongoose-to-swagger
Conversion library for transforming [Mongoose](http://mongoosejs.com/) schema objects into [Swagger](http://swagger.io) schema definitions.
## Installation
```sh
$ npm install --save mongoose-to-swagger
```## Overview
Converts a mongoose model into a swagger schema.
## Usage
```js
const mongoose = require('mongoose');
const m2s = require('mongoose-to-swagger');
const Cat = mongoose.model('Cat', { name: String });
const swaggerSchema = m2s(Cat);
console.log(swaggerSchema);
```### Meta properties
By default, `description`, `enum`, and `required` fields are extracted from the mongoose schema definitions and placed into the correspoding swagger properties definitions. Additional meta props can be whitelisted using the props array on the options argument.
```ts
const Cat = mongoose.model('Cat', {
name: {
type: String,
/**
* Custom Properties
* `description` is enabled by default
*/
description: 'Name of the cat', // description is enabled by default
bar: 'baz' // custom prop
},
color: String
});const options = {
/**
* Whitelist of custom meta fields.
*/
props: ['bar'],
/**
* Fields to omit from model root. "__v" and "id" are omitted by default with omitMongooseInternals (default: true)
*/
omitFields: ['_id', 'color'],
/**
* Omit mongoose internals, omits mongoose internals from result ("__v", "id" - mongoose version field and virtual id field) (default: true)
*/
omitMongooseInternals: false
};const swaggerSchema = m2s(Cat, options);
```
## Contributing
We look forward to seeing your contributions!## License
MIT © [Ben Lugavere](http://benlugavere.com/)
[npm-image]: https://badge.fury.io/js/mongoose-to-swagger.svg
[npm-url]: https://npmjs.org/package/mongoose-to-swagger
[travis-image]: https://travis-ci.org/giddyinc/mongoose-to-swagger.svg?branch=master
[travis-url]: https://travis-ci.org/giddyinc/mongoose-to-swagger
[coveralls-image]: https://coveralls.io/repos/giddyinc/mongoose-to-swagger/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/r/giddyinc/mongoose-to-swagger?branch=master