Image normalizer
The normalizeImage function maps SAP Image into Unified SfImage.
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
image | Image | SAP image | |
ctx | NormalizerContext | Normalization context including an optional transformImageUrl which may transform the url |
Extending
The SfImage is returned as a part of multiple models, as for example SfProduct, SfProductCatalogItem, and SfCart. If the SfImage structure doesn't contain the information you need for your Storefront, you can extend its logic using the defineNormalizers function.
import { normalizers as normalizersSAP, defineNormalizers } from "@vsf-enterprise/unified-api-sapcc";
const normalizers = defineNormalizers<typeof normalizersSAP>()({
...normalizersSAP,
normalizeImage: (image, context) => ({
...normalizersSAP.normalizeImage(image, context),
format: image.format,
}),
});
Source
image.ts
import { maybe } from "@shared/utils";
import { defineNormalizer } from "../defineNormalizer";
export const normalizeImage = defineNormalizer.normalizeImage((image, ctx) => {
let url = image.url as string;
if (ctx.transformImageUrl) {
url = ctx.transformImageUrl(url);
}
return {
alt: maybe(image.altText),
url,
};
});