@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
67 lines (65 loc) • 2.24 kB
JavaScript
import { Result } from "@sapphire/result";
//#region src/lib/utils/preconditions/conditions/PreconditionConditionOr.ts
/**
* An {@link IPreconditionCondition} which runs all containers similarly to doing (V0 || V1 [|| V2 [|| V3 ...]]).
* @since 1.0.0
*/
const PreconditionConditionOr = {
async messageSequential(message, command, entries, context) {
let error = null;
for (const child of entries) {
const result = await child.messageRun(message, command, context);
if (result.isOk()) return result;
error = result;
}
return error ?? Result.ok();
},
async messageParallel(message, command, entries, context) {
const results = await Promise.all(entries.map((entry) => entry.messageRun(message, command, context)));
let error = null;
for (const result of results) {
if (result.isOk()) return result;
error = result;
}
return error ?? Result.ok();
},
async chatInputSequential(interaction, command, entries, context) {
let error = null;
for (const child of entries) {
const result = await child.chatInputRun(interaction, command, context);
if (result.isOk()) return result;
error = result;
}
return error ?? Result.ok();
},
async chatInputParallel(interaction, command, entries, context) {
const results = await Promise.all(entries.map((entry) => entry.chatInputRun(interaction, command, context)));
let error = null;
for (const result of results) {
if (result.isOk()) return result;
error = result;
}
return error ?? Result.ok();
},
async contextMenuSequential(interaction, command, entries, context) {
let error = null;
for (const child of entries) {
const result = await child.contextMenuRun(interaction, command, context);
if (result.isOk()) return result;
error = result;
}
return error ?? Result.ok();
},
async contextMenuParallel(interaction, command, entries, context) {
const results = await Promise.all(entries.map((entry) => entry.contextMenuRun(interaction, command, context)));
let error = null;
for (const result of results) {
if (result.isOk()) return result;
error = result;
}
return error ?? Result.ok();
}
};
//#endregion
export { PreconditionConditionOr };
//# sourceMappingURL=PreconditionConditionOr.mjs.map