Files
webeditor3d/src/serialization/scene-document-json.ts

20 lines
644 B
TypeScript
Raw Normal View History

import type { SceneDocument } from "../document/scene-document";
import { migrateSceneDocument } from "../document/migrate-scene-document";
export function serializeSceneDocument(document: SceneDocument): string {
return JSON.stringify(document, null, 2);
}
export function parseSceneDocumentJson(source: string): SceneDocument {
let parsedValue: unknown;
try {
parsedValue = JSON.parse(source);
} catch (error) {
const cause = error instanceof Error ? error.message : "Unknown JSON parse failure.";
throw new Error(`Scene document JSON could not be parsed: ${cause}`);
}
return migrateSceneDocument(parsedValue);
}