@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
69 lines (60 loc) • 1.34 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 StructuredSuccessResponse<T = any> extends ResponseStruct<T> {
code: 0
data: T
}
export type PlainSuccessResponse<T = any> = { code: 0 } & 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> = StructuredSuccessResponse<
PaginatedData<T>
>
/**
* Empty success response (for operations that don't return data)
*/
export type EmptyResponse = StructuredSuccessResponse<null>