mongoose-schema-jsonschema
Version:
Mongoose extension that allows to build json schema for mongoose models, schemas and queries
37 lines (28 loc) • 775 B
JavaScript
const { plural } = require('pluralize');
module.exports = query_jsonSchema;
/**
* query_jsonSchema - returns json schema considering the query type and options
*
* @return {Object} json schema
*/
function query_jsonSchema() {
let { populate } = this._mongooseOptions;
if (populate) {
populate = Object.keys(populate).map(k => populate[k]);
}
let jsonSchema = this.model.jsonSchema(
this._fields, populate,
);
delete jsonSchema.required;
if (this.op.indexOf('findOne') === 0) return jsonSchema;
delete jsonSchema.title;
jsonSchema = {
title: `List of ${plural(this.model.modelName)}`,
type: 'array',
items: jsonSchema,
};
if (this.options.limit) {
jsonSchema.maxItems = this.options.limit;
}
return jsonSchema;
}