UNPKG

autumn-js

Version:
75 lines (73 loc) 1.76 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 "./chunk-KSG3E4Q2.mjs"; // src/libraries/backend/index.ts import { findRoute } from "rou3"; async function autumnHandler(options) { const router = createRouterWithOptions(); let { found, error: resError } = secretKeyCheck( options?.clientOptions?.secretKey ); if (!found) { return { statusCode: 500, response: resError }; } const autumn = new Autumn({ secretKey: options.clientOptions?.secretKey, url: options.clientOptions?.url }); const { method, url: requestUrl, body } = options.request; let url; if (!requestUrl.includes("http")) { url = new URL(requestUrl, "http://localhost:3000"); } else { url = new URL(requestUrl); } const match = findRoute(router, method, url.pathname); const searchParams = Object.fromEntries(url.searchParams); if (!match) { return { statusCode: 404, response: { error: "Not found" } }; } const { data, params: pathParams } = match; const { handler } = data; const result = await handler({ autumn, body, path: url.pathname, getCustomer: async () => { return { customerId: options.customerId, customerData: options.customerData }; }, pathParams, searchParams }); return { statusCode: result.statusCode, response: result.body }; } export { Autumn, autumnHandler };