1.0.0 • Published 3 years ago
typeorm-optimistic-lock v1.0.0
typeorm-optimistic-lock
TypeORM helper for optimistic lock persistance
Notes
- This library tested only for Postgres, but potentially can be improved for any database
 - You should manually detect type of persistance: insert or update. Detected by entity existance while fetching as usual
 - Entity should have required integer property 
version - On inserting need to set 
version: 1 - On updating in 
whereUpdateneed to use currentversion, inforUpdateneed to set currentversion+ 1 
Insert example
import { typeormOptimisticLockSave } from "typeorm-optimistic-lock";
await typeormOptimisticLockSave({
  repository: connection.getRepository(Test),
  conflictError: new Error("conflict happens"),
  forInsert: { id: 1, text: "foo bar", version: 1 },
});Update example
import { typeormOptimisticLockSave } from "typeorm-optimistic-lock";
await typeormOptimisticLockSave({
  repository: connection.getRepository(Test),
  conflictError: new Error("conflict happens"),
  forUpdate: { id: 1, text: "test", version: 2 },
  whereUpdate: { id: 1, version: 1 },
});1.0.0
3 years ago