import { IBatchResult } from "../../models/utility/batch" import { IPluginVersion } from "../../models/utility/plugin_version" import { isHigherVersion } from "../../utility/utility_functions" import { DBM } from "./db_manager" export namespace Batch { let registeredBatch = <{ id: string, version: string, batch: () => Promise }[]>[] export async function execute(version: string): Promise { for (let b of registeredBatch) { if ((await DB.Find({ collection: "bst.batchResult", batchId: b.id })).length == 0) if (!isHigherVersion(version, b.version)) { await b.batch() await DBM.insert(null, { collection: "bst.batchResult", batchId: b.id }) } } } export function register(id: string, version: string, batch: () => Promise) { registeredBatch.push({ id: id, version: version, batch: batch }) } }