Files
opencode-plugin-tmux-utils/src/shared/normalize-sdk-response.ts
Dmytro Stanchiev 064ae0f251 1
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-19 17:53:29 -04:00

37 lines
818 B
TypeScript

export interface NormalizeSDKResponseOptions {
preferResponseOnMissingData?: boolean
}
export function normalizeSDKResponse<TData>(
response: unknown,
fallback: TData,
options?: NormalizeSDKResponseOptions,
): TData {
if (response === null || response === undefined) {
return fallback
}
if (Array.isArray(response)) {
return response as TData
}
if (typeof response === "object" && response !== null && "data" in response) {
const data = (response as { data?: unknown }).data
if (data !== null && data !== undefined) {
return data as TData
}
if (options?.preferResponseOnMissingData === true) {
return response as TData
}
return fallback
}
if (options?.preferResponseOnMissingData === true) {
return response as TData
}
return fallback
}