1.0.3 • Published 6 years ago
mongoosetters v1.0.3
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.