summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js
init commit
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js')
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js b/node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js
new file mode 100644
index 0000000..242d28c
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js
@@ -0,0 +1,36 @@
+import { isNothing } from "@jet/environment";
+import { allMixed } from "../../foundation/util/promise-util";
+export async function fetchPageWithAdditionalPageRequirements(objectGraph, primaryPageRequirement, additionalRequirements) {
+ var _a;
+ // Data Frankensteining Pt 1. - Additional Page Requirements:
+ // Additional requests that are fired *IN PARALLEL* with page request to fetch additional data needed to render page.
+ // Why are these not included in a singular page fetch? I don't know.
+ // This builder API is used to request data that will *definitely* be used, regardless of the content of initial page fetch's response.
+ const additionalRequirementKeys = Object.keys(additionalRequirements);
+ const additionalPageRequirementPromises = additionalRequirementKeys.map(async (key) => {
+ return await additionalRequirements[key];
+ });
+ const allPageRequirements = await allMixed([primaryPageRequirement, ...additionalPageRequirementPromises]);
+ const primaryPageDataResult = allPageRequirements[0];
+ const primaryPageData = primaryPageDataResult.value;
+ if (!primaryPageDataResult.success || isNothing(primaryPageData)) {
+ throw (_a = primaryPageDataResult.error) !== null && _a !== void 0 ? _a : new Error("Unknown primaryPageData error");
+ }
+ const additionalData = {};
+ const additionalPageRequirements = allPageRequirements.slice(1);
+ for (const [index, additionalPageRequirement] of additionalPageRequirements.entries()) {
+ const additionalRequirementKey = additionalRequirementKeys[index];
+ if (additionalPageRequirement.success) {
+ additionalData[additionalRequirementKey] = additionalPageRequirement.value;
+ }
+ else {
+ additionalData[additionalRequirementKey] = null;
+ objectGraph.console.log(`Builder - failed to fetch additionalPageRequirement ${additionalRequirementKey}, reason: ${additionalPageRequirement.error}`);
+ }
+ }
+ return {
+ primaryPageData,
+ additionalData,
+ };
+}
+//# sourceMappingURL=additional-page-requirement-util.js.map \ No newline at end of file