@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.
89 lines (87 loc) • 3.38 kB
text/typescript
import type { CliAction, LibraryType } from "../core/core.models.js";
import { argumentsSetter } from "./args/args-setter.js";
import { commandOptions } from "./command.options.js";
export const cliArgs = argumentsSetter()
.withCommand({
name: "delivery-sdk",
description: `Generates models for '${"@kontent-ai/delivery-sdk" satisfies LibraryType}' library`,
examples: [
`kontent-generate ${"delivery-sdk" satisfies CliAction} --${commandOptions.environmentId.name}=x --${commandOptions.managementApiKey.name}=x`,
],
options: [
commandOptions.environmentId,
commandOptions.managementApiKey,
commandOptions.addTimestamp,
commandOptions.moduleFileExtension,
commandOptions.outputDir,
commandOptions.managementBaseUrl,
],
})
.withCommand({
name: "environment",
description:
"Generates strongly typed models representing all objects in the environment. This is useful for creating custom tools or scripts where you need to reference objects within your environment",
examples: [
`kontent-generate ${"environment" satisfies CliAction} --${commandOptions.environmentId.name}=x --${commandOptions.managementApiKey.name}=x`,
],
options: [
commandOptions.environmentId,
commandOptions.managementApiKey,
commandOptions.addTimestamp,
commandOptions.moduleFileExtension,
commandOptions.outputDir,
commandOptions.managementBaseUrl,
],
})
.withCommand({
name: "migration-toolkit",
description: `Generates models for '${"@kontent-ai/migration-toolkit" satisfies LibraryType}' library`,
examples: [
`kontent-generate ${"migration-toolkit" satisfies CliAction} --${commandOptions.environmentId.name}=x --${commandOptions.managementApiKey.name}=x`,
],
options: [
commandOptions.environmentId,
commandOptions.managementApiKey,
commandOptions.addTimestamp,
commandOptions.moduleFileExtension,
commandOptions.outputDir,
commandOptions.managementBaseUrl,
],
})
.withCommand({
name: "sync-sdk",
description: `Generates models for '${"@kontent-ai/sync-sdk" satisfies LibraryType}' library`,
examples: [
`kontent-generate ${"sync-sdk" satisfies CliAction} --${commandOptions.environmentId.name}=x --${commandOptions.managementApiKey.name}=x`,
],
options: [
commandOptions.environmentId,
commandOptions.managementApiKey,
commandOptions.addTimestamp,
commandOptions.moduleFileExtension,
commandOptions.outputDir,
commandOptions.managementBaseUrl,
],
})
.withCommand({
name: "items",
description: "Overview of all items in the environment and their ids/codenames as well as Type representing all item codenames.",
examples: [
`kontent-generate ${"items" satisfies CliAction} --${commandOptions.environmentId.name}=x --${commandOptions.managementApiKey.name}=x --${commandOptions.deliveryApiKey.name}=x --${commandOptions.apiMode.name}=preview --${commandOptions.contentTypes.name}=a,b,c`,
],
options: [
commandOptions.environmentId,
commandOptions.managementApiKey,
commandOptions.deliveryApiKey,
commandOptions.addTimestamp,
commandOptions.moduleFileExtension,
commandOptions.outputDir,
commandOptions.managementBaseUrl,
commandOptions.apiMode,
commandOptions.contentTypes,
commandOptions.deliveryBaseUrl,
commandOptions.generateTypes,
commandOptions.generateObjects,
],
})
.withOption(commandOptions.help);