Slack: validate runtime blocks in send and edit paths

This commit is contained in:
Colin
2026-02-16 13:04:42 -05:00
committed by Peter Steinberger
parent c01c6b7079
commit 6e790303df
5 changed files with 126 additions and 4 deletions

View File

@@ -31,11 +31,15 @@ function assertBlocksArray(raw: unknown) {
}
}
export function validateSlackBlocksArray(raw: unknown): (Block | KnownBlock)[] {
assertBlocksArray(raw);
return raw as (Block | KnownBlock)[];
}
export function parseSlackBlocksInput(raw: unknown): (Block | KnownBlock)[] | undefined {
if (raw == null) {
return undefined;
}
const parsed = typeof raw === "string" ? parseBlocksJson(raw) : raw;
assertBlocksArray(parsed);
return parsed as (Block | KnownBlock)[];
return validateSlackBlocksArray(parsed);
}