Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ladjs/mongoose-omit-common-fields
Array of common fields to emit for Mongoose toObject/toJSON (helpful for security)
https://github.com/ladjs/mongoose-omit-common-fields
common fields helper koa lad mongo mongodb mongoose omit security select
Last synced: 7 days ago
JSON representation
Array of common fields to emit for Mongoose toObject/toJSON (helpful for security)
- Host: GitHub
- URL: https://github.com/ladjs/mongoose-omit-common-fields
- Owner: ladjs
- License: mit
- Created: 2017-09-17T19:46:57.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-04-08T08:03:37.000Z (over 2 years ago)
- Last Synced: 2024-10-28T19:13:33.645Z (18 days ago)
- Topics: common, fields, helper, koa, lad, mongo, mongodb, mongoose, omit, security, select
- Language: JavaScript
- Homepage: https://lad.js.org
- Size: 303 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mongoose-omit-common-fields
[![build status](https://img.shields.io/travis/ladjs/mongoose-omit-common-fields.svg)](https://travis-ci.org/ladjs/mongoose-omit-common-fields)
[![code coverage](https://img.shields.io/codecov/c/github/ladjs/mongoose-omit-common-fields.svg)](https://codecov.io/gh/ladjs/mongoose-omit-common-fields)
[![code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![made with lass](https://img.shields.io/badge/made_with-lass-95CC28.svg)](https://lass.js.org)
[![license](https://img.shields.io/github/license/ladjs/mongoose-omit-common-fields.svg)](<>)> Array of common fields to emit for Mongoose toObject/toJSON (helpful for security)
## Table of Contents
* [Install](#install)
* [Usage](#usage)
* [Reference](#reference)
* [API](#api)
* [omitCommonFields.underscored.keys](#omitcommonfieldsunderscoredkeys)
* [omitCommonFields.underscored.str](#omitcommonfieldsunderscoredstr)
* [omitCommonFields.underscored.obj](#omitcommonfieldsunderscoredobj)
* [omitCommonFields.underscored.objTrue](#omitcommonfieldsunderscoredobjtrue)
* [omitCommonFields.camelCased.keys](#omitcommonfieldscamelcasedkeys)
* [omitCommonFields.camelCased.str](#omitcommonfieldscamelcasedstr)
* [omitCommonFields.camelCased.obj](#omitcommonfieldscamelcasedobj)
* [omitCommonFields.camelCased.objTrue](#omitcommonfieldscamelcasedobjtrue)
* [Tips](#tips)
* [Contributors](#contributors)
* [License](#license)## Install
[npm][]:
```sh
npm install mongoose-omit-common-fields
```[yarn][]:
```sh
yarn add mongoose-omit-common-fields
```## Usage
```js
const mongoose = require('mongoose');
const mongooseHidden = require('mongoose-hidden')();
const omitCommonFields = require('mongoose-omit-common-fields');const Schema = new mongoose.Schema();
Schema.plugin(
mongooseHidden,
// if your database fields are camelCased then
// you will need to use `omitCommonFields.camelCased` variation
// (e.g. `omitCommonFields.camelCased.objTrue`)
{ hidden: omitCommonFields.underscored.objTrue }
);
```If you want to add additional keys to be omitted:
```js
Schema.plugin(
mongooseHidden,
{
hidden: {
...omitCommonFields.underscored.objTrue,
some_other_field: true,
another_field_to_ignore: true
}
}
);
```### Reference
For more information on `-` and object notation, please see and .
## API
### omitCommonFields.underscored.keys
```js
[ '_id',
'__v',
'ip',
'last_ips',
'email',
'api_token',
'group',
'attempts',
'last',
'hash',
'password',
'salt',
'reset_token_expires_at',
'reset_token',
'google_profile_id',
'google_access_token',
'google_refresh_token' ]
```### omitCommonFields.underscored.str
```js
"-_id -__v -ip -last_ips -email -api_token -group -attempts -last -hash -password -salt -reset_token_expires_at -reset_token -google_profile_id -google_access_token -google_refresh_token"
```### omitCommonFields.underscored.obj
```js
{ _id: 0,
__v: 0,
ip: 0,
last_ips: 0,
email: 0,
api_token: 0,
group: 0,
attempts: 0,
last: 0,
hash: 0,
password: 0,
salt: 0,
reset_token_expires_at: 0,
reset_token: 0,
google_profile_id: 0,
google_access_token: 0,
google_refresh_token: 0 }
```### omitCommonFields.underscored.objTrue
```js
{ _id: true,
__v: true,
ip: true,
last_ips: true,
email: true,
api_token: true,
group: true,
attempts: true,
last: true,
hash: true,
password: true,
salt: true,
reset_token_expires_at: true,
reset_token: true,
google_profile_id: true,
google_access_token: true,
google_refresh_token: true }
```### omitCommonFields.camelCased.keys
```js
[ 'id',
'v',
'ip',
'lastIps',
'email',
'apiToken',
'group',
'attempts',
'last',
'hash',
'password',
'salt',
'resetTokenExpiresAt',
'resetToken',
'googleProfileId',
'googleAccessToken',
'googleRefreshToken' ]
```### omitCommonFields.camelCased.str
```js
"-id -v -ip -lastIps -email -apiToken -group -attempts -last -hash -password -salt -resetTokenExpiresAt -resetToken -googleProfileId -googleAccessToken -googleRefreshToken"
```### omitCommonFields.camelCased.obj
```js
{ id: 0,
v: 0,
ip: 0,
lastIps: 0,
email: 0,
apiToken: 0,
group: 0,
attempts: 0,
last: 0,
hash: 0,
password: 0,
salt: 0,
resetTokenExpiresAt: 0,
resetToken: 0,
googleProfileId: 0,
googleAccessToken: 0,
googleRefreshToken: 0 }
```### omitCommonFields.camelCased.objTrue
```js
{ id: true,
v: true,
ip: true,
lastIps: true,
email: true,
apiToken: true,
group: true,
attempts: true,
last: true,
hash: true,
password: true,
salt: true,
resetTokenExpiresAt: true,
resetToken: true,
googleProfileId: true,
googleAccessToken: true,
googleRefreshToken: true }
```## Tips
Note that this package is already built-in to [mongoose-common-plugin][].
## Contributors
| Name | Website |
| -------------- | -------------------------- |
| **Nick Baugh** | |## License
[MIT](LICENSE) © [Nick Baugh](http://niftylettuce.com/)
##
[npm]: https://www.npmjs.com/
[yarn]: https://yarnpkg.com/
[mongoose-common-plugin]: https://github.com/ladjs/mongoose-common-plugin