@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
43 lines • 1.42 kB
JavaScript
import { TaJson } from "ta-json";
import { MenuItem } from "../models/pages/menu-item";
export class PageResourceMenusConverter {
/**
* Serializes a string map of arrays of {@link MenuItem}s.
*
* @param value - The map of strings to arrays of {@link MenuItem}s
* @returns A JSON value object.
*/
serialize(value) {
const result = {};
Object.keys(value).forEach(menuName => {
const menu = value[menuName];
result[menuName] = menu.map(menuItem => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return TaJson.serialize(menuItem);
});
});
return result;
}
/**
* Deserializes a JSON object into a string map of arrays of {@link MenuItem}s.
*
* @param value - A JSON object
* @returns A mapping of strings to arrays of {@link MenuItem}s.
*/
deserialize(value) {
if (!value) {
return {};
}
const result = {};
Object.keys(value).forEach(menuName => {
const menu = value[menuName];
if (Array.isArray(menu)) {
result[menuName] = menu.map(menuItem => {
return TaJson.deserialize(menuItem, MenuItem);
});
}
});
return result;
}
}
//# sourceMappingURL=page-resource-menus-converter.js.map