Skip to content

Commit e4101ae

Browse files
authored
Merge pull request #1940 from contentstack/fix/nested
Fixed Nested Global Field
2 parents e784194 + f950ef3 commit e4101ae

File tree

8 files changed

+901
-833
lines changed

8 files changed

+901
-833
lines changed

.talismanrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ fileignoreconfig:
113113
- filename: packages/contentstack/package.json
114114
checksum: 9b0fdd100effcdbb5ee3809f7f102bfd11c88dd76e49db5103434f3aa29473dd
115115
- filename: pnpm-lock.yaml
116-
checksum: 85b652e6a8d386a7209294e67f91a570dbf9f96be396995d44cf4dbb54d073a4
116+
checksum: d1ac3746440f92fdf23f07fcbe3266ee7ac5ad5ce1b7d16108b593b352e5e719
117117
- filename: package-lock.json
118-
checksum: c1556f7d4bcc426e0b821961b922a465c9f1cf8ef38e858e8beeeb591356746b
118+
checksum: cbb0db266f55fac87a85c72371a7791cf16a7d4dc6d2165826e2fcc8c50aa967
119119
- filename: packages/contentstack-audit/src/audit-base-command.ts
120120
checksum: 4544ad2869041340969c66500268c61f969e2ad907891c9a62b94fdae47134de
121121
- filename: packages/contentstack-migrate-rte/test/commands/json-migration.test.js

package-lock.json

Lines changed: 286 additions & 284 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/contentstack-clone/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues",
77
"dependencies": {
88
"@colors/colors": "^1.6.0",
9-
"@contentstack/cli-cm-export": "~1.16.1",
9+
"@contentstack/cli-cm-export": "~1.16.2",
1010
"@contentstack/cli-cm-import": "~1.22.0",
1111
"@contentstack/cli-command": "~1.5.0",
1212
"@contentstack/cli-utilities": "~1.11.1",

packages/contentstack-export/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@contentstack/cli-cm-export",
33
"description": "Contentstack CLI plugin to export content from stack",
4-
"version": "1.16.1",
4+
"version": "1.16.2",
55
"author": "Contentstack",
66
"bugs": "https://github.com/contentstack/cli/issues",
77
"dependencies": {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default class GlobalFieldsExport extends BaseClass {
1313
asc: string;
1414
skip?: number;
1515
limit?: number;
16+
include_global_field_schema?: boolean;
1617
};
1718
private globalFieldsConfig: {
1819
dirName?: string;
@@ -34,6 +35,7 @@ export default class GlobalFieldsExport extends BaseClass {
3435
asc: 'updated_at',
3536
include_count: true,
3637
limit: this.globalFieldsConfig.limit,
38+
include_global_field_schema: true
3739
};
3840
this.globalFieldsDirPath = path.resolve(
3941
sanitizePath(exportConfig.data),

packages/contentstack-import/src/utils/content-type-helper.ts

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -86,78 +86,80 @@ export const removeReferenceFields = async function (
8686
flag = { supressed: false },
8787
stackAPIClient: any,
8888
): Promise<boolean | void> {
89-
for (let i = 0; i < schema.length; i++) {
90-
if (schema[i].data_type === 'group') {
91-
await removeReferenceFields(schema[i].schema, flag, stackAPIClient);
92-
} else if (schema[i].data_type === 'blocks') {
93-
for (var block in schema[i].blocks) {
94-
await removeReferenceFields(schema[i].blocks[block].schema, flag, stackAPIClient);
95-
}
96-
} else if (schema[i].data_type === 'reference') {
97-
flag.supressed = true;
98-
// Check if content-type exists
99-
// If exists, then no change should be required.
100-
let isContentTypeError = false;
101-
for (let j = 0; j < schema[i].reference_to.length; j++) {
102-
try {
103-
await stackAPIClient.contentType(schema[i].reference_to[j]).fetch();
104-
} catch (error) {
105-
// Else warn and modify the schema object.
106-
isContentTypeError = true;
107-
console.warn(`Content-type ${schema[i].reference_to[j]} does not exist. Removing the field from schema`);
89+
if (schema?.length) {
90+
for (let i = 0; i < schema.length; i++) {
91+
if (schema[i].data_type === 'group') {
92+
await removeReferenceFields(schema[i].schema, flag, stackAPIClient);
93+
} else if (schema[i].data_type === 'blocks') {
94+
for (var block in schema[i].blocks) {
95+
await removeReferenceFields(schema[i].blocks[block].schema, flag, stackAPIClient);
10896
}
109-
}
110-
if (isContentTypeError) {
111-
schema.splice(i, 1);
112-
--i;
113-
if (schema.length < 1) {
114-
schema.push({
115-
data_type: 'text',
116-
display_name: 'dummyTest',
117-
uid: 'dummy_test',
118-
field_metadata: {
119-
description: '',
120-
default_value: '',
121-
version: 3,
122-
},
123-
format: '',
124-
error_messages: {
97+
} else if (schema[i].data_type === 'reference') {
98+
flag.supressed = true;
99+
// Check if content-type exists
100+
// If exists, then no change should be required.
101+
let isContentTypeError = false;
102+
for (let j = 0; j < schema[i].reference_to.length; j++) {
103+
try {
104+
await stackAPIClient.contentType(schema[i].reference_to[j]).fetch();
105+
} catch (error) {
106+
// Else warn and modify the schema object.
107+
isContentTypeError = true;
108+
console.warn(`Content-type ${schema[i].reference_to[j]} does not exist. Removing the field from schema`);
109+
}
110+
}
111+
if (isContentTypeError) {
112+
schema.splice(i, 1);
113+
--i;
114+
if (schema.length < 1) {
115+
schema.push({
116+
data_type: 'text',
117+
display_name: 'dummyTest',
118+
uid: 'dummy_test',
119+
field_metadata: {
120+
description: '',
121+
default_value: '',
122+
version: 3,
123+
},
125124
format: '',
126-
},
127-
multiple: false,
128-
mandatory: false,
129-
unique: false,
130-
non_localizable: false,
131-
});
125+
error_messages: {
126+
format: '',
127+
},
128+
multiple: false,
129+
mandatory: false,
130+
unique: false,
131+
non_localizable: false,
132+
});
133+
}
132134
}
135+
} else if (
136+
// handling entry references in json rte
137+
schema[i].data_type === 'json' &&
138+
schema[i].field_metadata.allow_json_rte &&
139+
schema[i].field_metadata.embed_entry &&
140+
schema[i].reference_to.length > 1
141+
) {
142+
flag.supressed = true;
143+
schema[i].reference_to = ['sys_assets'];
144+
} else if (
145+
// handling entry references in json rte
146+
schema[i].data_type === 'json' &&
147+
schema[i]?.field_metadata?.rich_text_type &&
148+
schema[i]?.field_metadata?.embed_entry &&
149+
schema[i]?.reference_to?.length > 1
150+
) {
151+
flag.supressed = true;
152+
schema[i].reference_to = ['sys_assets'];
153+
} else if (
154+
// handling entry references in rte
155+
schema[i].data_type === 'text' &&
156+
schema[i]?.field_metadata?.rich_text_type &&
157+
schema[i]?.field_metadata?.embed_entry &&
158+
schema[i]?.reference_to?.length >= 1
159+
) {
160+
flag.supressed = true;
161+
schema[i].reference_to = ['sys_assets'];
133162
}
134-
} else if (
135-
// handling entry references in json rte
136-
schema[i].data_type === 'json' &&
137-
schema[i].field_metadata.allow_json_rte &&
138-
schema[i].field_metadata.embed_entry &&
139-
schema[i].reference_to.length > 1
140-
) {
141-
flag.supressed = true;
142-
schema[i].reference_to = ['sys_assets'];
143-
} else if (
144-
// handling entry references in json rte
145-
schema[i].data_type === 'json' &&
146-
schema[i]?.field_metadata?.rich_text_type &&
147-
schema[i]?.field_metadata?.embed_entry &&
148-
schema[i]?.reference_to?.length > 1
149-
) {
150-
flag.supressed = true;
151-
schema[i].reference_to = ['sys_assets'];
152-
} else if (
153-
// handling entry references in rte
154-
schema[i].data_type === 'text' &&
155-
schema[i]?.field_metadata?.rich_text_type &&
156-
schema[i]?.field_metadata?.embed_entry &&
157-
schema[i]?.reference_to?.length >= 1
158-
) {
159-
flag.supressed = true;
160-
schema[i].reference_to = ['sys_assets'];
161163
}
162164
}
163165
};

packages/contentstack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"@contentstack/cli-cm-branches": "~1.4.2",
2929
"@contentstack/cli-cm-bulk-publish": "~1.8.0",
3030
"@contentstack/cli-cm-clone": "~1.14.1",
31-
"@contentstack/cli-cm-export": "~1.16.1",
31+
"@contentstack/cli-cm-export": "~1.16.2",
3232
"@contentstack/cli-cm-export-to-csv": "~1.8.1",
3333
"@contentstack/cli-cm-import": "~1.22.0",
3434
"@contentstack/cli-cm-import-setup": "1.2.0",

0 commit comments

Comments
 (0)