Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/medolino/mongoose-schema-parser
Parse mongoose schema to JSON format
https://github.com/medolino/mongoose-schema-parser
mongoose mongoose-parser parse parser schema schema-parser
Last synced: about 13 hours ago
JSON representation
Parse mongoose schema to JSON format
- Host: GitHub
- URL: https://github.com/medolino/mongoose-schema-parser
- Owner: medolino
- Created: 2018-09-18T21:03:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-17T06:20:38.000Z (29 days ago)
- Last Synced: 2025-02-03T12:12:35.918Z (11 days ago)
- Topics: mongoose, mongoose-parser, parse, parser, schema, schema-parser
- Language: JavaScript
- Homepage:
- Size: 1000 KB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mongoose Schema Parser
[![Build Status](https://travis-ci.org/medolino/mongoose-schema-parser.svg?branch=master)](https://travis-ci.org/medolino/mongoose-schema-parser)
[![Coverage Status](https://coveralls.io/repos/github/medolino/mongoose-schema-parser/badge.svg?branch=master)](https://coveralls.io/github/medolino/mongoose-schema-parser?branch=master)
[![Known Vulnerabilities](https://snyk.io/test/github/medolino/mongoose-schema-parser/badge.svg?targetFile=package.json)](https://snyk.io/test/github/medolino/mongoose-schema-parser?targetFile=package.json)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![npm](https://img.shields.io/npm/v/mongoose-schema-parser.svg)](https://www.npmjs.com/package/mongoose-schema-parser)Mongoose Schema Parser tool parses Mongoose schemas defined in project and returns data in JSON format.
## How It Works
Script uses mongoose instance to parse registered schemas.
You can use it from CLI or inside your application code.## Install
Install globally if you want to use it from cli
```bash
npm i -g mongoose-schema-parser
```or locally if you want to use it from your code
```bash
npm i mongoose-schema-parser --save
```## Usage
#### Cli usage
If you install package globally, you can run it from anywhere in your system.
Script returns file with parsed schema in JSON format.```bash
mongoose-schema-parser -c /path/to/project -p "**/*.model.js" -o output-schema.json
```Script options:
```bash
-c, --cwd Current working directory [string] [default: "/your/project/dir"]
-p, --pattern Search file pattern [string] [required] [default: "**/*.model.js"]
-o, --output Output file path [string] [required]
--help, -h Show help [boolean]
```Output example:
```JSON
{
"Category": {
"schema": {
"_id": {
"type": "ObjectId"
},
"name": {
"type": "String",
"details": {
"required": true,
"maxlength": 150
}
},
"enabled": {
"type": "Boolean",
"details": {
"default": true
}
}
}
},
"Item": {
"schema": {
"_id": {
"type": "ObjectId"
},
"name": {
"type": "String"
},
"category": {
"type": "ObjectId",
"details": {
"ref": "Category"
}
},
"sizes": {
"type": "Schema",
"schema": {
"size": {
"type": "Number"
}
}
},
"created": {
"type": "Date",
"details": {}
}
}
}
}```
#### Code usage
This example shows, how to use ```parseSchemaFromMongoose``` function to parse schema in your application. Function returns schema as JS object.
```JS
const mongoose = require('mongoose')
const { parseSchemaFromMongoose } = require('mongoose-schema-parser')// content of ./models/example-01.model
/*
const ExampleSchema = new mongoose.Schema({
name: 'string'
})
mongoose.model('ExampleModel', ExampleSchema)
*/
require('./models/example-01.model')const exportedSchema = parseSchemaFromMongoose(mongoose)
console.log(JSON.stringify(exportedSchema, null, 2))
/* outputs:
{
"ExampleModel": {
"schema": {
"name": {
"type": "String"
},
"_id": {
"type": "ObjectId"
}
}
}
}
*/
```