@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
66 lines (56 loc) • 1.59 kB
text/typescript
import { defineModule, defineRoute } from "../../shared/define-module"
import type {
FeedAnalyticsRequest,
FeedAnalyticsResponse,
FeedClaimChallengeRequest,
FeedClaimChallengeResponse,
FeedClaimListResponse,
FeedClaimMessageQuery,
FeedClaimMessageResponse,
FeedGetQuery,
FeedGetResponse,
FeedRefreshQuery,
FeedRefreshResponse,
FeedResetQuery,
FeedResetResponse,
} from "./types"
/**
* Feeds module definition with nested routes
*/
export const feedsModule = defineModule({
name: "feeds",
prefix: "/feeds",
routes: {
// Basic feed operations
get: defineRoute<FeedGetQuery, FeedGetResponse>("GET", "/"),
refresh: defineRoute<FeedRefreshQuery, FeedRefreshResponse>(
"GET",
"/refresh",
),
reset: defineRoute<FeedResetQuery, FeedResetResponse>("GET", "/reset"),
analytics: defineRoute<FeedAnalyticsRequest, FeedAnalyticsResponse>(
"POST",
"/analytics",
),
// Feed claiming operations (nested)
claim: {
challenge: defineRoute<
FeedClaimChallengeRequest,
FeedClaimChallengeResponse
>("POST", "/claim/challenge"),
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
list: defineRoute<{}, FeedClaimListResponse>(
"GET",
"/claim/list",
),
message: defineRoute<FeedClaimMessageQuery, FeedClaimMessageResponse>(
"GET",
"/claim/message",
),
},
},
})
// Export the API type
export type FeedsAPI = typeof feedsModule.api
// Re-export types for external consumption
export type * from "./types"