@statikapi/adapter-cf
Advanced tools
+1
-1
| { | ||
| "name": "@statikapi/adapter-cf", | ||
| "version": "1.0.0-rc.2", | ||
| "version": "1.0.0-rc.3", | ||
| "type": "module", | ||
@@ -5,0 +5,0 @@ "bin": { |
+41
-2
@@ -20,2 +20,4 @@ import http from 'node:http'; | ||
| const uiMeta = await loadUiMeta(cwd, workerOrigin, localEnv); | ||
| const ensurePrivateOutputs = createPrivateOutputPrimer(workerOrigin, localEnv, buildToken); | ||
| const loadManifestForUi = createPreviewManifestLoader(workerOrigin, uiMeta, localEnv, ensurePrivateOutputs); | ||
| const sseClients = new Set(); | ||
@@ -45,4 +47,3 @@ let lastManifest = null; | ||
| if (pathname === '/ui/index' && req.method === 'GET') { | ||
| await refreshPreviewPrivateOutputs(workerOrigin, localEnv, { buildToken }).catch(() => {}); | ||
| const manifest = await fetchManifest(workerOrigin, uiMeta, localEnv); | ||
| const manifest = await loadManifestForUi(); | ||
| res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' }); | ||
@@ -234,2 +235,40 @@ res.end(JSON.stringify(manifest)); | ||
| export function createPrivateOutputPrimer(workerOrigin, localEnv = {}, buildToken = '') { | ||
| let primed = false; | ||
| let inFlight = null; | ||
| return async function ensurePrivateOutputs() { | ||
| if (primed) return false; | ||
| const token = buildToken || localEnv.STATIK_BUILD_TOKEN || process.env.STATIK_BUILD_TOKEN; | ||
| if (!token) { | ||
| primed = true; | ||
| return false; | ||
| } | ||
| if (inFlight) return inFlight; | ||
| inFlight = refreshPreviewPrivateOutputs(workerOrigin, localEnv, { buildToken: token }) | ||
| .then((refreshed) => { | ||
| if (refreshed) primed = true; | ||
| return refreshed; | ||
| }) | ||
| .finally(() => { | ||
| inFlight = null; | ||
| }); | ||
| return inFlight; | ||
| }; | ||
| } | ||
| export function createPreviewManifestLoader( | ||
| workerOrigin, | ||
| uiMeta = makeUiMeta(workerOrigin), | ||
| localEnv = {}, | ||
| ensurePrivateOutputs = async () => false | ||
| ) { | ||
| return async function loadManifestForUi() { | ||
| await ensurePrivateOutputs(); | ||
| return fetchManifest(workerOrigin, uiMeta, localEnv); | ||
| }; | ||
| } | ||
| function privateAuthHeaderName(localEnv) { | ||
@@ -236,0 +275,0 @@ return localEnv.STATIK_PRIVATE_AUTH_HEADER_NAME || process.env.STATIK_PRIVATE_AUTH_HEADER_NAME; |
1265023
0.09%3147
1.09%15
7.14%