UNPKG

@nacelle/compatibility-connector

Version:

Connect @nacelle/client-js-sdk to Nacelle's v2 back end with minimal code changes

47 lines (38 loc) 1.25 kB
import { isSanityMedia, SanityMedia } from './transformMedia'; import { isObject } from './transformContent'; import type { AnyObject, NacelleContentEntry } from '.'; export function transformSanityMedia(media: SanityMedia): SanityMedia { const newAsset = { ...media.asset }; if (newAsset.metadata && typeof newAsset.metadata.palette !== 'undefined') { delete newAsset.metadata.palette; } if (typeof media.asset._depth === 'undefined') { newAsset._depth = 1; } return { ...media, asset: newAsset }; } export function transformSanityContent( content: NacelleContentEntry | NacelleContentEntry[] | SanityMedia ): NacelleContentEntry | NacelleContentEntry[] { if (Array.isArray(content)) { return content.map((entry) => transformSanityContent(entry) ) as NacelleContentEntry[]; } if (isObject(content)) { if (isSanityMedia(content)) { content = transformSanityMedia(content); } else { for (const [property, value] of Object.entries(content)) { const key = property as keyof NacelleContentEntry; if (Array.isArray(value) || isObject(value)) { content[key] = transformSanityContent(value); } } } } return content as AnyObject; }