import type { PhotoProvider, PhotoProviderId } from "@/types"; import { pexelsProvider } from "./pexels"; import { unsplashProvider } from "./unsplash"; // 共享错误类定义在 unsplash.ts(依赖最少的叶子模块),这里 re-export 保持桩文件 // 原本的出口路径;pexels.ts 也直接 import 它,避免 providers ↔ 各家模块引成环。 export { PhotoProviderError } from "./errors"; /** * 图库注册表。 * * 顺序即界面上标签页的顺序。**Pexels 在前**:Unsplash demo key 每小时只有 50 次 * 请求,开发期点几下就没了;Pexels 是每小时 200 次、每月 2 万次。 * 界面只认 `PhotoProvider` 接口遍历这里,不写 `if (provider === "pexels")`。 */ export const PHOTO_PROVIDERS: readonly PhotoProvider[] = [ pexelsProvider, unsplashProvider, ]; export function providerById(id: PhotoProviderId): PhotoProvider | undefined { return PHOTO_PROVIDERS.find((p) => p.id === id); }