import { FindOptions } from "sequelize"; import { Model } from "sequelize-typescript"; class BaseModel extends Model { static async findAllInBatches( query: FindOptions, callback: (results: Array, query: FindOptions) => Promise ) { if (!query.offset) { query.offset = 0; } if (!query.limit) { query.limit = 10; } let results; do { // @ts-expect-error this T results = await this.findAll(query); await callback(results, query); query.offset += query.limit; } while (results.length >= query.limit); } } export default BaseModel;