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.

38 lines (37 loc) 2.26 kB
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; };