import type { Platform } from "@src/shared"; import type { SocialPlatformAdapter } from "./adapter.ts"; import { youtubeAdapter } from "./youtube.ts"; import { redditAdapter } from "./reddit.ts"; import { facebookAdapter } from "./facebook.ts"; export * from "./adapter.ts"; export { youtubeAdapter, redditAdapter, facebookAdapter }; const ADAPTERS: Partial> = { youtube: youtubeAdapter, reddit: redditAdapter, facebook: facebookAdapter, }; export const SUPPORTED_PLATFORMS = Object.keys(ADAPTERS) as Platform[]; export function getAdapter(platform: Platform): SocialPlatformAdapter { const a = ADAPTERS[platform]; if (!a) throw new Error(`No adapter for platform "${platform}" yet (available: ${SUPPORTED_PLATFORMS.join(", ")}). Use PLATFORM LEARNING mode to bootstrap one.`); return a; } export function hasAdapter(platform: Platform): boolean { return !!ADAPTERS[platform]; }