@sanity/form-toolkit
3.0.63.0.7
dist/_chunks-es/create-handler.js+
dist/_chunks-es/create-handler.jsNew file+50
Index: package/dist/_chunks-es/create-handler.js
===================================================================
--- package/dist/_chunks-es/create-handler.js
+++ package/dist/_chunks-es/create-handler.js
@@ -0,0 +1,50 @@
+import { defineEventHandler } from "h3";
+const detectFramework = () => {
+ if (process.env.NEXT_RUNTIME) return "nextjs";
+ if (process.env.NUXT_ENV) return "nuxt";
+ if (process.env.SVELTEKIT_ENV) return "sveltekit";
+ if (process.env.REMIX_ENV) return "remix";
+ if (process.env.ASTRO_ENV) return "astro";
+ throw Error("Unable to detect framework.");
+}, createHandler = (handlerFunc) => {
+ let framework = detectFramework(), handlerLogic = async ({ res }) => {
+ try {
+ let data = await handlerFunc();
+ return res && (res.writeHead(200, { "Content-Type": "application/json" }), res.end(JSON.stringify(data))), data;
+ } catch (error) {
+ return error instanceof Error ? (res && (res.writeHead(500, { "Content-Type": "application/json" }), res.end(JSON.stringify({ error: error.message }))), { error: error.message }) : (res && (res.writeHead(500, { "Content-Type": "application/json" }), res.end(JSON.stringify({ error: "An unexpected error occurred" }))), { error: "An unexpected error occurred" });
+ }
+ };
+ if (framework === "nextjs") return async (req, res) => {
+ res.setHeader("Access-Control-Allow-Origin", "*"), res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"), res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization"), await handlerLogic({
+ req,
+ res
+ });
+ };
+ if (framework === "nuxt") return defineEventHandler(async (event) => {
+ let req = event.node.req, res = event.node.res;
+ return handlerLogic({
+ req,
+ res
+ });
+ });
+ if (framework === "sveltekit") return { GET: async ({ request }) => {
+ let result = await handlerLogic({ req: request });
+ return new Response(JSON.stringify(result), { headers: { "Content-Type": "application/json" } });
+ } };
+ if (framework === "remix") return { loader: async ({ request }) => {
+ let result = await handlerLogic({ req: request });
+ return new Response(JSON.stringify(result), { headers: { "Content-Type": "application/json" } });
+ } };
+ if (framework === "astro") return { get: async ({ request }) => {
+ let result = await handlerLogic({ req: request });
+ return {
+ body: JSON.stringify(result),
+ headers: { "Content-Type": "application/json" }
+ };
+ } };
+ throw Error(`Unsupported framework: ${framework}`);
+};
+export { createHandler as t };
+
+//# sourceMappingURL=create-handler.js.map
\ No newline at end of file