nitropage
Version:
A free and open source, extensible visual page builder based on SolidStart.
43 lines (33 loc) • 925 B
text/typescript
import { demoEnabled } from "../demo";
declare global {
var globalConfigs: Record<string, any>;
}
export const throwOnDemo = function () {
if (!demoEnabled()) {
return;
}
throw new Error("Unauthorized");
};
export const resetGlobals = () => {
for (const key of Object.keys(globalThis.globalConfigs)) {
globalThis.globalConfigs[key] = null;
}
};
export const DEBUG_PAGE_UPDATE = false;
export const createGlobal = <T>(name: string) => {
const memory = (globalThis.globalConfigs ??= {});
const getter = () => memory[name] as T;
const setter = (v: () => T) => {
if (memory[name] == null) {
memory[name] = v();
}
return memory[name];
};
return [getter, setter] as const;
};
export const createXmlResponse = (content: string, type = "text/xml") =>
new Response('<?xml version="1.0" encoding="UTF-8"?>' + content, {
headers: {
"Content-Type": type,
},
});