Skip to content

Objection plugin to automatically modify the created_at and updated_at columns on your models

Notifications You must be signed in to change notification settings

oscaroox/objection-timestamps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
    });

About

Objection plugin to automatically modify the created_at and updated_at columns on your models

Resources

Stars

Watchers

Forks

Packages

No packages published