Files
2026-07-18 22:55:00 -05:00

38 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [[ "${SITES_ENV_READY:-}" != "1" ]]; then
exec "${script_dir}/sites-env.sh" -- "$0" "$@"
fi
worker="${SITES_PROJECT_ROOT}/dist/server/index.js"
hosting="${SITES_PROJECT_ROOT}/dist/.openai/hosting.json"
[[ -f "${worker}" ]] || {
echo "Missing Sites Worker entry: dist/server/index.js" >&2
exit 66
}
[[ -f "${hosting}" ]] || {
echo "Missing packaged Sites manifest: dist/.openai/hosting.json" >&2
exit 66
}
node --input-type=module - "${worker}" "${hosting}" <<'NODE'
import { readFile } from "node:fs/promises";
import { pathToFileURL } from "node:url";
const [workerPath, hostingPath] = process.argv.slice(2);
JSON.parse(await readFile(hostingPath, "utf8"));
const workerUrl = pathToFileURL(workerPath);
workerUrl.searchParams.set("sites-validation", `${process.pid}-${Date.now()}`);
const worker = await import(workerUrl.href);
if (!worker.default || typeof worker.default.fetch !== "function") {
throw new Error("dist/server/index.js must have an ESM default export with fetch(request, env, ctx)");
}
NODE
echo "Validated Sites artifact: ESM Worker default.fetch and hosting manifest are present."