backendLaunchAdapter.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. import { type GameLaunchEnvelope } from './gameLaunch'
  2. import { type BackendLaunchResult } from './backendApi'
  3. export function adaptBackendLaunchResultToEnvelope(result: BackendLaunchResult): GameLaunchEnvelope {
  4. return {
  5. config: {
  6. configUrl: result.launch.config.configUrl,
  7. configLabel: result.launch.config.configLabel,
  8. configChecksumSha256: result.launch.config.configChecksumSha256 || null,
  9. releaseId: result.launch.config.releaseId,
  10. routeCode: result.launch.config.routeCode || null,
  11. },
  12. business: {
  13. source: result.launch.business.source === 'direct-event' ? 'direct-event' : 'custom',
  14. eventId: result.launch.business.eventId,
  15. sessionId: result.launch.business.sessionId,
  16. sessionToken: result.launch.business.sessionToken,
  17. sessionTokenExpiresAt: result.launch.business.sessionTokenExpiresAt,
  18. },
  19. variant: result.launch.variant
  20. ? {
  21. variantId: result.launch.variant.id,
  22. variantName: result.launch.variant.name,
  23. routeCode: result.launch.variant.routeCode || result.launch.config.routeCode || result.launch.business.routeCode || null,
  24. assignmentMode: result.launch.variant.assignmentMode || null,
  25. }
  26. : (result.launch.config.routeCode || result.launch.business.routeCode)
  27. ? {
  28. routeCode: result.launch.config.routeCode || result.launch.business.routeCode || null,
  29. }
  30. : null,
  31. }
  32. }