UNPKG

@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.

27 lines (26 loc) 1.76 kB
import type { CollectionModels, LanguageModels } from "@kontent-ai/management-sdk"; import { ContentTypeModels, ContentTypeSnippetModels, TaxonomyModels, WorkflowModels } from "@kontent-ai/management-sdk"; import type { GeneratedFile, GeneratedSet, ModuleFileExtension } from "../../core/core.models.js"; import type { DeliveryEntityNames } from "./delivery-entity-name.generator.js"; import type { DeliveryGeneratorConfig } from "./delivery.generator.js"; export type DeliveryElement = { readonly codename: string; readonly name: string; readonly externalId: string | undefined; }; export type DeliveryEntity = Readonly<LanguageModels.LanguageModel> | Readonly<CollectionModels.Collection> | Readonly<WorkflowModels.Workflow> | Readonly<TaxonomyModels.Taxonomy> | DeliveryElement | Readonly<ContentTypeModels.ContentType> | Readonly<ContentTypeSnippetModels.ContentTypeSnippet>; export type DeliveryEntityType = "Language" | "Collection" | "Workflow" | "Taxonomy" | "Type" | "Element" | "Snippet"; export type DeliveryEntityGeneratorConfig<T extends DeliveryEntityType> = { readonly moduleFileExtension: ModuleFileExtension; readonly entityType: T; readonly entities: readonly Readonly<DeliveryEntity>[]; readonly generateOnlyOverviewFile: boolean; readonly deliveryGeneratorConfig: DeliveryGeneratorConfig; }; export type DeliveryEntityGenerator<T extends DeliveryEntityType> = { readonly entityType: T; readonly generateEntityTypes: () => GeneratedSet; readonly entityNames: DeliveryEntityNames<T>; readonly generateOverviewFile: () => GeneratedFile; }; export declare function getDeliveryEntityGenerator<T extends DeliveryEntityType>(config: DeliveryEntityGeneratorConfig<T>): DeliveryEntityGenerator<T>;