UNPKG

autumn-js

Version:
72 lines (70 loc) 2.01 kB
import { secretKeyCheck } from "./chunk-UNZHJTEY.mjs"; import { createRouterWithOptions } from "./chunk-4MEEJLXG.mjs"; import "./chunk-PO4EL4BW.mjs"; import "./chunk-MHIUO3ST.mjs"; import "./chunk-USQ76FYI.mjs"; import "./chunk-LOSIWWM2.mjs"; import "./chunk-35N7BIAE.mjs"; import { Autumn } from "./chunk-QOJMX7ML.mjs"; import "./chunk-2TEL6LR5.mjs"; import { autumnApiUrl } from "./chunk-KSG3E4Q2.mjs"; // src/libraries/backend/express.ts import { findRoute } from "rou3"; var autumnHandler = (options) => { const router = createRouterWithOptions(); let { found, error: resError } = secretKeyCheck(options?.secretKey); return async (req, res, next) => { if (!found && !options?.secretKey) { return res.status(resError.statusCode).json(resError); } let autumn = typeof options?.autumn === "function" ? options.autumn(req) : options?.autumn || new Autumn({ url: options?.url || autumnApiUrl, version: options?.version }); let path = req.path; const searchParams = Object.fromEntries(new URLSearchParams(req.query)); if (!path.startsWith("/api/autumn")) { path = "/api/autumn" + path; } const match = findRoute(router, req.method, path); if (match) { const { data, params: pathParams } = match; const { handler } = data; let body = null; if (req.method === "POST") { try { body = req.body; } catch (error) { } } try { let result = await handler({ autumn, body, path: req.path, getCustomer: async () => { return await options?.identify(req, res); }, pathParams, searchParams }); return res.status(result.statusCode).json(result.body); } catch (error) { console.error("Error handling Autumn request:", error); return res.status(500).json({ error: "Internal server error" }); } } next(); }; }; export { autumnHandler };