Files
cmr-mini/miniprogram/utils/backendLaunchAdapter.ts

34 lines
1.4 KiB
TypeScript

import { type GameLaunchEnvelope } from './gameLaunch'
import { type BackendLaunchResult } from './backendApi'
export function adaptBackendLaunchResultToEnvelope(result: BackendLaunchResult): GameLaunchEnvelope {
return {
config: {
configUrl: result.launch.config.configUrl,
configLabel: result.launch.config.configLabel,
configChecksumSha256: result.launch.config.configChecksumSha256 || null,
releaseId: result.launch.config.releaseId,
routeCode: result.launch.config.routeCode || null,
},
business: {
source: result.launch.business.source === 'direct-event' ? 'direct-event' : 'custom',
eventId: result.launch.business.eventId,
sessionId: result.launch.business.sessionId,
sessionToken: result.launch.business.sessionToken,
sessionTokenExpiresAt: result.launch.business.sessionTokenExpiresAt,
},
variant: result.launch.variant
? {
variantId: result.launch.variant.id,
variantName: result.launch.variant.name,
routeCode: result.launch.variant.routeCode || result.launch.config.routeCode || result.launch.business.routeCode || null,
assignmentMode: result.launch.variant.assignmentMode || null,
}
: (result.launch.config.routeCode || result.launch.business.routeCode)
? {
routeCode: result.launch.config.routeCode || result.launch.business.routeCode || null,
}
: null,
}
}