@follow-app/client-sdk
Version:
TypeScript client SDK for Follow RSS Server API
58 lines (49 loc) • 1.5 kB
text/typescript
import { defineModule, defineRoute } from "../../shared/define-module"
import type {
RSSHubCreateRequest,
RSSHubCreateResponse,
RSSHubDeleteRequest,
RSSHubDeleteResponse,
RSSHubGetQuery,
RSSHubGetResponse,
RSSHubListResponse,
RSSHubStatusResponse,
RSSHubUseRequest,
RSSHubUseResponse,
} from "./types"
/**
* RSSHub module definition for RSSHub instance management
*/
export const rsshubModule = defineModule({
name: "rsshub",
prefix: "/rsshub",
routes: {
// Create or update RSSHub instance
create: defineRoute<RSSHubCreateRequest, RSSHubCreateResponse>(
"POST",
"/",
),
// List available RSSHub instances
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
list: defineRoute<{}, RSSHubListResponse>(
"GET",
"/list",
),
// Delete RSSHub instance
delete: defineRoute<RSSHubDeleteRequest, RSSHubDeleteResponse>(
"DELETE",
"/",
),
// Purchase/use RSSHub instance
use: defineRoute<RSSHubUseRequest, RSSHubUseResponse>("POST", "/use"),
// Get specific RSSHub instance
get: defineRoute<RSSHubGetQuery, RSSHubGetResponse>("GET", "/"),
// Get user's RSSHub usage status
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
status: defineRoute<{}, RSSHubStatusResponse>("GET", "/status"),
},
})
// Export the API type
export type RSSHubAPI = typeof rsshubModule.api
// Re-export types for external consumption
export type * from "./types"