@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
65 lines (56 loc) • 1.25 kB
text/typescript
/**
* Standard API response structure for Follow Server
* All API responses follow this consistent format
*/
export interface ResponseStruct<T = any> {
/**
* Response code
* 0 = success
* Non-zero = error code (matches ExceptionCodes)
*/
code: number
/**
* Response message
* Usually contains error message when code !== 0
*/
message?: string
/**
* Response data payload
* Contains actual response data when code === 0
*/
data?: T
}
/**
* Successful API response with data
*/
export interface SuccessResponse<T = any> extends ResponseStruct<T> {
code: 0
data: T
}
export type ExtractResponseData<T> = T extends ResponseStruct<infer U> ? U : never
/**
* Error API response
*/
export interface ErrorResponse extends ResponseStruct<never> {
code: number
message: string
data?: any
}
/**
* Paginated response structure
*/
export interface PaginatedData<T = any> {
items: T[]
total: number
page?: number
limit?: number
hasMore?: boolean
}
/**
* Paginated API response
*/
export type PaginatedResponse<T = any> = SuccessResponse<PaginatedData<T>>
/**
* Empty success response (for operations that don't return data)
*/
export type EmptyResponse = SuccessResponse<null>