objection-timestamps
TypeScript icon, indicating that this package has built-in type declarations

4.1.0 • Public • Published

workflow

Objection-timestamps

Automatically modify the created_at and updated_at columns on your models.

v0.x usage

v1.x and v2.x usage

Setup

Basic

The basic setup assumes you have the columns created_at and updated_at in your table.

let Model = require('objection').Model;
let timestampPlugin = require('objection-timestamps').timestampPlugin;

class Post extends timestampPlugin()(Model) {
    static get tableName() {
        return 'user';
    }
    // allow timestamp plugin on this model
    static get timestamp() {
        return true;
    }
}

Post
    .query()
    .insertAndFetch({
        firstName: 'John',
        lastName: 'Doe'
    })
    .then(john => {
        console.log(john.created_at); // ISO-8601 Date format:  YYYY-MM-DDTHH:mm:ss.sssZ
        console.log(john.updated_at); // ISO-8601 Date format:  YYYY-MM-DDTHH:mm:ss.sssZ
    });

Advanced

You can pass in an object to override the default settings

let Model = require('objection').Model;
let timestampPlugin = require('objection-timestamps').timestampPlugin;

let plugin = timestampPlugin({
    createdAt: 'my_created_at', // change createdAt column name
    updatedAt: 'my_updated_at', // change updatedAt column name
    genDate: function() {
        return 'my date format';
    }
});

class Post extends plugin(Model) {
    static get tableName() {
        return 'user';
    }
    // allow timestamp plugin on this model
    static get timestamp() {
        return true;
    }
}

Post
    .query()
    .insertAndFetch({
        firstName: 'John',
        lastName: 'Doe'
    })
    .then(john => {
        console.log(john.my_created_at); // my date format
        console.log(john.my_updated_at); // my date format
    });

If you provide custom values plugin won't override them

let Model = require('objection').Model;
let timestampPlugin = require('objection-timestamps').timestampPlugin;

class Post extends timestampPlugin()(Model) {
    static get tableName() {
        return 'user';
    }
    // allow timestamp plugin on this model
    static get timestamp() {
        return true;
    }
}

Post
    .query()
    .insertAndFetch({
        firstName: 'John',
        lastName: 'Doe',
        created_at: 'Foobar',
        updated_at: 'Foobiz'
    })
    .then(john => {
        console.log(john.created_at); // Foobar
        console.log(john.updated_at); // Foobiz
    });

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 4.1.0
    230
    • latest

Version History

Package Sidebar

Install

npm i objection-timestamps

Weekly Downloads

279

Version

4.1.0

License

MIT

Unpacked Size

10.3 kB

Total Files

13

Last publish

Collaborators

  • oscaroox