Skip to content

Commit 4f81f62

Browse files
committed
fix(import): align import with single-branch export, import; path resolution and target branch handling
1 parent e84297b commit 4f81f62

40 files changed

Lines changed: 339 additions & 235 deletions

packages/contentstack-export/src/export/module-exporter.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import * as path from 'path';
21
import {
32
ContentstackClient,
43
handleAndLogError,
@@ -66,7 +65,7 @@ class ModuleExporter {
6665
try {
6766
this.exportConfig.branchName = targetBranch.uid;
6867
this.stackAPIClient.stackHeaders.branch = targetBranch.uid;
69-
this.exportConfig.branchDir = path.join(this.exportConfig.exportDir, targetBranch.uid);
68+
this.exportConfig.branchDir = this.exportConfig.exportDir;
7069

7170
// Initialize progress manager for the target branch
7271
CLIProgressManager.clearGlobalSummary();

packages/contentstack-export/src/export/modules/assets.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { PATH_CONSTANTS } from '../../constants';
2525
import config from '../../config';
2626
import { ModuleClassParams } from '../../types';
2727
import BaseClass, { CustomPromiseHandler, CustomPromiseHandlerInput } from './base-class';
28-
import { PROCESS_NAMES, MODULE_CONTEXTS, PROCESS_STATUS, MODULE_NAMES } from '../../utils';
28+
import { getExportBasePath, PROCESS_NAMES, MODULE_CONTEXTS, PROCESS_STATUS, MODULE_NAMES } from '../../utils';
2929

3030
export default class ExportAssets extends BaseClass {
3131
private assetsRootPath: string;
@@ -49,8 +49,7 @@ export default class ExportAssets extends BaseClass {
4949

5050
async start(): Promise<void> {
5151
this.assetsRootPath = pResolve(
52-
this.exportConfig.exportDir,
53-
this.exportConfig.branchName || '',
52+
getExportBasePath(this.exportConfig),
5453
this.assetConfig.dirName,
5554
);
5655
log.debug(`Assets root path resolved to: ${this.assetsRootPath}`, this.exportConfig.context);

packages/contentstack-export/src/export/modules/composable-studio.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
authenticationHandler,
1010
} from '@contentstack/cli-utilities';
1111

12-
import { fsUtil, getOrgUid } from '../../utils';
12+
import { fsUtil, getExportBasePath, getOrgUid } from '../../utils';
1313
import { ModuleClassParams, ComposableStudioConfig, ExportConfig, ComposableStudioProject } from '../../types';
1414

1515
export default class ExportComposableStudio {
@@ -41,8 +41,7 @@ export default class ExportComposableStudio {
4141
}
4242

4343
this.composableStudioPath = pResolve(
44-
this.exportConfig.exportDir,
45-
this.exportConfig.branchName || '',
44+
getExportBasePath(this.exportConfig),
4645
this.composableStudioConfig.dirName,
4746
);
4847
log.debug(`Studio folder path: ${this.composableStudioPath}`, this.exportConfig.context);

packages/contentstack-export/src/export/modules/content-types.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { PATH_CONSTANTS } from '../../constants';
44

55
import BaseClass from './base-class';
66
import { ExportConfig, ModuleClassParams } from '../../types';
7-
import { fsUtil, executeTask, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
7+
import { fsUtil, executeTask, getExportBasePath, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
88

99
export default class ContentTypesExport extends BaseClass {
1010
private stackAPIClient: ReturnType<ContentstackClient['stack']>;
@@ -48,8 +48,7 @@ export default class ContentTypesExport extends BaseClass {
4848
this.applyQueryFilters(this.qs, 'content-types');
4949

5050
this.contentTypesDirPath = path.resolve(
51-
sanitizePath(exportConfig.exportDir),
52-
sanitizePath(exportConfig.branchName || ''),
51+
sanitizePath(getExportBasePath(exportConfig)),
5352
sanitizePath(this.contentTypesConfig.dirName),
5453
);
5554
this.contentTypes = [];

packages/contentstack-export/src/export/modules/custom-roles.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { handleAndLogError, messageHandler, log } from '@contentstack/cli-utilit
88
import BaseClass from './base-class';
99
import {
1010
fsUtil,
11+
getExportBasePath,
1112
PROCESS_NAMES,
1213
MODULE_CONTEXTS,
1314
PROCESS_STATUS,
@@ -43,8 +44,7 @@ export default class ExportCustomRoles extends BaseClass {
4344
'CUSTOM-ROLES: Analyzing roles and locales...',
4445
async () => {
4546
this.rolesFolderPath = pResolve(
46-
this.exportConfig.exportDir,
47-
this.exportConfig.branchName || '',
47+
getExportBasePath(this.exportConfig),
4848
this.customRolesConfig.dirName,
4949
);
5050

packages/contentstack-export/src/export/modules/entries.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
} from '@contentstack/cli-utilities';
1111
import { PATH_CONSTANTS } from '../../constants';
1212
import { Export, ExportProjects } from '@contentstack/cli-variants';
13-
import { fsUtil, PROCESS_NAMES, MODULE_CONTEXTS, PROCESS_STATUS, MODULE_NAMES } from '../../utils';
13+
import { fsUtil, getExportBasePath, PROCESS_NAMES, MODULE_CONTEXTS, PROCESS_STATUS, MODULE_NAMES } from '../../utils';
1414
import BaseClass, { ApiOptions } from './base-class';
1515
import { ExportConfig, ModuleClassParams } from '../../types';
1616

@@ -41,20 +41,18 @@ export default class EntriesExport extends BaseClass {
4141
this.stackAPIClient = stackAPIClient;
4242
this.exportConfig = exportConfig;
4343
this.entriesConfig = exportConfig.modules.entries;
44+
const basePath = getExportBasePath(exportConfig);
4445
this.entriesDirPath = path.resolve(
45-
sanitizePath(exportConfig.exportDir),
46-
sanitizePath(exportConfig.branchName || ''),
46+
sanitizePath(basePath),
4747
sanitizePath(this.entriesConfig.dirName),
4848
);
4949
this.localesFilePath = path.resolve(
50-
sanitizePath(exportConfig.exportDir),
51-
sanitizePath(exportConfig.branchName || ''),
50+
sanitizePath(basePath),
5251
sanitizePath(exportConfig.modules.locales.dirName),
5352
sanitizePath(exportConfig.modules.locales.fileName),
5453
);
5554
this.contentTypesDirPath = path.resolve(
56-
sanitizePath(exportConfig.exportDir),
57-
sanitizePath(exportConfig.branchName || ''),
55+
sanitizePath(basePath),
5856
sanitizePath(exportConfig.modules.content_types.dirName),
5957
);
6058
this.projectInstance = new ExportProjects(this.exportConfig);

packages/contentstack-export/src/export/modules/environments.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { handleAndLogError, messageHandler, log } from '@contentstack/cli-utilit
55

66
import BaseClass from './base-class';
77
import { EnvironmentConfig, ModuleClassParams } from '../../types';
8-
import { fsUtil, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
8+
import { fsUtil, getExportBasePath, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
99

1010
export default class ExportEnvironments extends BaseClass {
1111
private environments: Record<string, unknown>;
@@ -32,8 +32,7 @@ export default class ExportEnvironments extends BaseClass {
3232
// Setup with loading spinner
3333
const [totalCount] = await this.withLoadingSpinner('ENVIRONMENTS: Analyzing environments...', async () => {
3434
this.environmentsFolderPath = pResolve(
35-
this.exportConfig.exportDir,
36-
this.exportConfig.branchName || '',
35+
getExportBasePath(this.exportConfig),
3736
this.environmentConfig.dirName,
3837
);
3938
await fsUtil.makeDirectory(this.environmentsFolderPath);

packages/contentstack-export/src/export/modules/extensions.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { handleAndLogError, messageHandler, log } from '@contentstack/cli-utilit
55

66
import BaseClass from './base-class';
77
import { ExtensionsConfig, ModuleClassParams } from '../../types';
8-
import { fsUtil, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
8+
import { fsUtil, getExportBasePath, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
99

1010
export default class ExportExtensions extends BaseClass {
1111
private extensionsFolderPath: string;
@@ -33,8 +33,7 @@ export default class ExportExtensions extends BaseClass {
3333
// Setup with loading spinner
3434
const [totalCount] = await this.withLoadingSpinner('EXTENSIONS: Analyzing extensions...', async () => {
3535
this.extensionsFolderPath = pResolve(
36-
this.exportConfig.exportDir,
37-
this.exportConfig.branchName || '',
36+
getExportBasePath(this.exportConfig),
3837
this.extensionConfig.dirName,
3938
);
4039
await fsUtil.makeDirectory(this.extensionsFolderPath);

packages/contentstack-export/src/export/modules/global-fields.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ContentstackClient, handleAndLogError, messageHandler, log, sanitizePat
33

44
import BaseClass from './base-class';
55
import { ExportConfig, ModuleClassParams } from '../../types';
6-
import { fsUtil, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
6+
import { fsUtil, getExportBasePath, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
77

88
export default class GlobalFieldsExport extends BaseClass {
99
private stackAPIClient: ReturnType<ContentstackClient['stack']>;
@@ -38,8 +38,7 @@ export default class GlobalFieldsExport extends BaseClass {
3838
include_global_field_schema: true,
3939
};
4040
this.globalFieldsDirPath = path.resolve(
41-
sanitizePath(exportConfig.exportDir),
42-
sanitizePath(exportConfig.branchName || ''),
41+
sanitizePath(getExportBasePath(exportConfig)),
4342
sanitizePath(this.globalFieldsConfig.dirName),
4443
);
4544
this.globalFields = [];

packages/contentstack-export/src/export/modules/labels.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { handleAndLogError, messageHandler, log } from '@contentstack/cli-utilit
55

66
import BaseClass from './base-class';
77
import { LabelConfig, ModuleClassParams } from '../../types';
8-
import { fsUtil, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
8+
import { fsUtil, getExportBasePath, MODULE_CONTEXTS, MODULE_NAMES } from '../../utils';
99

1010
export default class ExportLabels extends BaseClass {
1111
private labels: Record<string, Record<string, string>>;
@@ -32,8 +32,7 @@ export default class ExportLabels extends BaseClass {
3232
// Setup with loading spinner
3333
const [totalCount] = await this.withLoadingSpinner('LABELS: Analyzing labels...', async () => {
3434
this.labelsFolderPath = pResolve(
35-
this.exportConfig.exportDir,
36-
this.exportConfig.branchName || '',
35+
getExportBasePath(this.exportConfig),
3736
this.labelConfig.dirName,
3837
);
3938

0 commit comments

Comments
 (0)