Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
93 lines
No EOL
4.1 KiB
Text
93 lines
No EOL
4.1 KiB
Text
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createWorkStore", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createWorkStore;
|
|
}
|
|
});
|
|
const _aftercontext = require("../after/after-context");
|
|
const _apppaths = require("../../shared/lib/router/utils/app-paths");
|
|
const _lazyresult = require("../lib/lazy-result");
|
|
const _handlers = require("../use-cache/handlers");
|
|
const _asynclocalstorage = require("../app-render/async-local-storage");
|
|
function createWorkStore({ page, renderOpts, isPrefetchRequest, buildId, previouslyRevalidatedTags, nonce }) {
|
|
/**
|
|
* Rules of Static & Dynamic HTML:
|
|
*
|
|
* 1.) We must generate static HTML unless the caller explicitly opts
|
|
* in to dynamic HTML support.
|
|
*
|
|
* 2.) If dynamic HTML support is requested, we must honor that request
|
|
* or throw an error. It is the sole responsibility of the caller to
|
|
* ensure they aren't e.g. requesting dynamic HTML for a static page.
|
|
*
|
|
* 3.) If the request is in draft mode, we must generate dynamic HTML.
|
|
*
|
|
* 4.) If the request is a server action, we must generate dynamic HTML.
|
|
*
|
|
* These rules help ensure that other existing features like request caching,
|
|
* coalescing, and ISR continue working as intended.
|
|
*/ const isStaticGeneration = !renderOpts.shouldWaitOnAllReady && !renderOpts.supportsDynamicResponse && !renderOpts.isDraftMode && !renderOpts.isPossibleServerAction;
|
|
const isDevelopment = renderOpts.dev ?? false;
|
|
const shouldTrackFetchMetrics = isDevelopment || // The only times we want to track fetch metrics outside of development is
|
|
// when we are performing a static generation and we either are in debug
|
|
// mode, or tracking fetch metrics was specifically opted into.
|
|
isStaticGeneration && (!!process.env.NEXT_DEBUG_BUILD || process.env.NEXT_SSG_FETCH_METRICS === '1');
|
|
const store = {
|
|
isStaticGeneration,
|
|
page,
|
|
route: (0, _apppaths.normalizeAppPath)(page),
|
|
incrementalCache: // we fallback to a global incremental cache for edge-runtime locally
|
|
// so that it can access the fs cache without mocks
|
|
renderOpts.incrementalCache || globalThis.__incrementalCache,
|
|
cacheLifeProfiles: renderOpts.cacheLifeProfiles,
|
|
isBuildTimePrerendering: renderOpts.nextExport,
|
|
hasReadableErrorStacks: renderOpts.hasReadableErrorStacks,
|
|
fetchCache: renderOpts.fetchCache,
|
|
isOnDemandRevalidate: renderOpts.isOnDemandRevalidate,
|
|
isDraftMode: renderOpts.isDraftMode,
|
|
isPrefetchRequest,
|
|
buildId,
|
|
reactLoadableManifest: (renderOpts == null ? void 0 : renderOpts.reactLoadableManifest) || {},
|
|
assetPrefix: (renderOpts == null ? void 0 : renderOpts.assetPrefix) || '',
|
|
nonce,
|
|
afterContext: createAfterContext(renderOpts),
|
|
cacheComponentsEnabled: renderOpts.cacheComponents,
|
|
dev: isDevelopment,
|
|
previouslyRevalidatedTags,
|
|
refreshTagsByCacheKind: createRefreshTagsByCacheKind(),
|
|
runInCleanSnapshot: (0, _asynclocalstorage.createSnapshot)(),
|
|
shouldTrackFetchMetrics
|
|
};
|
|
// TODO: remove this when we resolve accessing the store outside the execution context
|
|
renderOpts.store = store;
|
|
return store;
|
|
}
|
|
function createAfterContext(renderOpts) {
|
|
const { waitUntil, onClose, onAfterTaskError } = renderOpts;
|
|
return new _aftercontext.AfterContext({
|
|
waitUntil,
|
|
onClose,
|
|
onTaskError: onAfterTaskError
|
|
});
|
|
}
|
|
/**
|
|
* Creates a map with lazy results that refresh tags for the respective cache
|
|
* kind when they're awaited for the first time.
|
|
*/ function createRefreshTagsByCacheKind() {
|
|
const refreshTagsByCacheKind = new Map();
|
|
const cacheHandlers = (0, _handlers.getCacheHandlerEntries)();
|
|
if (cacheHandlers) {
|
|
for (const [kind, cacheHandler] of cacheHandlers){
|
|
if ('refreshTags' in cacheHandler) {
|
|
refreshTagsByCacheKind.set(kind, (0, _lazyresult.createLazyResult)(async ()=>cacheHandler.refreshTags()));
|
|
}
|
|
}
|
|
}
|
|
return refreshTagsByCacheKind;
|
|
}
|
|
|
|
//# sourceMappingURL=work-store.js.map |