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);
|
|
}
|