UNPKG

trainingpeaks-sdk

Version:
43 lines (42 loc) 1.52 kB
import { createInMemorySessionStorage, createLogger } from '../adapters/index.js'; import { createHttpClient } from '../adapters/http/index.js'; import { createAuthRepository, createTrainingPeaksRepository, createWorkoutRepository, } from '../adapters/public-api/index.js'; import { getSDKConfig } from '../config.js'; import { getWorkoutsListEntrypoint, loginEntrypoint, logoutEntrypoint, } from '../entrypoints/index.js'; export const createTrainingPeaksSdk = (config = {}) => { const sdkConfig = getSDKConfig(config); const logger = createLogger({ level: sdkConfig.debug.level, enabled: sdkConfig.debug.enabled, }); logger.info('TrainingPeaks SDK initialized', { config }); const sessionStorage = createInMemorySessionStorage(); const httpClient = createHttpClient({ enableCookies: true, logger, sessionStorage, }); const authRepository = createAuthRepository({ httpClient, sessionStorage, logger, }); const workoutRepository = createWorkoutRepository({ httpClient, logger, }); const tpRepository = createTrainingPeaksRepository({ authRepository, workoutRepository, }); return { login: loginEntrypoint({ tpRepository, logger }), logout: logoutEntrypoint({ tpRepository, logger }), getWorkoutsList: getWorkoutsListEntrypoint({ tpRepository, sessionStorage, logger, }), logger, }; };