UNPKG

@follow-app/client-sdk

Version:

TypeScript client SDK for Follow RSS Server API

76 lines (65 loc) 1.83 kB
import { defineModule, defineRoute } from "../../shared/define-module" import type { AffectedUsersInput, AffectedUsersResponse, CleanRequest, CleanResponse, FeatureFlagListResponse, FeatureFlagResponse, FeatureFlagUpdateInput, FeatureStatsInput, FeatureStatsResponse, MessageResponse, MintRequest, MintResponse, RemoveOverrideInput, UserOverrideInput, } from "./types" /** * Admin module definition with nested routes */ export const adminModule = defineModule({ name: "admin", prefix: "/admin", routes: { // Feature flags management (nested) featureFlags: { list: defineRoute<never, FeatureFlagListResponse>( "GET", "/feature-flags", ), update: defineRoute<FeatureFlagUpdateInput, FeatureFlagResponse>( "PUT", "/feature-flags/{name}", ), override: defineRoute<UserOverrideInput, MessageResponse>( "POST", "/feature-flags/{name}/overrides", ), removeOverride: defineRoute<RemoveOverrideInput, MessageResponse>( "DELETE", "/feature-flags/{name}/overrides/{userId}", ), stats: defineRoute<FeatureStatsInput, FeatureStatsResponse>( "GET", "/feature-flags/{name}/stats", ), affectedUsers: defineRoute<AffectedUsersInput, AffectedUsersResponse>( "GET", "/feature-flags/{name}/affected-users", ), }, // Clean operations (nested) clean: { execute: defineRoute<CleanRequest, CleanResponse>("POST", "/clean"), }, // Mint operations (nested) mint: { execute: defineRoute<MintRequest, MintResponse>("POST", "/mintdscsafr"), }, }, }) // Export the API type export type AdminAPI = typeof adminModule.api // Re-export types for external consumption export type * from "./types"