0.0.3 • Published 6 years ago

sequelize-extension-updatedby v0.0.3

Weekly downloads
5
License
MIT
Repository
github
Last release
6 years ago

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).