mongoose-eventful
v0.1.3
Published
Mongoose plugin to emit events when documents are created or removed and when fields are changed
Downloads
24
Maintainers
Readme
What
Mongoose plugin to emit events when documents are created or removed and when fields are changed
Install
npm install mongoose-eventful
Usage
Right now this is the best documentation I can provide
Model with mongoose-eventful plugin
✓ emits created when document is created
✓ emits removed when document is removed
✓ doesn't emit changed when document is created
when emitChangedOnCreated option is true
✓ emits changed when document is created
with a simple field
✓ emits changed event when the field is changed
✓ emits changed:<FieldName> when the field is changed
✓ doesn't emit changed:<FieldName> when document is created
with a nested field
✓ emits changed event when the field is changed
✓ emits changed:<FieldName>.<FieldName> when the field is changed
with a virtual field
when emitChangedOnVirtualFields option is a list of virtual field paths
✓ emits changed:<VirtualFieldName> when the virtual field is changed
✓ emits changed:<VirtualFieldName> when dependent field is changed directly
✓ doesn't emit changed:<VirtualFieldName> if the virtual field is not changed
✓ doen't emit changed:<VirtualFieldName> if nothing changed
✓ doen't emit changed:<VirtualFieldName> if nothing changed after creation
TODO
- emits changed for array fields
- emit
changed:fieldName
- emit
- emits changed for fields in arrays of nested documents
- emit
changed:fieldName
- give all document, nested document changed, index of nested document
- emit
changed:fieldName.nestedFieldName
- give nested document changed, index of nested document, all document
- emit
changed:fieldName.N.nestedFieldName
- give nested document changed, index of nested document, all document
- what about added nested documents?
- what about removed nested documents?
- emit
- emits changed on virtual fields
- detects changes on non primitive values of virtual field
emitChangedOnVirtualFields
set to true means "for all virtual fields"emitChangedOnVirtualFields
set to{virtualFieldPath: listOfFieldsItDependsOn}