Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gabrielelana/mongoose-eventful
Mongoose plugin to emit events when documents are created or removed and when fields are changed
https://github.com/gabrielelana/mongoose-eventful
Last synced: 3 months ago
JSON representation
Mongoose plugin to emit events when documents are created or removed and when fields are changed
- Host: GitHub
- URL: https://github.com/gabrielelana/mongoose-eventful
- Owner: gabrielelana
- License: mit
- Created: 2014-02-04T11:15:02.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-04-15T14:17:53.000Z (almost 10 years ago)
- Last Synced: 2024-10-02T10:18:45.594Z (4 months ago)
- Language: JavaScript
- Homepage:
- Size: 187 KB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# What
Mongoose plugin to emit events when documents are created or removed and when fields are changed[![Build Status](https://travis-ci.org/gabrielelana/mongoose-eventful.png?branch=master)](https://travis-ci.org/gabrielelana/mongoose-eventful)
# 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: when the field is changed
✓ doesn't emit changed: when document is created
with a nested field
✓ emits changed event when the field is changed
✓ emits changed:. when the field is changed
with a virtual field
when emitChangedOnVirtualFields option is a list of virtual field paths
✓ emits changed: when the virtual field is changed
✓ emits changed: when dependent field is changed directly
✓ doesn't emit changed: if the virtual field is not changed
✓ doen't emit changed: if nothing changed
✓ doen't emit changed: if nothing changed after creation
```# TODO
* emits changed for array fields
* emit `changed:fieldName`
* 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?
* 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}`