Skip to content

Conversion library for transforming Mongoose schema objects into Swagger schema definitions.

License

Notifications You must be signed in to change notification settings

giddyinc/mongoose-to-swagger

Folders and files

NameName
Last commit message
Last commit date
Jan 13, 2020
Dec 11, 2022
Apr 20, 2022
Apr 2, 2021
Apr 4, 2017
Jan 13, 2020
Apr 4, 2017
Oct 24, 2019
Oct 11, 2021
Apr 7, 2021
Apr 4, 2017
Apr 20, 2022
Apr 21, 2022
Apr 21, 2022
Apr 2, 2021

Repository files navigation

NPM version Build Status Coverage Status

mongoose-to-swagger

Conversion library for transforming Mongoose schema objects into Swagger schema definitions.

Installation

$ npm install --save mongoose-to-swagger

Overview

Converts a mongoose model into a swagger schema.

Usage

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.

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