Spaces:
Build error
Build error
| import { createWebDavClient } from "./webdav"; | |
| import { createUpstashClient } from "./upstash"; | |
| export enum ProviderType { | |
| WebDAV = "webdav", | |
| UpStash = "upstash", | |
| } | |
| export const SyncClients = { | |
| [ProviderType.UpStash]: createUpstashClient, | |
| [ProviderType.WebDAV]: createWebDavClient, | |
| } as const; | |
| type SyncClientConfig = { | |
| [K in keyof typeof SyncClients]: (typeof SyncClients)[K] extends ( | |
| _: infer C, | |
| ) => any | |
| ? C | |
| : never; | |
| }; | |
| export type SyncClient = { | |
| get: (key: string) => Promise<string>; | |
| set: (key: string, value: string) => Promise<void>; | |
| check: () => Promise<boolean>; | |
| }; | |
| export function createSyncClient<T extends ProviderType>( | |
| provider: T, | |
| config: SyncClientConfig[T], | |
| ): SyncClient { | |
| return SyncClients[provider](config as any) as any; | |
| } | |