@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.
54 lines • 2.31 kB
JavaScript
import chalk from "chalk";
import { getManagementKontentFetcher } from "../../fetch/management-kontent-fetcher.js";
import { getFileManager } from "../../files/file-manager.js";
import { getMigrationGenerator } from "./migration.generator.js";
export async function generateMigrationModelsAsync(config) {
console.log(chalk.green("Model generator started \n"));
console.log(`Generating '${chalk.yellow("migration-toolkit")}' models\n`);
const { migrationItemFiles, migrationTypeFiles, environmentInfo, environmentFiles } = await getFilesAsync(config);
const fileManager = getFileManager({
...config,
environmentInfo,
});
const setFiles = await fileManager.getSetFilesAsync([migrationItemFiles, migrationTypeFiles, environmentFiles]);
if (config.createFiles) {
fileManager.createFiles(setFiles);
}
console.log(chalk.green("\nCompleted"));
return setFiles;
}
async function getFilesAsync(config) {
const kontentFetcher = getManagementKontentFetcher({
environmentId: config.environmentId,
managementApiKey: config.managementApiKey,
baseUrl: config.managementBaseUrl,
});
const environmentInfo = await kontentFetcher.getEnvironmentInfoAsync();
const [languages, taxonomies, types, snippets, collections, workflows] = await Promise.all([
kontentFetcher.getLanguagesAsync(),
kontentFetcher.getTaxonomiesAsync(),
kontentFetcher.getTypesAsync(),
kontentFetcher.getSnippetsAsync(),
kontentFetcher.getCollectionsAsync(),
kontentFetcher.getWorkflowsAsync(),
]);
const migrationGenerator = getMigrationGenerator({
moduleFileExtension: config.moduleFileExtension,
environmentData: {
environment: environmentInfo,
taxonomies: taxonomies,
languages: languages,
workflows: workflows,
types: types,
snippets: snippets,
collections: collections,
},
});
return {
migrationTypeFiles: migrationGenerator.getMigrationTypeFiles(),
migrationItemFiles: migrationGenerator.getMigrationItemFiles(),
environmentFiles: migrationGenerator.getEnvironmentFiles(),
environmentInfo,
};
}
//# sourceMappingURL=migration-func.js.map