pwix:collection-timestampable
Preliminary notes
This package is a fork from zimme:collection-timestampable v 1.0.9:
- because I use it and like it (that's fine ;))
- unfortunately, it seems no more maintained
- so make it compatible with Meteor 2.x and incoming Meteor 3.x.
It also now features upsert
s management.
What is it ?
This Meteor package adds a timestampable behaviour to any Mongo collection.
Installation
This Meteor package is installable with the usual command:
meteor add pwix:collection-timestampable
Usage
Basic usage examples.
Attach
1 Posts = new Mongo.Collection( 'posts' ); 2 3 // Attach behaviour with the default options 4 Posts.attachBehaviour( 'timestampable' ); 5 6 // Attach behaviour with custom options 7 Posts.attachBehaviour( 'timestampable', { 8 createdAt: 'insertedAt', 9 createdBy: 'insertedBy', 10 updatedAt: 'modifiedAt', 11 updatedBy: false 12 });
Using CollectionBehaviours.attach
you can also attach a behaviour to multiple collections. You can also add multiple behaviours to a collection or add multiple behaviours to multiple collections.
Please see pwix:collection-behaviours
for more info on attaching behaviours to collections.
Insert
Examples are using default options.
1 Posts.insert({ 2 title: 'Awesome post title', 3 body: 'A really informative post.' 4 }); 5 6 // Inserted document 7 { 8 "_id": "J9frYKmxaowznW3yM", 9 "createdAt": "2015-04-28T19:31:28.065Z", 10 "createdBy": "0", 11 "body": "A really informative post.", 12 "title": "Awesome post title", 13 }
Update
Examples are using default options.
1 Posts.update({_id: 'J9frYKmxaowznW3yM'}, { 2 $set: { 3 title: 'More awesome post title' 4 } 5 }); 6 7 // Updated document 8 { 9 "_id": "J9frYKmxaowznW3yM", 10 "createdAt": "2015-04-28T19:31:28.065Z", 11 "createdBy": "0", 12 "body": "A really informative post.", 13 "updatedAt": "2015-04-28T19:51:20.047Z", 14 "updatedBy": "0", 15 "title": "Awesome post title", 16 }
Provides
Configuration
The package's behavior can be configured through a call to the CollectionBehaviours.configure()
method, with just a single javascript object argument, which itself should only contains the options you want override.
1 // Configure behaviour globally 2 // All collection using this behaviour will use these settings as defaults 3 // The settings below are the package default settings 4 CollectionBehaviours.configure( 'timestampable', { 5 createdAt: 'createdAt', 6 createdBy: 'createdBy', 7 updatedAt: 'updatedAt', 8 updatedBy: 'updatedBy', 9 systemId: '0' 10 });
Please note that CollectionBehaviours.configure()
method should be called in the same terms both in client and server sides.
Remind too that Meteor packages are instanciated at application level. They are so only configurable once, or, in other words, only one instance has to be or can be configured. Addtionnal calls to CollectionBehaviours.configure()
will just override the previous one. You have been warned: only the application should configure a package.
Options
The following options can be used:
-
createdAt
: Optional. Set to'string'
to change the fields name. Set tofalse
to omit field. -
createdBy
: Optional. Set to'string'
to change the fields name. Set tofalse
to omit field. -
updatedAt
: Optional. Set to'string'
to change the fields name. Set tofalse
to omit field. -
updatedBy
: Optional. Set to'string'
to change the fields name. Set tofalse
to omit field. -
systemId
: Optional. Set to'string'
to change the id representing the system.
Notes
This package attaches a schema to the collection(s) if aldeed:collection2
is used by the application. If aldeed:autoform
is available too, it adds aldeed:autoform
specific schema definitions.
NPM peer dependencies
None at the moment.
Translations
None at the moment.
Cookies and comparable technologies
None at the moment.
Issues & help
In case of support or error, please report your issue request to our Issues tracker.