1.0.3 • Published 6 years ago

mongoosetters v1.0.3

Weekly downloads
4
License
WTFPL
Repository
github
Last release
6 years ago

mongoosEtters

adds a default getter and setter for each defined virtual that has no getters or setters on a schema. This works as a global schema plugin too!

Options:

at the moment the only option is { prefix }. By default the getters and setters will use { prefix: '_' } but if you pass in a different string like say, { prefix: 'boo' } it will use that instead.

Example:

#!/usr/bin/env node
'use strict'

const defaulter = require('mongoosetters')
const mongoose = require('mongoose')

const Schema = mongoose.Schema

const person = new Schema({
  name: String,
  age: Number,
  siblings: Array
})

person.virtual('nickName')
person.virtual('placeHolder')
person.virtual('setAndGetAlreadySet').set(function (val) {
  this.somethingElse = val
}).get(function () {
  return this.somethingElse
})

person.plugin(defaulter)

const Person = mongoose.model('person', person)

const billy = new Person({
  name: 'William',
  age: 25,
  siblings: [ 'Mary' ]
})

billy.nickName = 'billy'
console.log(`${billy._nickName} = ${billy.nickName}`)

billy.placeHolder = 'place held.'
console.log(`${billy._placeHolder} = ${billy.placeHolder}`)

billy.setAndGetAlreadySet = 'test'
console.log(`${billy.somethingElse} = ${billy.setAndGetAlreadySet}`)

Output:

$: ./index.js
billy = billy
place held. = place held.
test = test
$:

License

        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
                    Version 2, December 2004 

 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> 

 Everyone is permitted to copy and distribute verbatim or modified 
 copies of this license document, and changing it is allowed as long 
 as the name is changed. 

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 

  0. You just DO WHAT THE FUCK YOU WANT TO.