refactor: centralize outbound policy + target schema

This commit is contained in:
Peter Steinberger
2026-01-17 03:33:32 +00:00
parent 3af391eec7
commit 09bed2ccde
10 changed files with 310 additions and 180 deletions

View File

@@ -1,4 +1,8 @@
import { Type } from "@sinclair/typebox";
import {
CHANNEL_TARGET_DESCRIPTION,
CHANNEL_TARGETS_DESCRIPTION,
} from "../../infra/outbound/channel-target.js";
type StringEnumOptions<T extends readonly string[]> = {
description?: string;
@@ -25,3 +29,13 @@ export function optionalStringEnum<T extends readonly string[]>(
) {
return Type.Optional(stringEnum(values, options));
}
export function channelTargetSchema(options?: { description?: string }) {
return Type.String({
description: options?.description ?? CHANNEL_TARGET_DESCRIPTION,
});
}
export function channelTargetsSchema(options?: { description?: string }) {
return Type.Array(channelTargetSchema({ description: options?.description ?? CHANNEL_TARGETS_DESCRIPTION }));
}