Skip to content

Commit b564102

Browse files
committed
feat(import): add --skip-taxonomy-publish flag, default true
1 parent 59e2068 commit b564102

8 files changed

Lines changed: 38 additions & 4 deletions

File tree

packages/contentstack-import/src/commands/cm/stacks/import.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ export default class ImportCommand extends Command {
108108
description: 'Skips entry publishing during the import process',
109109
default: false,
110110
}),
111+
'skip-taxonomy-publish': flags.boolean({
112+
description: 'Skips taxonomy publishing during the import process.',
113+
default: true,
114+
}),
111115
};
112116

113117
static usage: string =

packages/contentstack-import/src/config/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,7 @@ const config: DefaultConfig = {
493493
//'taxonomies', 'environments', 'marketplace_apps', workflows, custom-roles --> Add this incase need to extend to the other global modules
494494
globalModules: ['webhooks'],
495495
entriesPublish: true,
496+
skipTaxonomyPublish: true,
496497
};
497498
export const PUBLISHING_RULES_APPROVERS_SKIP_MSG =
498499
'Skipping import of publish rule approver(s) (roles/users); reconfigure approvers on the target stack.';

packages/contentstack-import/src/import/modules/taxonomies.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export default class ImportTaxonomies extends BaseClass {
104104

105105
progress.completeProcess(PROCESS_NAMES.TAXONOMIES_IMPORT, true);
106106

107-
if (publishJobCount > 0) {
107+
if (this.importConfig.skipTaxonomyPublish === false && publishJobCount > 0) {
108108
progress
109109
.startProcess(PROCESS_NAMES.TAXONOMIES_PUBLISH)
110110
.updateStatus(
@@ -389,7 +389,7 @@ export default class ImportTaxonomies extends BaseClass {
389389
*/
390390
initializeTaxonomiesProgress(progress: CLIProgressManager, taxonomyCount: number, publishJobCount: number): void {
391391
progress.addProcess(PROCESS_NAMES.TAXONOMIES_IMPORT, taxonomyCount);
392-
if (publishJobCount > 0) {
392+
if (this.importConfig.skipTaxonomyPublish === false && publishJobCount > 0) {
393393
progress.addProcess(PROCESS_NAMES.TAXONOMIES_PUBLISH, publishJobCount);
394394
}
395395
}
@@ -570,8 +570,11 @@ export default class ImportTaxonomies extends BaseClass {
570570
this.isLocaleBasedStructure = this.detectAndScanLocaleStructure();
571571

572572
const taxonomyCount = Object.keys(this.taxonomies || {}).length;
573-
const envMapper = readEnvUidMapperSync(this.envUidMapperPath, this.importConfig.context);
574-
const publishJobCount = this.countPublishEligibleTaxonomies(envMapper);
573+
let publishJobCount = 0;
574+
if (this.importConfig.skipTaxonomyPublish === false) {
575+
const envMapper = readEnvUidMapperSync(this.envUidMapperPath, this.importConfig.context);
576+
publishJobCount = this.countPublishEligibleTaxonomies(envMapper);
577+
}
575578

576579
log.debug(
577580
`Loaded ${taxonomyCount} taxonomy items; ${publishJobCount} eligible for publish (mapped environments).`,

packages/contentstack-import/src/types/default-config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,5 +227,6 @@ export default interface DefaultConfig {
227227
globalModules: string[];
228228
skipAssetsPublish?: boolean;
229229
skipEntriesPublish?: boolean;
230+
skipTaxonomyPublish?: boolean;
230231
entriesPublish: boolean;
231232
}

packages/contentstack-import/src/types/import-config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default interface ImportConfig extends DefaultConfig, ExternalConfig {
1414
authenticationMethod?: string;
1515
skipAssetsPublish?: boolean;
1616
skipEntriesPublish?: boolean;
17+
skipTaxonomyPublish?: boolean;
1718
cliLogsPath: string;
1819
canCreatePrivateApp: boolean;
1920
contentDir: string;

packages/contentstack-import/src/utils/import-config-handler.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@ const setupConfig = async (importCmdFlags: any): Promise<ImportConfig> => {
125125
config.skipEntriesPublish = importCmdFlags['skip-entries-publish'];
126126
}
127127

128+
config.skipTaxonomyPublish = importCmdFlags['skip-taxonomy-publish'] ?? true;
129+
128130
config.replaceExisting = importCmdFlags['replace-existing'];
129131
config.skipExisting = importCmdFlags['skip-existing'];
130132

packages/contentstack-import/test/unit/import/modules/locales.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ describe('ImportLocales', () => {
192192
overwriteSupportedModules: [],
193193
globalModules: [],
194194
entriesPublish: false,
195+
skipTaxonomyPublish: true,
195196
cliLogsPath: '/test/logs',
196197
canCreatePrivateApp: false,
197198
forceStopMarketplaceAppsPrompt: false,

packages/contentstack-import/test/unit/utils/import-config-handler.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,27 @@ describe('Import Config Handler', () => {
389389
expect(result.skipEntriesPublish).to.be.true;
390390
});
391391

392+
it('should set skipTaxonomyPublish to true by default', async () => {
393+
const importCmdFlags = {
394+
data: '/test/content',
395+
};
396+
397+
const result = await setupConfig(importCmdFlags);
398+
399+
expect(result.skipTaxonomyPublish).to.be.true;
400+
});
401+
402+
it('should allow skipTaxonomyPublish to be overridden to false', async () => {
403+
const importCmdFlags = {
404+
data: '/test/content',
405+
'skip-taxonomy-publish': false,
406+
};
407+
408+
const result = await setupConfig(importCmdFlags);
409+
410+
expect(result.skipTaxonomyPublish).to.be.false;
411+
});
412+
392413
it('should set replaceExisting from replace-existing flag', async () => {
393414
const importCmdFlags = {
394415
data: '/test/content',

0 commit comments

Comments
 (0)