JSPM

@folhomee-public/mongoose-tracker

1.0.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q42119F
  • License Apache-2.0

Is a mongoose plugin that automatically keeps track of when the document has been created, updated and optionally when some fields have been modified

Package Exports

  • @folhomee-public/mongoose-tracker
  • @folhomee-public/mongoose-tracker/build/index.es.js
  • @folhomee-public/mongoose-tracker/build/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@folhomee-public/mongoose-tracker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Mongoose Tracker

Mongoose Tracker is a mongoose plugin that automatically keeps track of when the document has been created & updated. Rewrite from old mongoose-trackable which has not been updated for 7 years

Installation

With npm

npm install @folhomee/mongoose-tracker

With Yarn :

yarn add @folhomee/mongoose-tracker

Options

Fields Types Default Description
fieldsToTrack Array[String] none Array that contain fields to track
name String '__updates' name of the Array that will contains fields
limit Number 30 Number of element in fieldsToTrack

Usage

Use as you would any Mongoose plugin :

const mongoose = require('mongoose')
const mongooseTracker = require('@folhomee/mongoose-tracker')

const { Schema } = mongoose.Schema

const CarsSchema = new Schema({
    tags: [String],
    description: String,
    price: { type: Number, default: 0 },
})

CarsSchema.plugin(mongooseTracker, {
    limit: 50,
    name: 'metaDescriptions',
    fieldsToTrack: ['price', 'description'],
})

module.exports = mongoose.model('Cars', CarsSchema)

When create/update is successful, a History element is pushed to __updates or the named Array

History

Fields Types Description
field String name of key field
changedTo String value of key field
at Date time at modification

Contributing

  • Use eslint to lint your code.
  • Add tests for any new or changed functionality.
  • Update the readme with an example if you add or change any functionality.

Author: Folhomee. License Apache-2.0