Skip to content

gcmarques/sequelize-extension-updatedBy

Repository files navigation

sequelize-extension-updatedBy

Build Status codecov GitHub license

Installation

$ npm install --save sequelize-extension-updatedBy

Usage

This library uses sequelize-extension to extend sequelize models. If a model has a updatedBy field, this extension will automatically set updatedBy to options.user.id when an instance is updated.

const Sequelize = require('sequelize');
const extendSequelize = require('sequelize-extension');
const enhanceUpdatedBy = require('sequelize-extension-updatedBy');

const sequelize = new Sequelize(...);

const Task = sequelize.define('task', {
  name: Sequelize.STRING(255),
});

extendSequelize([Task], {
  updatedBy: enhanceUpdatedBy(),
});

const task1 = await Task.create({...}, { user: { id: 2 } });
console.log(task1.updatedBy);
// 2

const task2 = await Task.create({...});
console.log(task2.updatedBy);
// 1 <- default userId

await Task.bulkCreate([
  {...},
  {...},
], { user: { id: 3 } });
// All created tasks will have updatedBy === 3

task1.name = 'New name';
await task1.save();
console.log(task1.updatedBy);
// 1

await Task.update(
  {...}, // values
  {
    where: {...},
    user: { id: 4 },
  },
);
// All updated tasks will have updatedBy === 4

Other Extensions

sequelize-extension-tracking - Automatically track sequelize instance updates.
sequelize-extension-createdby - Automatically set createdBy with options.user.id option.
sequelize-extension-deletedby - Automatically set deletedBy with options.user.id option.
sequelize-extension-graphql - Create GraphQL schema based on sequelize models.
sequelize-extension-view - Models with the method createViews will be called to create table views (virtual models).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published