@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
50 lines (42 loc) • 1.12 kB
text/typescript
import { defineModule, defineRoute } from "../../shared/define-module"
import type {
MarkAllAsReadRequest,
MarkAllAsReadResponse,
MarkAsReadRequest,
MarkAsUnreadRequest,
ReadOperationResponse,
ReadStatusQuery,
ReadStatusResponse,
TotalUnreadCountResponse,
} from "./types"
/**
* Reads module definition with nested routes
*/
export const readsModule = defineModule({
name: "reads",
prefix: "/reads",
routes: {
// Basic read operations
get: defineRoute<ReadStatusQuery, ReadStatusResponse>("GET", "/"),
markAsRead: defineRoute<MarkAsReadRequest, ReadOperationResponse>(
"POST",
"/",
),
markAsUnread: defineRoute<MarkAsUnreadRequest, ReadOperationResponse>(
"DELETE",
"/",
),
markAllAsRead: defineRoute<MarkAllAsReadRequest, MarkAllAsReadResponse>(
"POST",
"/all",
),
getTotalCount: defineRoute<never, TotalUnreadCountResponse>(
"GET",
"/total-count",
),
},
})
// Export the API type
export type ReadsAPI = typeof readsModule.api
// Re-export types for external consumption
export type * from "./types"