22 lines
590 B
TypeScript
22 lines
590 B
TypeScript
export const IMAGE_GENERATOR_DRAFT_VERSION = 1;
|
|
|
|
export function serializeImageGeneratorDraft<Value>(value: Value): string {
|
|
return JSON.stringify({ version: IMAGE_GENERATOR_DRAFT_VERSION, value });
|
|
}
|
|
|
|
export function parseImageGeneratorDraft<Value>(
|
|
serialized: string,
|
|
parse: (value: unknown) => Value | null,
|
|
): Value | null {
|
|
try {
|
|
const envelope = JSON.parse(serialized) as {
|
|
version?: unknown;
|
|
value?: unknown;
|
|
};
|
|
if (envelope.version !== IMAGE_GENERATOR_DRAFT_VERSION) return null;
|
|
return parse(envelope.value);
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|