Image normalizer
The normalizeImage
function maps SFCC Image
into Unified SfImage
.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
context | NormalizerContext | Context needed for the normalizer. | |
image | Image | SFCC image |
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 addCustomFields
API.
export const unifiedApiExtension = createUnifiedExtension({
normalizers: {
addCustomFields: [
{
normalizeImage: (context, image) => ({
someNewField: "someValue",
}),
},
],
},
config: {
...
},
});
Source
image.ts
import type { Image } from "@internal";
import { maybe } from "@/helpers";
import { defineNormalizer } from "../defineNormalizer";
function isImageObject(image: unknown): image is Image {
return !!image && typeof image === "object" && "link" in image;
}
export const normalizeImage = defineNormalizer.normalizeImage((_context, image) => {
if (isImageObject(image)) {
return {
alt: maybe(image.alt),
url: image.link,
};
}
return {
alt: null,
url: image,
};
});