mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-06-15 10:45:01 +00:00
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import z from "zod/v4";
|
|
import { automodTrigger } from "../helpers.js";
|
|
|
|
// tslint:disable-next-line
|
|
interface CounterTriggerResult {}
|
|
|
|
const configSchema = z.strictObject({
|
|
counter: z.string().max(100),
|
|
trigger: z.string().max(100),
|
|
reverse: z.boolean().optional(),
|
|
});
|
|
|
|
export const CounterTrigger = automodTrigger<CounterTriggerResult>()({
|
|
configSchema,
|
|
|
|
async match({ triggerConfig, context }) {
|
|
if (!context.counterTrigger) {
|
|
return;
|
|
}
|
|
|
|
if (context.counterTrigger.counter !== triggerConfig.counter) {
|
|
return;
|
|
}
|
|
|
|
if (context.counterTrigger.trigger !== triggerConfig.trigger) {
|
|
return;
|
|
}
|
|
|
|
const reverse = triggerConfig.reverse ?? false;
|
|
if (context.counterTrigger.reverse !== reverse) {
|
|
return;
|
|
}
|
|
|
|
return {
|
|
extra: {},
|
|
};
|
|
},
|
|
|
|
renderMatchInformation({ contexts }) {
|
|
let str = `Matched counter trigger \`${contexts[0].counterTrigger!.prettyCounter} / ${
|
|
contexts[0].counterTrigger!.prettyTrigger
|
|
}\``;
|
|
if (contexts[0].counterTrigger!.reverse) {
|
|
str += " (reverse)";
|
|
}
|
|
|
|
return str;
|
|
},
|
|
});
|