refactor(auto-reply): share standard set/unset slash parsing

This commit is contained in:
Peter Steinberger
2026-02-18 23:08:18 +00:00
parent 6cbd00a3c6
commit 6eb0964fa6
4 changed files with 53 additions and 10 deletions

View File

@@ -0,0 +1,23 @@
import { parseSlashCommandWithSetUnset } from "./commands-setunset.js";
export function parseStandardSetUnsetSlashCommand<T>(params: {
raw: string;
slash: string;
invalidMessage: string;
usageMessage: string;
onKnownAction: (action: string, args: string) => T | undefined;
onSet?: (path: string, value: unknown) => T;
onUnset?: (path: string) => T;
onError?: (message: string) => T;
}): T | null {
return parseSlashCommandWithSetUnset<T>({
raw: params.raw,
slash: params.slash,
invalidMessage: params.invalidMessage,
usageMessage: params.usageMessage,
onKnownAction: params.onKnownAction,
onSet: params.onSet ?? ((path, value) => ({ action: "set", path, value }) as T),
onUnset: params.onUnset ?? ((path) => ({ action: "unset", path }) as T),
onError: params.onError ?? ((message) => ({ action: "error", message }) as T),
});
}