@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
TypeScript
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>;