UNPKG

autumn-js

Version:

Autumn JS Library

74 lines (72 loc) 1.89 kB
import { createRouterWithOptions } from "./chunk-2RZ2FZX2.mjs"; import "./chunk-5EKNB4IJ.mjs"; import "./chunk-3OLXYDCU.mjs"; import "./chunk-K7JGEYUX.mjs"; import "./chunk-HHMIVOXX.mjs"; import "./chunk-5H6HVCOP.mjs"; import { Autumn } from "./chunk-IOSEAUDJ.mjs"; import "./chunk-45WVZY23.mjs"; import { autumnApiUrl } from "./chunk-KSG3E4Q2.mjs"; import "./chunk-6DZX6EAA.mjs"; // src/libraries/backend/remix_dep.ts import { findRoute } from "rou3"; function autumnHandler(options) { const autumn = new Autumn({ url: autumnApiUrl, version: options.version }); const router = createRouterWithOptions(); async function handleAutumnRequest(args) { let path = args.params["*"] || ""; const url = new URL(args.request.url); const pathname = url.pathname; const searchParams = Object.fromEntries(url.searchParams); const match = findRoute(router, args.request.method, pathname); if (!match) { return new Response(JSON.stringify({ error: "Not found" }), { status: 404, headers: { "Content-Type": "application/json" } }); } const { data, params: pathParams } = match; const { handler } = data; let body = null; if (args.request.method !== "GET") { try { body = await args.request.json(); } catch (error) { } } const result = await handler({ autumn, body, path, getCustomer: async () => { return await options.identify(args); }, pathParams, searchParams }); return new Response(JSON.stringify(result.body), { status: result.statusCode, headers: { "Content-Type": "application/json" } }); } return { loader: async (args) => { return handleAutumnRequest(args); }, action: async (args) => { return handleAutumnRequest(args); } }; } export { autumnHandler };