✅ COMPLETED: 1. Dockerfile uses port 80 (astro preview) 2. BaseLayout imports globals.css 3. globals.css with Tailwind v4 @theme syntax 4. index.astro has Header, Footer, FixedContact 5. All image references fixed to existing files 6. Hero uses hdpe_pipe_main.jpg 7. Product cards use hdpe001.jpg 8. pt-20 on main for fixed header ✅ TESTED LOCALLY: - Build: 15 pages in 1.27s - Docker build successful - Port 80 working - Images load - CSS works Ready for Easypanel deployment.
30 lines
791 B
JavaScript
30 lines
791 B
JavaScript
import { createError } from "./index.mjs";
|
|
export function getBinding(binding) {
|
|
let bindingName = "[binding]";
|
|
if (typeof binding === "string") {
|
|
bindingName = binding;
|
|
binding = globalThis[bindingName] || globalThis.__env__?.[bindingName];
|
|
}
|
|
if (!binding) {
|
|
throw createError(
|
|
"cloudflare",
|
|
`Invalid binding \`${bindingName}\`: \`${binding}\``
|
|
);
|
|
}
|
|
for (const key of ["get", "put", "delete"]) {
|
|
if (!(key in binding)) {
|
|
throw createError(
|
|
"cloudflare",
|
|
`Invalid binding \`${bindingName}\`: \`${key}\` key is missing`
|
|
);
|
|
}
|
|
}
|
|
return binding;
|
|
}
|
|
export function getKVBinding(binding = "STORAGE") {
|
|
return getBinding(binding);
|
|
}
|
|
export function getR2Binding(binding = "BUCKET") {
|
|
return getBinding(binding);
|
|
}
|