Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Array of common fields to emit for Mongoose toObject/toJSON (helpful for security)

License

Notifications You must be signed in to change notification settings

ladjs/mongoose-omit-common-fields

Repository files navigation

mongoose-omit-common-fields

build status code coverage code style styled with prettier made with lass license

Array of common fields to emit for Mongoose toObject/toJSON (helpful for security)

Table of Contents

Install

npm:

npm install mongoose-omit-common-fields

yarn:

yarn add mongoose-omit-common-fields

Usage

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:

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 http://mongoosejs.com/docs/api.html#query_Query-select and https://github.com/mblarsen/mongoose-hidden.

API

omitCommonFields.underscored.keys

[ '_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

"-_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

{ _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

{ _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

[ 'id',
  'v',
  'ip',
  'lastIps',
  'email',
  'apiToken',
  'group',
  'attempts',
  'last',
  'hash',
  'password',
  'salt',
  'resetTokenExpiresAt',
  'resetToken',
  'googleProfileId',
  'googleAccessToken',
  'googleRefreshToken' ]

omitCommonFields.camelCased.str

"-id -v -ip -lastIps -email -apiToken -group -attempts -last -hash -password -salt -resetTokenExpiresAt -resetToken -googleProfileId -googleAccessToken -googleRefreshToken"

omitCommonFields.camelCased.obj

{ 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

{ 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 http://niftylettuce.com/

License

MIT © Nick Baugh