autumn-js
Version:
Autumn JS Library
73 lines (71 loc) • 2.04 kB
JavaScript
import {
secretKeyCheck
} from "./chunk-UNZHJTEY.mjs";
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/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);
},
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
};