import { ENV } from '@/lib/env'; import { createHttpApi } from './http-client'; import { MOCK_EDITION_ID } from './mock/dataset'; import { createMockApi, peekMockMagicToken } from './mock/mock-client'; import type { PlanningApi } from './types'; // `VITE_API_MODE` : `mock` (défaut, jeu de démonstration en mémoire) ou `http` // (back-end réel). En mode http, `VITE_EDITION_ID` doit désigner une édition. export const API_MODE = ENV.apiMode; export const EDITION_ID: string = ENV.editionId ?? MOCK_EDITION_ID; export const api: PlanningApi = API_MODE === 'http' ? createHttpApi(ENV.apiBaseUrl) : createMockApi(); /** * Mode mock uniquement : dernier lien magique émis pour un email (l'envoi * d'email est stubé). Renvoie `undefined` en mode HTTP. */ export function devMagicToken(email: string): string | undefined { return API_MODE === 'mock' ? peekMockMagicToken(email) : undefined; } export { ApiError } from './types'; export { setAuthToken, setOnUnauthorized } from './session'; export { DEMO_COORDINATOR_EMAIL, DEMO_COORDINATOR_PASSWORD, } from './mock/dataset'; export type { PlanningApi } from './types'; export * from './schema';