@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.
38 lines (37 loc) • 2.26 kB
TypeScript
import type { CollectionModels, ContentTypeModels, ContentTypeSnippetModels, EnvironmentModels, LanguageModels, TaxonomyModels, WorkflowModels } from "@kontent-ai/management-sdk";
import type { GeneratedSet, ModuleFileExtension } from "../../core/core.models.js";
import type { FilenameResolver, NameResolver } from "../../core/resolvers.js";
export type DeliveryFileResolvers = {
readonly contentType?: FilenameResolver<ContentTypeModels.ContentType>;
readonly snippet?: FilenameResolver<ContentTypeSnippetModels.ContentTypeSnippet>;
readonly taxonomy?: FilenameResolver<TaxonomyModels.Taxonomy>;
readonly language?: FilenameResolver<LanguageModels.LanguageModel>;
readonly collection?: FilenameResolver<CollectionModels.Collection>;
readonly workflow?: FilenameResolver<WorkflowModels.Workflow>;
};
export type DeliveryNameResolvers = {
readonly contentType?: NameResolver<ContentTypeModels.ContentType>;
readonly snippet?: NameResolver<ContentTypeSnippetModels.ContentTypeSnippet>;
readonly taxonomy?: NameResolver<TaxonomyModels.Taxonomy>;
readonly language?: NameResolver<LanguageModels.LanguageModel>;
readonly collection?: NameResolver<CollectionModels.Collection>;
readonly workflow?: NameResolver<WorkflowModels.Workflow>;
};
export interface DeliveryGeneratorConfig {
readonly moduleFileExtension: ModuleFileExtension;
readonly environmentData: {
readonly environment: Readonly<EnvironmentModels.EnvironmentInformationModel>;
readonly types: readonly Readonly<ContentTypeModels.ContentType>[];
readonly snippets: readonly Readonly<ContentTypeSnippetModels.ContentTypeSnippet>[];
readonly workflows: readonly Readonly<WorkflowModels.Workflow>[];
readonly languages: readonly Readonly<LanguageModels.LanguageModel>[];
readonly collections: readonly Readonly<CollectionModels.Collection>[];
readonly taxonomies: readonly Readonly<TaxonomyModels.Taxonomy>[];
};
readonly fileResolvers?: DeliveryFileResolvers;
readonly nameResolvers?: DeliveryNameResolvers;
}
export declare function deliveryGenerator(config: DeliveryGeneratorConfig): {
getTypeFiles: () => readonly GeneratedSet[];
getSystemFiles(): GeneratedSet;
};