@kontent-ai/model-generator
Version:
This utility generates strongly-typed models for Delivery JS SDK, Migration toolkit or just general scripting to improve the experience when referencing Kontent.ai related objects.
37 lines • 1.66 kB
JavaScript
import { HttpService } from "coreSdkLegacy";
import { createDeliveryClient } from "@kontent-ai/delivery-sdk";
import chalk from "chalk";
import { coreConfig } from "../config.js";
import { sortAlphabetically } from "../core/core.utils.js";
export function getDeliveryKontentFetcher(config) {
const client = createDeliveryClient({
environmentId: config.environmentId,
defaultQueryConfig: {
usePreviewMode: config.apiMode === "preview",
useSecuredMode: config.apiMode === "secure",
customHeaders: [
{
header: coreConfig.kontentTrackingHeaderName,
value: coreConfig.kontentTrackingHeaderValue,
},
],
},
secureApiKey: config.apiMode === "secure" ? config.deliveryApiKey : undefined,
previewApiKey: config.apiMode === "preview" ? config.deliveryApiKey : undefined,
proxy: {
baseUrl: config.baseUrl,
},
httpService: new HttpService({ logErrorsToConsole: false }),
});
const getItemsQuery = (filterByTypeCodenames) => {
return filterByTypeCodenames.length > 0 ? client.itemsFeed().types(filterByTypeCodenames.map((m) => m)) : client.itemsFeed();
};
return {
async getItemsAsync(filterByTypeCodenames) {
const items = sortAlphabetically((await getItemsQuery(filterByTypeCodenames).toAllPromise()).data.items, (m) => m.system.codename);
console.log(`Fetched '${chalk.yellow(items.length.toString())}' content items`);
return items;
},
};
}
//# sourceMappingURL=delivery-kontent-fetcher.js.map