@bright.global/arboretum-sdk 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +223 -0
- package/dist/arboretum-client.js +2 -0
- package/dist/clients/contentful-client/contentful-client.js +2 -0
- package/dist/clients/contentful-client/impl/contentful-client-impl.js +54 -0
- package/dist/es6/arboretum-client.js +1 -0
- package/dist/es6/clients/contentful-client/contentful-client.js +1 -0
- package/dist/es6/clients/contentful-client/impl/contentful-client-impl.js +50 -0
- package/dist/es6/impl/arboretum-client.impl.js +182 -0
- package/dist/es6/impl/data/content-types.js +136 -0
- package/dist/es6/impl/data/helpers/__mocks__/mocked-contentful-entries-client-api.js +66 -0
- package/dist/es6/impl/data/helpers/entry-status.js +19 -0
- package/dist/es6/impl/data/helpers/get-all-entries-recursively.js +113 -0
- package/dist/es6/impl/data/helpers/get-all-entries-recursively.test.js +114 -0
- package/dist/es6/impl/data/helpers/home-pages-by-tag-id.js +66 -0
- package/dist/es6/impl/data/helpers/home-pages-by-tag-id.test.js +105 -0
- package/dist/es6/impl/data/helpers/locale-codes-from-metadata.js +7 -0
- package/dist/es6/impl/data/helpers/locale-codes-from-metadata.test.js +52 -0
- package/dist/es6/impl/data/helpers/parse-locale-tag.js +24 -0
- package/dist/es6/impl/data/helpers/parse-locale-tag.test.js +19 -0
- package/dist/es6/impl/data/helpers/validate-content-types.js +112 -0
- package/dist/es6/impl/data/helpers/validate-content-types.test.js +103 -0
- package/dist/es6/impl/data/home-page.js +75 -0
- package/dist/es6/impl/data/locales.js +60 -0
- package/dist/es6/impl/data/page-entries.js +169 -0
- package/dist/es6/impl/data/page-entries.test.js +170 -0
- package/dist/es6/impl/data/redirect-entries.js +163 -0
- package/dist/es6/impl/data/sitemap-data.js +109 -0
- package/dist/es6/impl/sitemap/adapters/page-entry-adapter.js +27 -0
- package/dist/es6/impl/sitemap/adapters/redirect-entry-adapter.js +26 -0
- package/dist/es6/impl/sitemap/adapters/redirect-to-arboretum-page-adapter.js +11 -0
- package/dist/es6/impl/sitemap/adapters/to-arboretum-page-adapter.js +14 -0
- package/dist/es6/impl/sitemap/adapters/to-arboretum-page-adapter.test.js +100 -0
- package/dist/es6/impl/sitemap/adapters/to-arboretum-page-with-missing-data-adapter.js +16 -0
- package/dist/es6/impl/sitemap/helpers/__mocks__/mocked-localized-sitemap.js +186 -0
- package/dist/es6/impl/sitemap/helpers/build-localized-sitemap.js +128 -0
- package/dist/es6/impl/sitemap/helpers/build-localized-sitemap.test.js +208 -0
- package/dist/es6/impl/sitemap/helpers/build-pages-by-tag-eagerly.js +7 -0
- package/dist/es6/impl/sitemap/helpers/build-sitemap-eagerly.js +32 -0
- package/dist/es6/impl/sitemap/helpers/find-ancestors.js +42 -0
- package/dist/es6/impl/sitemap/helpers/find-ancestors.test.js +33 -0
- package/dist/es6/impl/sitemap/helpers/find-children.js +9 -0
- package/dist/es6/impl/sitemap/helpers/find-children.test.js +39 -0
- package/dist/es6/impl/sitemap/helpers/is-root.js +1 -0
- package/dist/es6/impl/sitemap/helpers/localize-contentful-field.js +22 -0
- package/dist/es6/impl/sitemap/helpers/localize-contentful-field.test.js +137 -0
- package/dist/es6/impl/sitemap/helpers/localized-pages-by-tag-id.js +79 -0
- package/dist/es6/impl/sitemap/helpers/localized-path.js +4 -0
- package/dist/es6/impl/sitemap/helpers/page-ancestors.js +8 -0
- package/dist/es6/impl/sitemap/helpers/page-children.js +10 -0
- package/dist/es6/impl/sitemap/methods/cached-data.js +7 -0
- package/dist/es6/impl/sitemap/methods/home-page.js +27 -0
- package/dist/es6/impl/sitemap/methods/page-by-id.js +29 -0
- package/dist/es6/impl/sitemap/methods/page-by-path.js +52 -0
- package/dist/es6/impl/sitemap/methods/pages-by-ids.js +6 -0
- package/dist/es6/impl/sitemap/methods/pages-by-paths.js +6 -0
- package/dist/es6/impl/sitemap/methods/pages-by-tag-id.js +37 -0
- package/dist/es6/impl/sitemap/methods/pages.js +75 -0
- package/dist/es6/impl/sitemap/methods/regenerate.js +64 -0
- package/dist/es6/impl/sitemap/methods/search.js +97 -0
- package/dist/es6/impl/sitemap/methods/status.js +47 -0
- package/dist/es6/index.js +2 -0
- package/dist/es6/utils/array-to-map.js +7 -0
- package/dist/es6/utils/fp-utils.js +5 -0
- package/dist/es6/utils/group-by.js +13 -0
- package/dist/es6/utils/json-stringify-map-replacer.js +6 -0
- package/dist/es6/utils/string-similarity.js +59 -0
- package/dist/impl/arboretum-client.impl.js +189 -0
- package/dist/impl/data/content-types.js +140 -0
- package/dist/impl/data/helpers/__mocks__/mocked-contentful-entries-client-api.js +72 -0
- package/dist/impl/data/helpers/entry-status.js +23 -0
- package/dist/impl/data/helpers/get-all-entries-recursively.js +117 -0
- package/dist/impl/data/helpers/get-all-entries-recursively.test.js +116 -0
- package/dist/impl/data/helpers/home-pages-by-tag-id.js +70 -0
- package/dist/impl/data/helpers/home-pages-by-tag-id.test.js +107 -0
- package/dist/impl/data/helpers/locale-codes-from-metadata.js +11 -0
- package/dist/impl/data/helpers/locale-codes-from-metadata.test.js +54 -0
- package/dist/impl/data/helpers/parse-locale-tag.js +28 -0
- package/dist/impl/data/helpers/parse-locale-tag.test.js +21 -0
- package/dist/impl/data/helpers/validate-content-types.js +117 -0
- package/dist/impl/data/helpers/validate-content-types.test.js +105 -0
- package/dist/impl/data/home-page.js +79 -0
- package/dist/impl/data/locales.js +64 -0
- package/dist/impl/data/page-entries.js +173 -0
- package/dist/impl/data/page-entries.test.js +172 -0
- package/dist/impl/data/redirect-entries.js +168 -0
- package/dist/impl/data/sitemap-data.js +113 -0
- package/dist/impl/sitemap/adapters/page-entry-adapter.js +31 -0
- package/dist/impl/sitemap/adapters/redirect-entry-adapter.js +30 -0
- package/dist/impl/sitemap/adapters/redirect-to-arboretum-page-adapter.js +15 -0
- package/dist/impl/sitemap/adapters/to-arboretum-page-adapter.js +18 -0
- package/dist/impl/sitemap/adapters/to-arboretum-page-adapter.test.js +102 -0
- package/dist/impl/sitemap/adapters/to-arboretum-page-with-missing-data-adapter.js +20 -0
- package/dist/impl/sitemap/helpers/__mocks__/mocked-localized-sitemap.js +189 -0
- package/dist/impl/sitemap/helpers/build-localized-sitemap.js +133 -0
- package/dist/impl/sitemap/helpers/build-localized-sitemap.test.js +210 -0
- package/dist/impl/sitemap/helpers/build-pages-by-tag-eagerly.js +11 -0
- package/dist/impl/sitemap/helpers/build-sitemap-eagerly.js +36 -0
- package/dist/impl/sitemap/helpers/find-ancestors.js +46 -0
- package/dist/impl/sitemap/helpers/find-ancestors.test.js +35 -0
- package/dist/impl/sitemap/helpers/find-children.js +13 -0
- package/dist/impl/sitemap/helpers/find-children.test.js +41 -0
- package/dist/impl/sitemap/helpers/is-root.js +5 -0
- package/dist/impl/sitemap/helpers/localize-contentful-field.js +26 -0
- package/dist/impl/sitemap/helpers/localize-contentful-field.test.js +139 -0
- package/dist/impl/sitemap/helpers/localized-pages-by-tag-id.js +84 -0
- package/dist/impl/sitemap/helpers/localized-path.js +8 -0
- package/dist/impl/sitemap/helpers/page-ancestors.js +12 -0
- package/dist/impl/sitemap/helpers/page-children.js +14 -0
- package/dist/impl/sitemap/methods/cached-data.js +11 -0
- package/dist/impl/sitemap/methods/home-page.js +31 -0
- package/dist/impl/sitemap/methods/page-by-id.js +33 -0
- package/dist/impl/sitemap/methods/page-by-path.js +56 -0
- package/dist/impl/sitemap/methods/pages-by-ids.js +10 -0
- package/dist/impl/sitemap/methods/pages-by-paths.js +10 -0
- package/dist/impl/sitemap/methods/pages-by-tag-id.js +41 -0
- package/dist/impl/sitemap/methods/pages.js +79 -0
- package/dist/impl/sitemap/methods/regenerate.js +68 -0
- package/dist/impl/sitemap/methods/search.js +101 -0
- package/dist/impl/sitemap/methods/status.js +51 -0
- package/dist/index.js +8 -0
- package/dist/types/arboretum-client.d.ts +110 -0
- package/dist/types/clients/contentful-client/contentful-client.d.ts +95 -0
- package/dist/types/clients/contentful-client/impl/contentful-client-impl.d.ts +3 -0
- package/dist/types/impl/arboretum-client.impl.d.ts +107 -0
- package/dist/types/impl/data/content-types.d.ts +11 -0
- package/dist/types/impl/data/helpers/__mocks__/mocked-contentful-entries-client-api.d.ts +7 -0
- package/dist/types/impl/data/helpers/entry-status.d.ts +2 -0
- package/dist/types/impl/data/helpers/get-all-entries-recursively.d.ts +6 -0
- package/dist/types/impl/data/helpers/get-all-entries-recursively.test.d.ts +1 -0
- package/dist/types/impl/data/helpers/home-pages-by-tag-id.d.ts +15 -0
- package/dist/types/impl/data/helpers/home-pages-by-tag-id.test.d.ts +1 -0
- package/dist/types/impl/data/helpers/locale-codes-from-metadata.d.ts +2 -0
- package/dist/types/impl/data/helpers/locale-codes-from-metadata.test.d.ts +1 -0
- package/dist/types/impl/data/helpers/parse-locale-tag.d.ts +3 -0
- package/dist/types/impl/data/helpers/parse-locale-tag.test.d.ts +1 -0
- package/dist/types/impl/data/helpers/validate-content-types.d.ts +5 -0
- package/dist/types/impl/data/helpers/validate-content-types.test.d.ts +1 -0
- package/dist/types/impl/data/home-page.d.ts +3 -0
- package/dist/types/impl/data/locales.d.ts +10 -0
- package/dist/types/impl/data/page-entries.d.ts +3 -0
- package/dist/types/impl/data/page-entries.test.d.ts +1 -0
- package/dist/types/impl/data/redirect-entries.d.ts +4 -0
- package/dist/types/impl/data/sitemap-data.d.ts +17 -0
- package/dist/types/impl/sitemap/adapters/page-entry-adapter.d.ts +6 -0
- package/dist/types/impl/sitemap/adapters/redirect-entry-adapter.d.ts +4 -0
- package/dist/types/impl/sitemap/adapters/redirect-to-arboretum-page-adapter.d.ts +3 -0
- package/dist/types/impl/sitemap/adapters/to-arboretum-page-adapter.d.ts +3 -0
- package/dist/types/impl/sitemap/adapters/to-arboretum-page-adapter.test.d.ts +1 -0
- package/dist/types/impl/sitemap/adapters/to-arboretum-page-with-missing-data-adapter.d.ts +3 -0
- package/dist/types/impl/sitemap/helpers/__mocks__/mocked-localized-sitemap.d.ts +16 -0
- package/dist/types/impl/sitemap/helpers/build-localized-sitemap.d.ts +5 -0
- package/dist/types/impl/sitemap/helpers/build-localized-sitemap.test.d.ts +1 -0
- package/dist/types/impl/sitemap/helpers/build-pages-by-tag-eagerly.d.ts +3 -0
- package/dist/types/impl/sitemap/helpers/build-sitemap-eagerly.d.ts +3 -0
- package/dist/types/impl/sitemap/helpers/find-ancestors.d.ts +2 -0
- package/dist/types/impl/sitemap/helpers/find-ancestors.test.d.ts +1 -0
- package/dist/types/impl/sitemap/helpers/find-children.d.ts +2 -0
- package/dist/types/impl/sitemap/helpers/find-children.test.d.ts +1 -0
- package/dist/types/impl/sitemap/helpers/is-root.d.ts +2 -0
- package/dist/types/impl/sitemap/helpers/localize-contentful-field.d.ts +4 -0
- package/dist/types/impl/sitemap/helpers/localize-contentful-field.test.d.ts +1 -0
- package/dist/types/impl/sitemap/helpers/localized-pages-by-tag-id.d.ts +4 -0
- package/dist/types/impl/sitemap/helpers/localized-path.d.ts +1 -0
- package/dist/types/impl/sitemap/helpers/page-ancestors.d.ts +3 -0
- package/dist/types/impl/sitemap/helpers/page-children.d.ts +5 -0
- package/dist/types/impl/sitemap/methods/cached-data.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/home-page.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/page-by-id.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/page-by-path.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/pages-by-ids.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/pages-by-paths.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/pages-by-tag-id.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/pages.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/regenerate.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/search.d.ts +3 -0
- package/dist/types/impl/sitemap/methods/status.d.ts +3 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/utils/array-to-map.d.ts +1 -0
- package/dist/types/utils/fp-utils.d.ts +11 -0
- package/dist/types/utils/group-by.d.ts +1 -0
- package/dist/types/utils/json-stringify-map-replacer.d.ts +1 -0
- package/dist/types/utils/string-similarity.d.ts +9 -0
- package/dist/utils/array-to-map.js +11 -0
- package/dist/utils/fp-utils.js +10 -0
- package/dist/utils/group-by.js +17 -0
- package/dist/utils/json-stringify-map-replacer.js +10 -0
- package/dist/utils/string-similarity.js +63 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +78 -0
- package/docs/assets/main.js +58 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1367 -0
- package/docs/functions/createArboretumClient.html +72 -0
- package/docs/functions/createArboretumClientFromCdaClient.html +72 -0
- package/docs/functions/createArboretumClientFromCdaParams.html +72 -0
- package/docs/functions/createArboretumClientFromCma.html +72 -0
- package/docs/index.html +228 -0
- package/docs/modules.html +88 -0
- package/docs/types/ArboretumAliasT.html +70 -0
- package/docs/types/ArboretumClientConfigFromCdaParamsT.html +74 -0
- package/docs/types/ArboretumClientConfigFromCdaT.html +79 -0
- package/docs/types/ArboretumClientConfigFromCmaT.html +79 -0
- package/docs/types/ArboretumClientConfigT.html +63 -0
- package/docs/types/ArboretumClientContentfulConfigOptionsT.html +93 -0
- package/docs/types/ArboretumClientOptions.html +72 -0
- package/docs/types/ArboretumClientOptionsT.html +63 -0
- package/docs/types/ArboretumClientT.html +235 -0
- package/docs/types/ArboretumPageNodeT.html +63 -0
- package/docs/types/ArboretumPageT.html +76 -0
- package/docs/types/ArboretumRedirectT.html +70 -0
- package/docs/types/CachedDataT.html +63 -0
- package/docs/types/Either.html +70 -0
- package/docs/types/EitherL.html +75 -0
- package/docs/types/EitherR.html +75 -0
- package/docs/types/LocaleT.html +63 -0
- package/docs/types/OptionsT.html +70 -0
- package/logo.svg +12 -0
- package/package.json +47 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { left, right } from "../../../utils/fp-utils";
|
|
2
|
+
var contentTypeValidationSuggestion = "Please make sure it is defined in contentful or update arboretum configuration.";
|
|
3
|
+
var failedToFindFieldErrMsg = function (contentTypeId) { return function (fieldId) {
|
|
4
|
+
return "Failed to find field with id: ".concat(fieldId, " in content type with id: ").concat(contentTypeId, ". ").concat(contentTypeValidationSuggestion);
|
|
5
|
+
}; };
|
|
6
|
+
var invalidFieldTypePrefixErrMsg = function (contentTypeId, fieldId) {
|
|
7
|
+
return "Invalid content type field type (content_type: ".concat(contentTypeId, ", field: ").concat(fieldId, ")");
|
|
8
|
+
};
|
|
9
|
+
var invalidFieldTypeErrMsg = function (contentTypeId, fieldId, currentFieldType, expectedFieldType) {
|
|
10
|
+
return "".concat(invalidFieldTypePrefixErrMsg(contentTypeId, fieldId), " - current field type: ").concat(currentFieldType, ", expected: ").concat(expectedFieldType);
|
|
11
|
+
};
|
|
12
|
+
export var validatePageContentType = function (pageContentTypeConfig) {
|
|
13
|
+
return function (contentType) {
|
|
14
|
+
var _a, _b, _c, _d;
|
|
15
|
+
var findField = function (id) {
|
|
16
|
+
return contentType === null || contentType === void 0 ? void 0 : contentType.fields.find(function (f) { return f.id === id; });
|
|
17
|
+
};
|
|
18
|
+
var slugFieldId = pageContentTypeConfig.slugFieldId, childPagesFieldId = pageContentTypeConfig.childPagesFieldId, titleFieldId = pageContentTypeConfig.titleFieldId;
|
|
19
|
+
var slugField = findField(slugFieldId);
|
|
20
|
+
var titleField = titleFieldId ? findField(titleFieldId) : undefined;
|
|
21
|
+
var childPagesField = childPagesFieldId
|
|
22
|
+
? findField(childPagesFieldId)
|
|
23
|
+
: undefined;
|
|
24
|
+
var fieldErrMsg = failedToFindFieldErrMsg(contentType.sys.id);
|
|
25
|
+
var slugFieldExpectedType = "Symbol";
|
|
26
|
+
var titleFieldExpectedType = "Symbol";
|
|
27
|
+
var childPagesFieldExpectedType = "Array";
|
|
28
|
+
var childPagesFieldExpectedItemsType = "Link";
|
|
29
|
+
var childPagesFieldExpectedItemsLinkType = "Entry";
|
|
30
|
+
if (!slugField) {
|
|
31
|
+
return left(fieldErrMsg(slugFieldId));
|
|
32
|
+
}
|
|
33
|
+
else if (slugField.type !== slugFieldExpectedType) {
|
|
34
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, slugField.id, slugField.type, slugFieldExpectedType));
|
|
35
|
+
}
|
|
36
|
+
else if (titleFieldId && !titleField) {
|
|
37
|
+
return left(fieldErrMsg(titleFieldId));
|
|
38
|
+
}
|
|
39
|
+
else if (titleFieldId &&
|
|
40
|
+
titleField &&
|
|
41
|
+
titleField.type !== titleFieldExpectedType) {
|
|
42
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, titleField.id, titleField.type, titleFieldExpectedType));
|
|
43
|
+
}
|
|
44
|
+
else if (childPagesFieldId && !childPagesField) {
|
|
45
|
+
return left(fieldErrMsg(childPagesFieldId));
|
|
46
|
+
}
|
|
47
|
+
else if (childPagesFieldId &&
|
|
48
|
+
childPagesField &&
|
|
49
|
+
childPagesField.type !== childPagesFieldExpectedType) {
|
|
50
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, childPagesField.id, childPagesField.type, childPagesFieldExpectedType));
|
|
51
|
+
}
|
|
52
|
+
else if (childPagesFieldId &&
|
|
53
|
+
childPagesField &&
|
|
54
|
+
((_a = childPagesField.items) === null || _a === void 0 ? void 0 : _a.type) !== childPagesFieldExpectedItemsType) {
|
|
55
|
+
return left("".concat(invalidFieldTypePrefixErrMsg(contentType.sys.id, childPagesField.id), " - current field items type: ").concat((_b = childPagesField.items) === null || _b === void 0 ? void 0 : _b.type, ", expected: ").concat(childPagesFieldExpectedItemsType));
|
|
56
|
+
}
|
|
57
|
+
else if (childPagesFieldId &&
|
|
58
|
+
childPagesField &&
|
|
59
|
+
((_c = childPagesField.items) === null || _c === void 0 ? void 0 : _c.linkType) !== childPagesFieldExpectedItemsLinkType) {
|
|
60
|
+
return left("".concat(invalidFieldTypePrefixErrMsg(contentType.sys.id, childPagesField.id), " - current field items link type: ").concat((_d = childPagesField.items) === null || _d === void 0 ? void 0 : _d.linkType, ", expected: ").concat(childPagesFieldExpectedItemsLinkType));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return right(contentType);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export var validateRedirectContentType = function (redirectContentTypeConfig) {
|
|
68
|
+
return function (contentType) {
|
|
69
|
+
var findField = function (id) {
|
|
70
|
+
return contentType === null || contentType === void 0 ? void 0 : contentType.fields.find(function (f) { return f.id === id; });
|
|
71
|
+
};
|
|
72
|
+
var pageFieldId = redirectContentTypeConfig.pageFieldId, pathFieldId = redirectContentTypeConfig.pathFieldId, titleFieldId = redirectContentTypeConfig.titleFieldId, typeFieldId = redirectContentTypeConfig.typeFieldId;
|
|
73
|
+
var pageField = findField(pageFieldId);
|
|
74
|
+
var pathField = findField(pathFieldId);
|
|
75
|
+
var typeField = findField(typeFieldId);
|
|
76
|
+
var titleField = titleFieldId ? findField(titleFieldId) : undefined;
|
|
77
|
+
var fieldErrMsg = failedToFindFieldErrMsg(contentType.sys.id);
|
|
78
|
+
var pageFieldExpectedType = "Link";
|
|
79
|
+
var pathFieldExpectedType = "Symbol";
|
|
80
|
+
var typeFieldExpectedType = "Symbol";
|
|
81
|
+
var titleFieldExpectedType = "Symbol";
|
|
82
|
+
if (!pageField) {
|
|
83
|
+
return left(fieldErrMsg(pageFieldId));
|
|
84
|
+
}
|
|
85
|
+
else if (pageField.type !== pageFieldExpectedType) {
|
|
86
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, pageField.id, pageField.type, pageFieldExpectedType));
|
|
87
|
+
}
|
|
88
|
+
else if (!pathField) {
|
|
89
|
+
return left(fieldErrMsg(pathFieldId));
|
|
90
|
+
}
|
|
91
|
+
else if (pathField.type !== pathFieldExpectedType) {
|
|
92
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, pathField.id, pathField.type, pathFieldExpectedType));
|
|
93
|
+
}
|
|
94
|
+
else if (!typeField) {
|
|
95
|
+
return left(fieldErrMsg(typeFieldId));
|
|
96
|
+
}
|
|
97
|
+
else if (typeField.type !== typeFieldExpectedType) {
|
|
98
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, typeField.id, typeField.type, typeFieldExpectedType));
|
|
99
|
+
}
|
|
100
|
+
else if (titleFieldId && !titleField) {
|
|
101
|
+
return left(fieldErrMsg(titleFieldId));
|
|
102
|
+
}
|
|
103
|
+
else if (titleFieldId &&
|
|
104
|
+
titleField &&
|
|
105
|
+
titleField.type !== titleFieldExpectedType) {
|
|
106
|
+
return left(invalidFieldTypeErrMsg(contentType.sys.id, titleField.id, titleField.type, titleFieldExpectedType));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
return right(contentType);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
13
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
14
|
+
if (!m) return o;
|
|
15
|
+
var i = m.call(o), r, ar = [], e;
|
|
16
|
+
try {
|
|
17
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
18
|
+
}
|
|
19
|
+
catch (error) { e = { error: error }; }
|
|
20
|
+
finally {
|
|
21
|
+
try {
|
|
22
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
23
|
+
}
|
|
24
|
+
finally { if (e) throw e.error; }
|
|
25
|
+
}
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
29
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
30
|
+
if (ar || !(i in from)) {
|
|
31
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
32
|
+
ar[i] = from[i];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
36
|
+
};
|
|
37
|
+
import { validatePageContentType, validateRedirectContentType, } from "./validate-content-types";
|
|
38
|
+
describe(validatePageContentType, function () {
|
|
39
|
+
var basicSlugFieldId = "slug";
|
|
40
|
+
var basicPageContentType = {
|
|
41
|
+
sys: { id: "page" },
|
|
42
|
+
fields: [
|
|
43
|
+
{ id: basicSlugFieldId, localized: false, name: "Slug", type: "Symbol" },
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
var basicPageContentTypeConfig = {
|
|
47
|
+
id: basicPageContentType.sys.id,
|
|
48
|
+
slugFieldId: "slug",
|
|
49
|
+
};
|
|
50
|
+
test("Validate invalid content type configuration", function () {
|
|
51
|
+
var invalidConfig1 = __assign(__assign({}, basicPageContentTypeConfig), { slugFieldId: "invalidSlugId" });
|
|
52
|
+
expect(validatePageContentType(invalidConfig1)(basicPageContentType)._tag).toBe("Left");
|
|
53
|
+
});
|
|
54
|
+
test("Validate content type configuration", function () {
|
|
55
|
+
expect(validatePageContentType(basicPageContentTypeConfig)(basicPageContentType)
|
|
56
|
+
._tag).toBe("Right");
|
|
57
|
+
var titleFieldId = "title";
|
|
58
|
+
var childPagesFieldId = "childPages";
|
|
59
|
+
var pageContentTypeWithOptionalFields = __assign(__assign({}, basicPageContentType), { fields: __spreadArray(__spreadArray([], __read(basicPageContentType.fields), false), [
|
|
60
|
+
{ id: titleFieldId, localized: false, name: "Title", type: "Symbol" },
|
|
61
|
+
{
|
|
62
|
+
id: childPagesFieldId,
|
|
63
|
+
localized: false,
|
|
64
|
+
name: "Child pages",
|
|
65
|
+
type: "Array",
|
|
66
|
+
items: { linkType: "Entry", type: "Link" },
|
|
67
|
+
},
|
|
68
|
+
], false) });
|
|
69
|
+
var pageContentTypeConfigWithOptionalFields = __assign(__assign({}, basicPageContentTypeConfig), { titleFieldId: titleFieldId, childPagesFieldId: childPagesFieldId });
|
|
70
|
+
expect(validatePageContentType(pageContentTypeConfigWithOptionalFields)(pageContentTypeWithOptionalFields)._tag).toBe("Right");
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe(validateRedirectContentType, function () {
|
|
74
|
+
var pageFieldId = "page";
|
|
75
|
+
var pathFieldId = "path";
|
|
76
|
+
var typeFieldId = "type";
|
|
77
|
+
var basicRedirectContentType = {
|
|
78
|
+
sys: { id: "redirect" },
|
|
79
|
+
fields: [
|
|
80
|
+
{ id: pageFieldId, localized: false, name: "Page", type: "Link" },
|
|
81
|
+
{ id: pathFieldId, localized: false, name: "Path", type: "Symbol" },
|
|
82
|
+
{ id: typeFieldId, localized: false, name: "Type", type: "Symbol" },
|
|
83
|
+
],
|
|
84
|
+
};
|
|
85
|
+
var basicRedirectContentTypeConfig = {
|
|
86
|
+
pageFieldId: pageFieldId,
|
|
87
|
+
pathFieldId: pathFieldId,
|
|
88
|
+
typeFieldId: typeFieldId,
|
|
89
|
+
};
|
|
90
|
+
test("Validate invalid content type configuration", function () {
|
|
91
|
+
var invalidConfig1 = __assign(__assign({}, basicRedirectContentTypeConfig), { pathFieldId: "invalidPathId" });
|
|
92
|
+
expect(validateRedirectContentType(invalidConfig1)(basicRedirectContentType)._tag).toBe("Left");
|
|
93
|
+
});
|
|
94
|
+
test("Validate content type configuration", function () {
|
|
95
|
+
expect(validateRedirectContentType(basicRedirectContentTypeConfig)(basicRedirectContentType)._tag).toBe("Right");
|
|
96
|
+
var titleFieldId = "title";
|
|
97
|
+
var redirectContentTypeWithOptionalFields = __assign(__assign({}, basicRedirectContentType), { fields: __spreadArray(__spreadArray([], __read(basicRedirectContentType.fields), false), [
|
|
98
|
+
{ id: titleFieldId, localized: false, name: "Title", type: "Symbol" },
|
|
99
|
+
], false) });
|
|
100
|
+
var redirectContentTypeConfigWithOptionalFields = __assign(__assign({}, basicRedirectContentTypeConfig), { titleFieldId: titleFieldId });
|
|
101
|
+
expect(validateRedirectContentType(redirectContentTypeConfigWithOptionalFields)(redirectContentTypeWithOptionalFields)._tag).toBe("Right");
|
|
102
|
+
});
|
|
103
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export var homePages = function (ctx, homePageTagId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
38
|
+
var homePages;
|
|
39
|
+
var _a;
|
|
40
|
+
return __generator(this, function (_b) {
|
|
41
|
+
switch (_b.label) {
|
|
42
|
+
case 0: return [4 /*yield*/, ctx.clientApi.getEntries((_a = {},
|
|
43
|
+
_a["metadata.tags.sys.id[in]"] = homePageTagId,
|
|
44
|
+
_a.include = 0,
|
|
45
|
+
_a.select =
|
|
46
|
+
/* For some reason select param causes errors in CMA. I'm getting the following response:
|
|
47
|
+
{
|
|
48
|
+
"status": 400,
|
|
49
|
+
"statusText": "Bad Request",
|
|
50
|
+
"message": "The query you sent was invalid. Probably a filter or ordering specification is not applicable to the type of a field.",
|
|
51
|
+
"details": {
|
|
52
|
+
"errors": [
|
|
53
|
+
{
|
|
54
|
+
"name": "select",
|
|
55
|
+
"details": "Select is only applicable when querying a collection of entities."
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"request": {
|
|
60
|
+
"url": "/spaces/8h4rcnu50txt/environments/dacjan-test/public/entries",
|
|
61
|
+
"method": "get",
|
|
62
|
+
...
|
|
63
|
+
},
|
|
64
|
+
}*/
|
|
65
|
+
ctx.contentfulClientType === "cma-client"
|
|
66
|
+
? undefined
|
|
67
|
+
: ["sys.id", "metadata"].join(","),
|
|
68
|
+
_a.order = "sys.createdAt",
|
|
69
|
+
_a))];
|
|
70
|
+
case 1:
|
|
71
|
+
homePages = (_b.sent()).items;
|
|
72
|
+
return [2 /*return*/, homePages];
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}); };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { left, right } from "../../utils/fp-utils";
|
|
38
|
+
import { arrayToMap } from "../../utils/array-to-map";
|
|
39
|
+
export var locales = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
|
|
40
|
+
var locales, defaultLocaleCode;
|
|
41
|
+
var _a;
|
|
42
|
+
return __generator(this, function (_b) {
|
|
43
|
+
switch (_b.label) {
|
|
44
|
+
case 0: return [4 /*yield*/, ctx.clientApi.getLocales()];
|
|
45
|
+
case 1:
|
|
46
|
+
locales = _b.sent();
|
|
47
|
+
defaultLocaleCode = (_a = locales.items.find(function (i) { return i.default; })) === null || _a === void 0 ? void 0 : _a.code;
|
|
48
|
+
if (!defaultLocaleCode) {
|
|
49
|
+
return [2 /*return*/, left("Fatal error! Couldn't find contentful default locale")];
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return [2 /*return*/, right({
|
|
53
|
+
locales: arrayToMap(function (locale) { return locale.code; })(function (_) { return _; })(locales.items),
|
|
54
|
+
defaultLocaleCode: defaultLocaleCode,
|
|
55
|
+
})];
|
|
56
|
+
}
|
|
57
|
+
return [2 /*return*/];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}); };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
49
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
50
|
+
if (!m) return o;
|
|
51
|
+
var i = m.call(o), r, ar = [], e;
|
|
52
|
+
try {
|
|
53
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
54
|
+
}
|
|
55
|
+
catch (error) { e = { error: error }; }
|
|
56
|
+
finally {
|
|
57
|
+
try {
|
|
58
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
59
|
+
}
|
|
60
|
+
finally { if (e) throw e.error; }
|
|
61
|
+
}
|
|
62
|
+
return ar;
|
|
63
|
+
};
|
|
64
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
65
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
66
|
+
if (ar || !(i in from)) {
|
|
67
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
68
|
+
ar[i] = from[i];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
|
+
};
|
|
73
|
+
import { entryStatus } from "./helpers/entry-status";
|
|
74
|
+
import { getAllEntriesRecursively } from "./helpers/get-all-entries-recursively";
|
|
75
|
+
import { arrayToMap } from "../../utils/array-to-map";
|
|
76
|
+
var getAllPageEntriesRecursively = function (_a, contentfulClientType, pageContentTypeOpt, skip, acc, select) {
|
|
77
|
+
var getEntries = _a.getEntries;
|
|
78
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
79
|
+
var fieldsSelect;
|
|
80
|
+
return __generator(this, function (_b) {
|
|
81
|
+
fieldsSelect = [
|
|
82
|
+
pageContentTypeOpt.slugFieldId,
|
|
83
|
+
pageContentTypeOpt.childPagesFieldId,
|
|
84
|
+
pageContentTypeOpt.titleFieldId,
|
|
85
|
+
].flatMap(function (id) { return (id ? ["fields.".concat(id)] : []); });
|
|
86
|
+
return [2 /*return*/, getAllEntriesRecursively({ getEntries: getEntries }, pageContentTypeOpt.id, skip, acc,
|
|
87
|
+
/* For some reason select param causes errors in CMA. I'm getting the following response:
|
|
88
|
+
{
|
|
89
|
+
"status": 400,
|
|
90
|
+
"statusText": "Bad Request",
|
|
91
|
+
"message": "The query you sent was invalid. Probably a filter or ordering specification is not applicable to the type of a field.",
|
|
92
|
+
"details": {
|
|
93
|
+
"errors": [
|
|
94
|
+
{
|
|
95
|
+
"name": "select",
|
|
96
|
+
"details": "Select is only applicable when querying a collection of entities."
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
"request": {
|
|
101
|
+
"url": "/spaces/8h4rcnu50txt/environments/dacjan-test/public/entries",
|
|
102
|
+
"method": "get",
|
|
103
|
+
...
|
|
104
|
+
},
|
|
105
|
+
}*/
|
|
106
|
+
select || contentfulClientType === "cma-client"
|
|
107
|
+
? undefined
|
|
108
|
+
: __spreadArray(["sys", "metadata"], __read(fieldsSelect), false).join(","), pageContentTypeOpt.childPagesFieldId
|
|
109
|
+
? [pageContentTypeOpt.childPagesFieldId]
|
|
110
|
+
: [])];
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
var cmaOnlyEntriesStatusMap = function (_a, contentfulClientType, options) {
|
|
115
|
+
var getEntries = _a.getEntries;
|
|
116
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
117
|
+
var pageContentTypes, pageEntries;
|
|
118
|
+
return __generator(this, function (_b) {
|
|
119
|
+
switch (_b.label) {
|
|
120
|
+
case 0:
|
|
121
|
+
pageContentTypes = Object.entries(options.pageContentTypes);
|
|
122
|
+
return [4 /*yield*/, Promise.all(pageContentTypes.map(function (_a) {
|
|
123
|
+
var _b = __read(_a, 2), id = _b[0], fieldIds = _b[1];
|
|
124
|
+
return getAllPageEntriesRecursively({ getEntries: getEntries }, contentfulClientType, __assign({ id: id }, fieldIds), 0, [], "sys");
|
|
125
|
+
}))];
|
|
126
|
+
case 1:
|
|
127
|
+
pageEntries = _b.sent();
|
|
128
|
+
return [2 /*return*/, arrayToMap(function (e) { return e.sys.id; })(function (entry) {
|
|
129
|
+
return entryStatus(entry.sys);
|
|
130
|
+
})(pageEntries.flat())];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
export var pageEntries = function (ctx, apiClient, cmaPreviewClientApi) { return __awaiter(void 0, void 0, void 0, function () {
|
|
136
|
+
var options, pageContentTypes, pageEntriesPromise, statusRecordPromise, _a, pageEntries, cmaOnlyStatusRecord;
|
|
137
|
+
return __generator(this, function (_b) {
|
|
138
|
+
switch (_b.label) {
|
|
139
|
+
case 0:
|
|
140
|
+
options = ctx.options;
|
|
141
|
+
pageContentTypes = Object.entries(options.pageContentTypes);
|
|
142
|
+
pageEntriesPromise = Promise.all(pageContentTypes.map(function (_a) {
|
|
143
|
+
var _b = __read(_a, 2), id = _b[0], fieldIds = _b[1];
|
|
144
|
+
return getAllPageEntriesRecursively(apiClient, ctx.contentfulClientType, __assign({ id: id }, fieldIds), 0, []);
|
|
145
|
+
}));
|
|
146
|
+
statusRecordPromise = ctx.options.includeEntryStatus &&
|
|
147
|
+
ctx.contentfulClientType === "cma-client" &&
|
|
148
|
+
!ctx.preview &&
|
|
149
|
+
cmaPreviewClientApi
|
|
150
|
+
? cmaOnlyEntriesStatusMap(cmaPreviewClientApi, ctx.contentfulClientType, ctx.options)
|
|
151
|
+
: Promise.resolve(new Map());
|
|
152
|
+
return [4 /*yield*/, Promise.all([
|
|
153
|
+
pageEntriesPromise,
|
|
154
|
+
statusRecordPromise,
|
|
155
|
+
])];
|
|
156
|
+
case 1:
|
|
157
|
+
_a = __read.apply(void 0, [_b.sent(), 2]), pageEntries = _a[0], cmaOnlyStatusRecord = _a[1];
|
|
158
|
+
return [2 /*return*/, arrayToMap(function (e) { return e.sys.id; })(function (entry) {
|
|
159
|
+
var cmaOnlyStatus = ctx.contentfulClientType === "cma-client"
|
|
160
|
+
? entryStatus(entry.sys) || cmaOnlyStatusRecord.get(entry.sys.id)
|
|
161
|
+
: undefined;
|
|
162
|
+
if (cmaOnlyStatus) {
|
|
163
|
+
entry.sys = __assign(__assign({}, entry.sys), { cmaOnlyStatus: cmaOnlyStatus });
|
|
164
|
+
}
|
|
165
|
+
return entry;
|
|
166
|
+
})(pageEntries.flat())];
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}); };
|