autumn-js
Version:
Autumn JS Library
75 lines (73 loc) • 1.76 kB
JavaScript
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
};