import type { ExpressionRole2d, ExpressionRole3d, RenderScene2d, RenderScene3d } from './types'; type WasmScene = Omit & { expression_roles: Record | Map; model_revisions: Record | Map; }; type WasmScene3d = Omit & { expression_roles: Record | Map; model_revisions: Record | Map; coverage_revisions?: Record | Map; }; /** Converts serde-wasm-bindgen map values into the plain records used by the UI. */ export function normalizeWasmScene(scene: WasmScene): RenderScene2d { return { ...scene, expression_roles: toRecord(scene.expression_roles), model_revisions: toRecord(scene.model_revisions) }; } /** Converts serde-wasm-bindgen map values in 3D scenes to UI records. */ export function normalizeWasmScene3d(scene: WasmScene3d): RenderScene3d { return { ...scene, expression_roles: toRecord(scene.expression_roles), model_revisions: toRecord(scene.model_revisions), coverage_revisions: scene.coverage_revisions ? toRecord(scene.coverage_revisions) : undefined }; } function toRecord(value: Record | Map): Record { return value instanceof Map ? Object.fromEntries(value) : value; }