import { logger } from './logger'
import { Transaction } from 'sequelize'
+function retryTransactionWrapper <T, A, B, C, D> (
+ functionToRetry: (arg1: A, arg2: B, arg3: C, arg4: D) => Promise<T> | Bluebird<T>,
+ arg1: A,
+ arg2: B,
+ arg3: C,
+ arg4: D,
+): Promise<T>
+
function retryTransactionWrapper <T, A, B, C> (
functionToRetry: (arg1: A, arg2: B, arg3: C) => Promise<T> | Bluebird<T>,
arg1: A,
return fn()
}
+function deleteNonExistingModels <T extends { hasSameUniqueKeysThan (other: T): boolean } & Model<T>> (
+ fromDatabase: T[],
+ newModels: T[],
+ t: Transaction
+) {
+ return fromDatabase.filter(f => !newModels.find(newModel => newModel.hasSameUniqueKeysThan(f)))
+ .map(f => f.destroy({ transaction: t }))
+}
+
// ---------------------------------------------------------------------------
export {
retryTransactionWrapper,
transactionRetryer,
updateInstanceWithAnother,
- afterCommitIfTransaction
+ afterCommitIfTransaction,
+ deleteNonExistingModels
}