jsm-utilities
Version:
A utilities library.
30 lines (29 loc) • 908 B
TypeScript
import mongoose from "mongoose";
interface ApplyChunksParams<T extends object> {
query: mongoose.Query<(T & mongoose.Document)[], T & mongoose.Document>;
onChunk?: (items: (T & mongoose.Document)[], page: number, progress: number) => Promise<void>;
onItem?: (item: T & mongoose.Document, index: number, page: number, progress: number) => Promise<void>;
chunkSize?: number;
maxItems?: number;
totalCount?: number;
log?: boolean;
}
/**
*
* @param {number} chunkSize
* - optional
* - default 100
* @param {number} maxItems
* - optional
* - default -1
* @param {number} totalCount
* - optional
* - default 0
* @update 2020-12-06 added allowDiskUse(true) to query
*/
export declare const applyOnDocumentChunks: <T extends object = object>(params: ApplyChunksParams<T>) => Promise<{
totalProcessed: number;
totalPages: number;
completed: boolean;
}>;
export {};