Build complete AI creator partnership prototype
This commit is contained in:
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user