@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
30 lines (26 loc) • 755 B
text/typescript
import type { ErrorResponse, ResponseStruct, SuccessResponse } from "@/types"
/**
* Type guard to check if response is successful
*/
export function isSuccessResponse<T>(
response: ResponseStruct<T>,
): response is SuccessResponse<T> {
return response.code === 0
}
/**
* Type guard to check if response is an error
*/
export function isErrorResponse(
response: ResponseStruct<any>,
): response is ErrorResponse {
return response.code !== 0
}
/**
* Extract data from successful response, throw error if unsuccessful
*/
export function extractResponseData<T>(response: ResponseStruct<T>): T {
if (isSuccessResponse(response)) {
return response.data
}
throw new Error(response.message || `API error with code: ${response.code}`)
}