diff --git a/.talismanrc b/.talismanrc index f2a55b770e..da65f12678 100644 --- a/.talismanrc +++ b/.talismanrc @@ -3,4 +3,8 @@ fileignoreconfig: checksum: 41bc1d60449ab0682d9267172e54a5802c837869a1728b0560eea8052336c2fe - filename: package-lock.json checksum: 0514f96f07a6c2c5be811d8973a0b1197943303cfcf224c0b01745342699f545 + - filename: packages/contentstack-export/src/export/modules/environments.ts + checksum: 5077c6d8418163d538b28252b62ce7679247c795af2387fd0d9535af974106e8 + - filename: packages/contentstack-import/src/import/modules/environments.ts + checksum: d1d83112db63ed7e45de89f68b2e6873ef08c9035d9f7313c950fb8036f93761 version: "1.0" diff --git a/packages/contentstack-export/src/export/modules/assets.ts b/packages/contentstack-export/src/export/modules/assets.ts index efd8542ea2..8a574b5bde 100644 --- a/packages/contentstack-export/src/export/modules/assets.ts +++ b/packages/contentstack-export/src/export/modules/assets.ts @@ -120,8 +120,8 @@ export default class ExportAssets extends BaseClass { progress.completeProcess(PROCESS_NAMES.ASSET_DOWNLOADS, true); } - this.completeProgress(true); - log.success(messageHandler.parse('ASSET_EXPORT_COMPLETE'), this.exportConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, error?.message || 'Asset export failed'); } diff --git a/packages/contentstack-export/src/export/modules/base-class.ts b/packages/contentstack-export/src/export/modules/base-class.ts index 7523daa096..32d2a4f98e 100644 --- a/packages/contentstack-export/src/export/modules/base-class.ts +++ b/packages/contentstack-export/src/export/modules/base-class.ts @@ -19,6 +19,13 @@ export type ApiOptions = { additionalInfo?: Record; }; +export type CompleteProgressOptions = { + moduleName?: string; + customSuccessMessage?: string; + customWarningMessage?: string; + context?: Record; +}; + export type EnvType = { module: string; totalCount: number; @@ -95,6 +102,35 @@ export default abstract class BaseClass { this.progressManager = null; } + /** + * Complete progress and log success/warning message based on errors + * Checks the progress manager's failure count to determine if errors occurred + * @param options - Options object containing: + * - moduleName: The module name to generate the message (e.g., 'Assets', 'Entries') + * If not provided, uses this.currentModuleName + * - customSuccessMessage: Optional custom success message. If not provided, generates: "{moduleName} have been exported successfully!" + * - customWarningMessage: Optional custom warning message. If not provided, generates: "{moduleName} have been exported with some errors. Please check the logs for details." + * - context: Optional context for logging + */ + protected completeProgressWithMessage(options?: CompleteProgressOptions): void { + const logContext = options?.context || this.exportConfig?.context || {}; + const failureCount = this.progressManager?.getFailureCount() || 0; + const hasErrors = failureCount > 0; + const name = options?.moduleName || this.currentModuleName || 'Module'; + + // Generate default messages if not provided + const successMessage = options?.customSuccessMessage || `${name} have been exported successfully!`; + const warningMessage = options?.customWarningMessage || `${name} have been exported with some errors. Please check the logs for details.`; + + this.completeProgress(true); + + if (hasErrors) { + log.warn(warningMessage, logContext); + } else { + log.success(successMessage, logContext); + } + } + protected async withLoadingSpinner(message: string, action: () => Promise): Promise { const logConfig = configHandler.get('log') || {}; const showConsoleLogs = logConfig.showConsoleLogs ?? false; diff --git a/packages/contentstack-export/src/export/modules/content-types.ts b/packages/contentstack-export/src/export/modules/content-types.ts index c1d6f72355..61aa469aac 100644 --- a/packages/contentstack-export/src/export/modules/content-types.ts +++ b/packages/contentstack-export/src/export/modules/content-types.ts @@ -86,8 +86,8 @@ export default class ContentTypesExport extends BaseClass { await this.writeContentTypes(this.contentTypes); - log.success(messageHandler.parse('CONTENT_TYPE_EXPORT_COMPLETE'), this.exportConfig.context); - this.completeProgress(true); + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Content types export failed'); diff --git a/packages/contentstack-export/src/export/modules/custom-roles.ts b/packages/contentstack-export/src/export/modules/custom-roles.ts index 0c6f6aec7b..92ddba79ab 100644 --- a/packages/contentstack-export/src/export/modules/custom-roles.ts +++ b/packages/contentstack-export/src/export/modules/custom-roles.ts @@ -107,7 +107,8 @@ export default class ExportCustomRoles extends BaseClass { `Custom roles export completed. Total custom roles: ${Object.keys(this.customRoles || {}).length}`, this.exportConfig.context, ); - this.completeProgress(true); + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Custom roles export failed'); diff --git a/packages/contentstack-export/src/export/modules/entries.ts b/packages/contentstack-export/src/export/modules/entries.ts index eccc40c40f..855a6348fb 100644 --- a/packages/contentstack-export/src/export/modules/entries.ts +++ b/packages/contentstack-export/src/export/modules/entries.ts @@ -162,8 +162,8 @@ export default class EntriesExport extends BaseClass { } } - this.completeProgress(true); - log.success(messageHandler.parse('ENTRIES_EXPORT_SUCCESS'), this.exportConfig.context); + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Entries export failed'); diff --git a/packages/contentstack-export/src/export/modules/environments.ts b/packages/contentstack-export/src/export/modules/environments.ts index 31173b0319..5fc29ffa0d 100644 --- a/packages/contentstack-export/src/export/modules/environments.ts +++ b/packages/contentstack-export/src/export/modules/environments.ts @@ -65,12 +65,9 @@ export default class ExportEnvironments extends BaseClass { const environmentsFilePath = pResolve(this.environmentsFolderPath, this.environmentConfig.fileName); log.debug(`Writing environments to: ${environmentsFilePath}`, this.exportConfig.context); fsUtil.writeFile(environmentsFilePath, this.environments); - log.success( - messageHandler.parse('ENVIRONMENT_EXPORT_COMPLETE', Object.keys(this.environments || {}).length), - this.exportConfig.context, - ); } - this.completeProgress(true); + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Environments export failed'); diff --git a/packages/contentstack-export/src/export/modules/extensions.ts b/packages/contentstack-export/src/export/modules/extensions.ts index dcadf5df89..88f1cb434f 100644 --- a/packages/contentstack-export/src/export/modules/extensions.ts +++ b/packages/contentstack-export/src/export/modules/extensions.ts @@ -66,12 +66,10 @@ export default class ExportExtensions extends BaseClass { const extensionsFilePath = pResolve(this.extensionsFolderPath, this.extensionConfig.fileName); log.debug(`Writing extensions to: ${extensionsFilePath}`, this.exportConfig.context); fsUtil.writeFile(extensionsFilePath, this.extensions); - log.success( - messageHandler.parse('EXTENSION_EXPORT_COMPLETE', Object.keys(this.extensions || {}).length), - this.exportConfig.context, - ); + } - this.completeProgress(true); + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Extensions export failed'); diff --git a/packages/contentstack-export/src/export/modules/global-fields.ts b/packages/contentstack-export/src/export/modules/global-fields.ts index 4159ae5333..2481550646 100644 --- a/packages/contentstack-export/src/export/modules/global-fields.ts +++ b/packages/contentstack-export/src/export/modules/global-fields.ts @@ -81,12 +81,10 @@ export default class GlobalFieldsExport extends BaseClass { log.debug(`Writing global fields to: ${globalFieldsFilePath}`, this.exportConfig.context); fsUtil.writeFile(globalFieldsFilePath, this.globalFields); - log.success( - messageHandler.parse('GLOBAL_FIELDS_EXPORT_COMPLETE', this.globalFields.length), - this.exportConfig.context, - ); + + + this.completeProgressWithMessage(); - this.completeProgress(true); } catch (error) { log.debug('Error occurred during global fields export', this.exportConfig.context); handleAndLogError(error, { ...this.exportConfig.context }); diff --git a/packages/contentstack-export/src/export/modules/labels.ts b/packages/contentstack-export/src/export/modules/labels.ts index dab2625903..bfd2305a63 100644 --- a/packages/contentstack-export/src/export/modules/labels.ts +++ b/packages/contentstack-export/src/export/modules/labels.ts @@ -66,13 +66,11 @@ export default class ExportLabels extends BaseClass { const labelsFilePath = pResolve(this.labelsFolderPath, this.labelConfig.fileName); log.debug(`Writing labels to: ${labelsFilePath}`, this.exportConfig.context); fsUtil.writeFile(labelsFilePath, this.labels); - log.success( - messageHandler.parse('LABELS_EXPORT_COMPLETE', Object.keys(this.labels || {}).length), - this.exportConfig.context, - ); + } - this.completeProgress(true); + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Labels export failed'); diff --git a/packages/contentstack-export/src/export/modules/locales.ts b/packages/contentstack-export/src/export/modules/locales.ts index 2919983c6f..7cd206a4fe 100644 --- a/packages/contentstack-export/src/export/modules/locales.ts +++ b/packages/contentstack-export/src/export/modules/locales.ts @@ -86,15 +86,9 @@ export default class LocaleExport extends BaseClass { fsUtil.writeFile(localesFilePath, this.locales); log.debug(`Writing master locale to: ${masterLocaleFilePath}`, this.exportConfig.context); fsUtil.writeFile(masterLocaleFilePath, this.masterLocale); - log.success( - messageHandler.parse( - 'LOCALES_EXPORT_COMPLETE', - Object.keys(this.locales || {}).length, - Object.keys(this.masterLocale || {}).length, - ), - this.exportConfig.context, - ); - this.completeProgress(true); + + this.completeProgressWithMessage(); + } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Locales export failed'); diff --git a/packages/contentstack-export/src/export/modules/marketplace-apps.ts b/packages/contentstack-export/src/export/modules/marketplace-apps.ts index a258f5bc68..42944383a1 100644 --- a/packages/contentstack-export/src/export/modules/marketplace-apps.ts +++ b/packages/contentstack-export/src/export/modules/marketplace-apps.ts @@ -110,8 +110,8 @@ export default class ExportMarketplaceApps extends BaseClass { progress.completeProcess(PROCESS_NAMES.FETCH_CONFIG_MANIFEST, true); } - this.completeProgress(true); - log.success('Marketplace apps export completed successfully', this.exportConfig.context); + this.completeProgressWithMessage(); + } catch (error) { log.debug('Error occurred during marketplace apps export', this.exportConfig.context); handleAndLogError(error, { ...this.exportConfig.context }); diff --git a/packages/contentstack-export/src/export/modules/personalize.ts b/packages/contentstack-export/src/export/modules/personalize.ts index d3eaeb7459..9c402faaa2 100644 --- a/packages/contentstack-export/src/export/modules/personalize.ts +++ b/packages/contentstack-export/src/export/modules/personalize.ts @@ -96,8 +96,9 @@ export default class ExportPersonalize extends BaseClass { log.debug('No personalize modules configured for processing', this.exportConfig.context); } - this.completeProgress(true); - log.success('Personalize export completed successfully', this.exportConfig.context); + this.completeProgressWithMessage(); + + } catch (moduleError) { if (moduleError === 'Forbidden') { log.debug('Personalize access forbidden, personalization not enabled', this.exportConfig.context); diff --git a/packages/contentstack-export/src/export/modules/stack.ts b/packages/contentstack-export/src/export/modules/stack.ts index 8077682a59..a96c068757 100644 --- a/packages/contentstack-export/src/export/modules/stack.ts +++ b/packages/contentstack-export/src/export/modules/stack.ts @@ -119,8 +119,8 @@ export default class ExportStack extends BaseClass { log.debug('Locale locale already set, skipping locale fetch', this.exportConfig.context); } - this.completeProgress(true); - log.success('Stack export completed successfully', this.exportConfig.context); + this.completeProgressWithMessage(); + } catch (error) { log.debug('Error occurred during stack export', this.exportConfig.context); handleAndLogError(error, { ...this.exportConfig.context }); diff --git a/packages/contentstack-export/src/export/modules/taxonomies.ts b/packages/contentstack-export/src/export/modules/taxonomies.ts index 2f9fa502c6..7ba474f644 100644 --- a/packages/contentstack-export/src/export/modules/taxonomies.ts +++ b/packages/contentstack-export/src/export/modules/taxonomies.ts @@ -98,10 +98,8 @@ export default class ExportTaxonomies extends BaseClass { await this.writeTaxonomiesMetadata(); } - log.success( - messageHandler.parse('TAXONOMY_EXPORT_COMPLETE', keys(this.taxonomies || {}).length), - this.exportConfig.context, - ); + this.completeProgressWithMessage(); + } /** diff --git a/packages/contentstack-export/src/export/modules/webhooks.ts b/packages/contentstack-export/src/export/modules/webhooks.ts index a0bec4fd88..e70fc8f836 100644 --- a/packages/contentstack-export/src/export/modules/webhooks.ts +++ b/packages/contentstack-export/src/export/modules/webhooks.ts @@ -63,13 +63,9 @@ export default class ExportWebhooks extends BaseClass { const webhooksFilePath = pResolve(this.webhooksFolderPath, this.webhookConfig.fileName); log.debug(`Writing webhooks to: ${webhooksFilePath}`, this.exportConfig.context); fsUtil.writeFile(webhooksFilePath, this.webhooks); - log.success( - messageHandler.parse('WEBHOOK_EXPORT_COMPLETE', Object.keys(this.webhooks || {}).length), - this.exportConfig.context, - ); } - this.completeProgress(true); + this.completeProgressWithMessage(); } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Webhooks export failed'); diff --git a/packages/contentstack-export/src/export/modules/workflows.ts b/packages/contentstack-export/src/export/modules/workflows.ts index e0ae4192b5..09ebfb2256 100644 --- a/packages/contentstack-export/src/export/modules/workflows.ts +++ b/packages/contentstack-export/src/export/modules/workflows.ts @@ -66,13 +66,9 @@ export default class ExportWorkFlows extends BaseClass { const workflowsFilePath = pResolve(this.webhooksFolderPath, this.workflowConfig.fileName); log.debug(`Writing workflows to: ${workflowsFilePath}`, this.exportConfig.context); fsUtil.writeFile(workflowsFilePath, this.workflows); - log.success( - messageHandler.parse('WORKFLOW_EXPORT_COMPLETE', Object.keys(this.workflows || {}).length), - this.exportConfig.context, - ); } - this.completeProgress(true); + this.completeProgressWithMessage(); } catch (error) { handleAndLogError(error, { ...this.exportConfig.context }); this.completeProgress(false, error?.message || 'Workflows export failed'); diff --git a/packages/contentstack-import/src/import/modules/base-class.ts b/packages/contentstack-import/src/import/modules/base-class.ts index 098a3a2568..c22d1e1661 100644 --- a/packages/contentstack-import/src/import/modules/base-class.ts +++ b/packages/contentstack-import/src/import/modules/base-class.ts @@ -25,6 +25,13 @@ export type AdditionalKeys = { backupDir: string; }; +export type CompleteProgressOptions = { + moduleName?: string; + customSuccessMessage?: string; + customWarningMessage?: string; + context?: Record; +}; + export type ApiModuleType = | 'create-assets' | 'replace-assets' @@ -138,6 +145,35 @@ export default abstract class BaseClass { this.progressManager = null; } + /** + * Complete progress and log success/warning message based on errors + * Checks the progress manager's failure count to determine if errors occurred + * @param options - Options object containing: + * - moduleName: The module name to generate the message (e.g., 'Content types', 'Entries') + * If not provided, uses this.currentModuleName + * - customSuccessMessage: Optional custom success message. If not provided, generates: "{moduleName} have been imported successfully!" + * - customWarningMessage: Optional custom warning message. If not provided, generates: "{moduleName} have been imported with some errors. Please check the logs for details." + * - context: Optional context for logging + */ + protected completeProgressWithMessage(options?: CompleteProgressOptions): void { + const logContext = options?.context || this.importConfig?.context || {}; + const failureCount = this.progressManager?.getFailureCount() || 0; + const hasErrors = failureCount > 0; + const name = options?.moduleName || this.currentModuleName || 'Module'; + + // Generate default messages if not provided + const successMessage = options?.customSuccessMessage || `${name} have been imported successfully!`; + const warningMessage = options?.customWarningMessage || `${name} have been imported with some errors. Please check the logs for details.`; + + this.completeProgress(true); + + if (hasErrors) { + log.warn(warningMessage, logContext); + } else { + log.success(successMessage, logContext); + } + } + protected async withLoadingSpinner(message: string, action: () => Promise): Promise { const logConfig = configHandler.get('log') || {}; const showConsoleLogs = logConfig.showConsoleLogs ?? false; diff --git a/packages/contentstack-import/src/import/modules/content-types.ts b/packages/contentstack-import/src/import/modules/content-types.ts index 04ba1041ca..626891f65f 100644 --- a/packages/contentstack-import/src/import/modules/content-types.ts +++ b/packages/contentstack-import/src/import/modules/content-types.ts @@ -128,8 +128,7 @@ export default class ContentTypesImport extends BaseClass { await this.handlePendingGlobalFields(progress); } - this.completeProgress(true); - log.success('Content types have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); } catch (error) { this.completeProgress(false, error?.message || 'Content types import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/custom-roles.ts b/packages/contentstack-import/src/import/modules/custom-roles.ts index cb8973ffaf..86603f0388 100644 --- a/packages/contentstack-import/src/import/modules/custom-roles.ts +++ b/packages/contentstack-import/src/import/modules/custom-roles.ts @@ -74,8 +74,7 @@ export default class ImportCustomRoles extends BaseClass { this.handleImportResults(); - this.completeProgress(true); - log.success('Custom roles have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); } catch (error) { this.completeProgress(false, error?.message || 'Custom roles import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/entries.ts b/packages/contentstack-import/src/import/modules/entries.ts index 3b5f050f3c..e0e4c4bc3f 100644 --- a/packages/contentstack-import/src/import/modules/entries.ts +++ b/packages/contentstack-import/src/import/modules/entries.ts @@ -193,8 +193,7 @@ export default class EntriesImport extends BaseClass { await this.processCleanup(); progress.completeProcess(PROCESS_NAMES.CLEANUP, true); - this.completeProgress(true); - log.success('Entries imported successfully', this.importConfig.context); + this.completeProgressWithMessage(); } catch (error) { this.createEntryDataForVariantEntry(); this.completeProgress(false, (error as any)?.message || 'Entries import failed'); diff --git a/packages/contentstack-import/src/import/modules/environments.ts b/packages/contentstack-import/src/import/modules/environments.ts index db9ba6ddb2..4962dd48fb 100644 --- a/packages/contentstack-import/src/import/modules/environments.ts +++ b/packages/contentstack-import/src/import/modules/environments.ts @@ -55,8 +55,7 @@ export default class ImportEnvironments extends BaseClass { await this.importEnvironments(); await this.processImportResults(); - this.completeProgress(true); - log.success('Environments have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); } catch (error) { this.completeProgress(false, error?.message || 'Environments import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/extensions.ts b/packages/contentstack-import/src/import/modules/extensions.ts index eb205d792d..a2a1836817 100644 --- a/packages/contentstack-import/src/import/modules/extensions.ts +++ b/packages/contentstack-import/src/import/modules/extensions.ts @@ -86,8 +86,7 @@ export default class ImportExtensions extends BaseClass { await this.processExtensionResults(); - this.completeProgress(true); - log.success('Extensions have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); } catch (error) { this.completeProgress(false, error?.message || 'Create failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/global-fields.ts b/packages/contentstack-import/src/import/modules/global-fields.ts index 129ef19fa0..a1961e2f9d 100644 --- a/packages/contentstack-import/src/import/modules/global-fields.ts +++ b/packages/contentstack-import/src/import/modules/global-fields.ts @@ -132,9 +132,8 @@ export default class ImportGlobalFields extends BaseClass { } await this.processGlobalFieldResults(); + this.completeProgressWithMessage(); - this.completeProgress(true); - log.success('Global fields import has been completed!', this.importConfig.context); } catch (error) { this.completeProgress(false, error?.message || 'Global fields import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/labels.ts b/packages/contentstack-import/src/import/modules/labels.ts index 397a860987..021f33d4ab 100644 --- a/packages/contentstack-import/src/import/modules/labels.ts +++ b/packages/contentstack-import/src/import/modules/labels.ts @@ -73,8 +73,8 @@ export default class ImportLabels extends BaseClass { this.processLabelResults(); - this.completeProgress(true); - log.success('Labels have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, error?.message || 'Labels import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/locales.ts b/packages/contentstack-import/src/import/modules/locales.ts index 6f0790e94b..c3cc4c1726 100644 --- a/packages/contentstack-import/src/import/modules/locales.ts +++ b/packages/contentstack-import/src/import/modules/locales.ts @@ -87,8 +87,7 @@ export default class ImportLocales extends BaseClass { fsUtil.writeFile(this.langFailsPath, this.failedLocales); log.debug(`Written ${this.failedLocales.length} failed locales to file`, this.config.context); - this.completeProgress(true); - log.success('Languages have been imported successfully!', this.config.context); + this.completeProgressWithMessage({ context: this.config.context }); } catch (error) { this.completeProgress(false, error?.message || 'Locales import failed'); handleAndLogError(error, { ...this.config.context }); diff --git a/packages/contentstack-import/src/import/modules/marketplace-apps.ts b/packages/contentstack-import/src/import/modules/marketplace-apps.ts index 6b0049d06a..ceba64f339 100644 --- a/packages/contentstack-import/src/import/modules/marketplace-apps.ts +++ b/packages/contentstack-import/src/import/modules/marketplace-apps.ts @@ -140,8 +140,8 @@ export default class ImportMarketplaceApps extends BaseClass { await this.importMarketplaceApps(); progress.completeProcess(PROCESS_NAMES.INSTALL_APPS, true); - this.completeProgress(true); - log.success('Marketplace apps have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, error?.message || 'Marketplace apps import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/personalize.ts b/packages/contentstack-import/src/import/modules/personalize.ts index 711d80ba94..ced2abfce3 100644 --- a/packages/contentstack-import/src/import/modules/personalize.ts +++ b/packages/contentstack-import/src/import/modules/personalize.ts @@ -54,8 +54,8 @@ export default class ImportPersonalize extends BaseClass { log.debug('No personalize modules configured for processing', this.config.context); } - this.completeProgress(true); - log.success('Personalize import completed successfully', this.config.context); + this.completeProgressWithMessage(); + } catch (error) { this.personalizeConfig.importData = false; // Stop personalize import if project creation fails this.completeProgress(false, (error as any)?.message || 'Personalize import failed'); diff --git a/packages/contentstack-import/src/import/modules/stack.ts b/packages/contentstack-import/src/import/modules/stack.ts index 2bf7cdf288..de80a03492 100644 --- a/packages/contentstack-import/src/import/modules/stack.ts +++ b/packages/contentstack-import/src/import/modules/stack.ts @@ -48,8 +48,8 @@ export default class ImportStack extends BaseClass { log.info('Starting stack settings import process', this.importConfig.context); await this.importStackSettings(); - this.completeProgress(true); - log.success('Stack settings imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, 'Stack settings import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/taxonomies.ts b/packages/contentstack-import/src/import/modules/taxonomies.ts index fc25786d81..5fc244b75d 100644 --- a/packages/contentstack-import/src/import/modules/taxonomies.ts +++ b/packages/contentstack-import/src/import/modules/taxonomies.ts @@ -57,8 +57,8 @@ export default class ImportTaxonomies extends BaseClass { await this.importTaxonomies(); this.createSuccessAndFailedFile(); - this.completeProgress(true); - log.success('Taxonomies imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, error?.message || 'Taxonomies import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/variant-entries.ts b/packages/contentstack-import/src/import/modules/variant-entries.ts index 84617c89f8..0953ebfaf7 100644 --- a/packages/contentstack-import/src/import/modules/variant-entries.ts +++ b/packages/contentstack-import/src/import/modules/variant-entries.ts @@ -62,8 +62,8 @@ export default class ImportVariantEntries extends BaseClass { log.info('Starting variant entries import process', this.config.context); await this.importVariantEntries(); - this.completeProgress(true); - log.success('Variant entries imported successfully', this.config.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, (error as any)?.message || 'Variant entries import failed'); handleAndLogError(error, { ...this.config.context }); diff --git a/packages/contentstack-import/src/import/modules/webhooks.ts b/packages/contentstack-import/src/import/modules/webhooks.ts index 54d0621f01..a9197ce0b1 100644 --- a/packages/contentstack-import/src/import/modules/webhooks.ts +++ b/packages/contentstack-import/src/import/modules/webhooks.ts @@ -58,8 +58,8 @@ export default class ImportWebhooks extends BaseClass { this.processWebhookResults(); - this.completeProgress(true); - log.success('Webhooks have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, error?.message || 'Webhooks import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-import/src/import/modules/workflows.ts b/packages/contentstack-import/src/import/modules/workflows.ts index 756ae9fde5..5c8ce218d7 100644 --- a/packages/contentstack-import/src/import/modules/workflows.ts +++ b/packages/contentstack-import/src/import/modules/workflows.ts @@ -92,8 +92,8 @@ export default class ImportWorkflows extends BaseClass { this.processWorkflowResults(); - this.completeProgress(true); - log.success('Workflows have been imported successfully!', this.importConfig.context); + this.completeProgressWithMessage(); + } catch (error) { this.completeProgress(false, error?.message || 'Workflows import failed'); handleAndLogError(error, { ...this.importConfig.context }); diff --git a/packages/contentstack-utilities/src/progress-summary/cli-progress-manager.ts b/packages/contentstack-utilities/src/progress-summary/cli-progress-manager.ts index 32b1762f50..d87c03f446 100644 --- a/packages/contentstack-utilities/src/progress-summary/cli-progress-manager.ts +++ b/packages/contentstack-utilities/src/progress-summary/cli-progress-manager.ts @@ -578,10 +578,10 @@ export default class CLIProgressManager { this.spinner.stop(); } - // Print summary when console logs are enabled - if (this.showConsoleLogs) { - this.printSummary(); - } + // // Print summary when console logs are enabled + // if (this.showConsoleLogs) { + // this.printSummary(); + // } } private printSummary(): void {