UNPKG

@follow-app/client-sdk

Version:

TypeScript client SDK for Follow RSS Server API

73 lines (62 loc) 1.82 kB
import { defineModule, defineRoute } from "../../shared/define-module" import type { SubscriptionBatchRequest, SubscriptionBatchResponse, SubscriptionCreateRequest, SubscriptionCreateResponse, SubscriptionDeleteRequest, SubscriptionDeleteResponse, SubscriptionExportQuery, SubscriptionExportResponse, SubscriptionGetQuery, SubscriptionGetResponse, SubscriptionImportResponse, SubscriptionParseOpmlResponse, SubscriptionUpdateRequest, SubscriptionUpdateResponse, } from "./types" /** * Subscriptions module definition with nested routes */ export const subscriptionsModule = defineModule({ name: "subscriptions", prefix: "/subscriptions", routes: { // Basic subscription operations get: defineRoute<SubscriptionGetQuery, SubscriptionGetResponse>("GET", "/"), create: defineRoute<SubscriptionCreateRequest, SubscriptionCreateResponse>( "POST", "/", ), update: defineRoute<SubscriptionUpdateRequest, SubscriptionUpdateResponse>( "PATCH", "/", ), delete: defineRoute<SubscriptionDeleteRequest, SubscriptionDeleteResponse>( "DELETE", "/", ), // Batch patch operations batchUpdate: defineRoute<SubscriptionBatchRequest, SubscriptionBatchResponse>( "PATCH", "/batch", ), // OPML operations import: defineRoute<FormData, SubscriptionImportResponse>( "POST", "/import", ), export: defineRoute<SubscriptionExportQuery, SubscriptionExportResponse>( "GET", "/export", ), parseOpml: defineRoute<ArrayBuffer, SubscriptionParseOpmlResponse>( "POST", "/parse-opml", ), }, }) // Export the API type export type SubscriptionsAPI = typeof subscriptionsModule.api // Re-export types for external consumption export type * from "./types"