UNPKG

@follow-app/client-sdk

Version:

TypeScript client SDK for Follow RSS Server API

65 lines (55 loc) 1.55 kB
import { defineModule, defineRoute } from "../../shared/define-module" import type { EmptyResponse } from "../../types" import type { CreateListRequest, DiscoverListsResponse, DiscoverQuery, ExportInput, ExportResponse, GetAnalyticsInput, ImportListRequest, ListAnalyticsResponse, ListResponse, ListsQuery, ListsResponse, RemoveFeedInput, TrendingListsResponse, TrendingQuery, } from "./types" /** * Lists module definition with nested routes */ export const listsModule = defineModule({ name: "lists", prefix: "/lists", routes: { // Basic list operations list: defineRoute<ListsQuery, ListsResponse>("GET", "/"), create: defineRoute<CreateListRequest, ListResponse>("POST", "/"), removeFeed: defineRoute<RemoveFeedInput, EmptyResponse>( "DELETE", "/{id}/feeds/{feedId}", ), // List discovery discover: defineRoute<DiscoverQuery, DiscoverListsResponse>( "GET", "/discover", ), trending: defineRoute<TrendingQuery, TrendingListsResponse>( "GET", "/trending", ), // List import/export import: defineRoute<ImportListRequest, ListResponse>("POST", "/import"), export: defineRoute<ExportInput, ExportResponse>("GET", "/{id}/export"), // List analytics getAnalytics: defineRoute<GetAnalyticsInput, ListAnalyticsResponse>( "GET", "/{id}/analytics", ), }, }) // Export the API type export type ListsAPI = typeof listsModule.api // Re-export types for external consumption export type * from "./types"