Skip to content

Commit c09775f

Browse files
authored
fix: linked content type validations [NONE] (#282)
1 parent 5a1d824 commit c09775f

File tree

5 files changed

+110
-5
lines changed

5 files changed

+110
-5
lines changed

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
"jest-fixtures": "^0.6.0",
4747
"lint-staged": "^13.1.0",
4848
"oclif": "^3.4.3",
49+
"patch-package": "^8.0.0",
50+
"postinstall-postinstall": "^2.1.0",
4951
"prettier": "^3.0.0",
5052
"semantic-release": "^19.0.2",
5153
"strip-indent": "^3.0.0",
@@ -68,7 +70,8 @@
6870
"version": "oclif readme && git add README.md",
6971
"presemantic-release": "yarn run build",
7072
"semantic-release": "semantic-release",
71-
"prepare": "husky install"
73+
"prepare": "husky install",
74+
"postinstall": "patch-package"
7275
},
7376
"release": {
7477
"branches": [

patches/contentful+10.1.8.patch

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/node_modules/contentful/dist/types/types/content-type.d.ts b/node_modules/contentful/dist/types/types/content-type.d.ts
2+
index 795b738..748c6fc 100644
3+
--- a/node_modules/contentful/dist/types/types/content-type.d.ts
4+
+++ b/node_modules/contentful/dist/types/types/content-type.d.ts
5+
@@ -61,7 +61,7 @@ export interface ContentTypeFieldValidation {
6+
};
7+
linkMimetypeGroup?: string[];
8+
in?: string[];
9+
- linkContentType?: string[];
10+
+ linkContentType?: string | string[];
11+
message?: string;
12+
nodes?: {
13+
'entry-hyperlink'?: ContentTypeFieldValidation[];

src/extract-validation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ const validation = (node: WithValidations, field: keyof ContentTypeFieldValidati
1414
};
1515

1616
export const linkContentTypeValidations = (node: WithValidations): string[] => {
17-
return validation(node, 'linkContentType');
17+
const value = validation(node, 'linkContentType');
18+
return Array.isArray(value) ? value : [value];
1819
};
1920

2021
export const inValidations = (node: WithValidations): string[] => {

test/extract-validation.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,9 @@ describe('A linkContentTypeValidations function', () => {
2020
const field = { validations: [{ linkContentType: ['topicA', 'topicB'] }] };
2121
expect(linkContentTypeValidations(field)).toEqual(['topicA', 'topicB']);
2222
});
23+
24+
it('parses a non array linked content type validation', () => {
25+
const field = { validations: [{ linkContentType: 'topicA' }] };
26+
expect(linkContentTypeValidations(field)).toEqual(['topicA']);
27+
});
2328
});

yarn.lock

Lines changed: 86 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,6 +1648,11 @@
16481648
"@typescript-eslint/types" "4.33.0"
16491649
eslint-visitor-keys "^2.0.0"
16501650

1651+
"@yarnpkg/lockfile@^1.1.0":
1652+
version "1.1.0"
1653+
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
1654+
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
1655+
16511656
JSONStream@^1.0.4:
16521657
version "1.3.5"
16531658
resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz"
@@ -2352,6 +2357,11 @@ ci-info@^3.2.0:
23522357
resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz"
23532358
integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==
23542359

2360+
ci-info@^3.7.0:
2361+
version "3.8.0"
2362+
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91"
2363+
integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
2364+
23552365
cidr-regex@^3.1.1:
23562366
version "3.1.1"
23572367
resolved "https://registry.npmjs.org/cidr-regex/-/cidr-regex-3.1.1.tgz"
@@ -3788,7 +3798,7 @@ fs-extra@^8.1:
37883798
jsonfile "^4.0.0"
37893799
universalify "^0.1.0"
37903800

3791-
fs-extra@^9.0.1, fs-extra@^9.1.0:
3801+
fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0:
37923802
version "9.1.0"
37933803
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
37943804
integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
@@ -4006,6 +4016,11 @@ got@^11:
40064016
p-cancelable "^2.0.0"
40074017
responselike "^2.0.0"
40084018

4019+
graceful-fs@^4.1.11:
4020+
version "4.2.11"
4021+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
4022+
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
4023+
40094024
graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
40104025
version "4.2.10"
40114026
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
@@ -4570,7 +4585,7 @@ is-utf8@^0.2.0, is-utf8@^0.2.1:
45704585
resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
45714586
integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==
45724587

4573-
is-wsl@^2.2.0:
4588+
is-wsl@^2.1.1, is-wsl@^2.2.0:
45744589
version "2.2.0"
45754590
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
45764591
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
@@ -5094,6 +5109,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
50945109
resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
50955110
integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
50965111

5112+
json-stable-stringify@^1.0.2:
5113+
version "1.0.2"
5114+
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0"
5115+
integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==
5116+
dependencies:
5117+
jsonify "^0.0.1"
5118+
50975119
json-stringify-nice@^1.1.4:
50985120
version "1.1.4"
50995121
resolved "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz"
@@ -5125,6 +5147,11 @@ jsonfile@^6.0.1:
51255147
optionalDependencies:
51265148
graceful-fs "^4.1.6"
51275149

5150+
jsonify@^0.0.1:
5151+
version "0.0.1"
5152+
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978"
5153+
integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==
5154+
51285155
jsonparse@^1.2.0, jsonparse@^1.3.1:
51295156
version "1.3.1"
51305157
resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz"
@@ -5179,6 +5206,13 @@ kind-of@^6.0.3:
51795206
resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
51805207
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
51815208

5209+
klaw-sync@^6.0.0:
5210+
version "6.0.0"
5211+
resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
5212+
integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
5213+
dependencies:
5214+
graceful-fs "^4.1.11"
5215+
51825216
kleur@^3.0.3:
51835217
version "3.0.3"
51845218
resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"
@@ -5813,6 +5847,11 @@ minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5:
58135847
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
58145848
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
58155849

5850+
minimist@^1.2.6:
5851+
version "1.2.8"
5852+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
5853+
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
5854+
58165855
minipass-collect@^1.0.2:
58175856
version "1.0.2"
58185857
resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz"
@@ -6391,6 +6430,14 @@ onetime@^6.0.0:
63916430
dependencies:
63926431
mimic-fn "^4.0.0"
63936432

6433+
open@^7.4.2:
6434+
version "7.4.2"
6435+
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
6436+
integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
6437+
dependencies:
6438+
is-docker "^2.0.0"
6439+
is-wsl "^2.1.1"
6440+
63946441
opener@^1.5.2:
63956442
version "1.5.2"
63966443
resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz"
@@ -6659,6 +6706,27 @@ password-prompt@^1.1.2:
66596706
ansi-escapes "^3.1.0"
66606707
cross-spawn "^6.0.5"
66616708

6709+
patch-package@^8.0.0:
6710+
version "8.0.0"
6711+
resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61"
6712+
integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==
6713+
dependencies:
6714+
"@yarnpkg/lockfile" "^1.1.0"
6715+
chalk "^4.1.2"
6716+
ci-info "^3.7.0"
6717+
cross-spawn "^7.0.3"
6718+
find-yarn-workspace-root "^2.0.0"
6719+
fs-extra "^9.0.0"
6720+
json-stable-stringify "^1.0.2"
6721+
klaw-sync "^6.0.0"
6722+
minimist "^1.2.6"
6723+
open "^7.4.2"
6724+
rimraf "^2.6.3"
6725+
semver "^7.5.3"
6726+
slash "^2.0.0"
6727+
tmp "^0.0.33"
6728+
yaml "^2.2.2"
6729+
66626730
path-browserify@^1.0.1:
66636731
version "1.0.1"
66646732
resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz"
@@ -6759,6 +6827,11 @@ pluralize@^8.0.0:
67596827
resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz"
67606828
integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
67616829

6830+
postinstall-postinstall@^2.1.0:
6831+
version "2.1.0"
6832+
resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3"
6833+
integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==
6834+
67626835
preferred-pm@^3.0.3:
67636836
version "3.0.3"
67646837
resolved "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz"
@@ -7155,7 +7228,7 @@ rfdc@^1.3.0:
71557228
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
71567229
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
71577230

7158-
rimraf@^2.6.2:
7231+
rimraf@^2.6.2, rimraf@^2.6.3:
71597232
version "2.7.1"
71607233
resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
71617234
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -7373,6 +7446,11 @@ sisteransi@^1.0.5:
73737446
resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz"
73747447
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
73757448

7449+
slash@^2.0.0:
7450+
version "2.0.0"
7451+
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
7452+
integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
7453+
73767454
slash@^3.0.0:
73777455
version "3.0.0"
73787456
resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
@@ -8377,6 +8455,11 @@ yaml@^2.1.3:
83778455
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4"
83788456
integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==
83798457

8458+
yaml@^2.2.2:
8459+
version "2.3.2"
8460+
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144"
8461+
integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==
8462+
83808463
yargs-parser@^20.2.2, yargs-parser@^20.2.3:
83818464
version "20.2.9"
83828465
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"

0 commit comments

Comments
 (0)