From bce557cc2dc767628bed6aac87301a1be7c5431b Mon Sep 17 00:00:00 2001 From: rxliuli Date: Tue, 4 Nov 2025 05:03:50 +0800 Subject: init commit --- .../builders/additional-page-requirement-util.js | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js (limited to 'node_modules/@jet-app/app-store/tmp/src/common/builders/additional-page-requirement-util.js') 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 -- cgit v1.2.3