SPB Git forge
7commits 1branches 0releases
229.0 KBsize
maindefault branch
12 days agolast push
TypeScript 91.8% HTML 3.2% JavaScript 3% SQL 1.4% CSS 0.7%
938 B · 27 lines typescript
Raw Blame History
1import type { Platform } from "@src/shared";2import type { SocialPlatformAdapter } from "./adapter.ts";3import { youtubeAdapter } from "./youtube.ts";4import { redditAdapter } from "./reddit.ts";5import { facebookAdapter } from "./facebook.ts";67export * from "./adapter.ts";8export { youtubeAdapter, redditAdapter, facebookAdapter };910const ADAPTERS: Partial<Record<Platform, SocialPlatformAdapter>> = {11  youtube: youtubeAdapter,12  reddit: redditAdapter,13  facebook: facebookAdapter,14};1516export const SUPPORTED_PLATFORMS = Object.keys(ADAPTERS) as Platform[];1718export function getAdapter(platform: Platform): SocialPlatformAdapter {19  const a = ADAPTERS[platform];20  if (!a) throw new Error(`No adapter for platform "${platform}" yet (available: ${SUPPORTED_PLATFORMS.join(", ")}). Use PLATFORM LEARNING mode to bootstrap one.`);21  return a;22}2324export function hasAdapter(platform: Platform): boolean {25  return !!ADAPTERS[platform];26}27