UNPKG

autumn-js

Version:
70 lines (68 loc) 1.96 kB
import { secretKeyCheck } from "./chunk-UNZHJTEY.mjs"; import { createRouterWithOptions } from "./chunk-OFKRGNWA.mjs"; import "./chunk-HGB236VV.mjs"; import "./chunk-ZGI3AYWD.mjs"; import "./chunk-S46FBNO3.mjs"; import "./chunk-NCJ2TKEX.mjs"; import "./chunk-TUGNGQW2.mjs"; import "./chunk-UJBSJTAV.mjs"; import { Autumn } from "./chunk-UJN5NVTZ.mjs"; import "./chunk-SGEUXFOF.mjs"; import { autumnApiUrl } from "./chunk-KSG3E4Q2.mjs"; // src/libraries/backend/fastify.ts import { findRoute } from "rou3"; function autumnHandler(options) { const autumn = new Autumn({ url: autumnApiUrl, version: options.version }); const router = createRouterWithOptions(); let { found, error: resError } = secretKeyCheck(options?.secretKey); return async function(request, reply) { try { if (!found && !options.secretKey) { return reply.code(resError.statusCode).send(resError); } const url = new URL(request.url, `http://${request.headers.host}`); const path = url.pathname; const searchParams = Object.fromEntries( new URLSearchParams(request.query) ); const match = findRoute(router, request.method, path); if (!match) { return reply.code(404).send({ error: "Not found" }); } const { data, params: pathParams } = match; const { handler } = data; let body = null; if (["POST", "PUT", "PATCH"].includes(request.method)) { body = request.body; } const result = await handler({ autumn, body, path, pathParams, searchParams, getCustomer: async () => { return await options.identify(request); } }); return reply.code(result.statusCode).send(result.body); } catch (error) { console.error("Error handling Autumn request:", error); return reply.code(500).send({ error: "Internal server error" }); } }; } export { autumnHandler };