autumn-js
Version:
Autumn JS Library
73 lines (71 loc) • 1.86 kB
JavaScript
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/remix_dep.ts
import { findRoute } from "rou3";
function autumnHandler(options) {
const autumn = new Autumn({
url: autumnApiUrl,
version: options.version
});
const router = createRouterWithOptions();
async function handleAutumnRequest(args) {
let path = args.params["*"] || "";
const url = new URL(args.request.url);
const pathname = url.pathname;
const searchParams = Object.fromEntries(url.searchParams);
const match = findRoute(router, args.request.method, pathname);
if (!match) {
return new Response(JSON.stringify({ error: "Not found" }), {
status: 404,
headers: { "Content-Type": "application/json" }
});
}
const { data, params: pathParams } = match;
const { handler } = data;
let body = null;
if (args.request.method !== "GET") {
try {
body = await args.request.json();
} catch (error) {
}
}
const result = await handler({
autumn,
body,
path,
getCustomer: async () => {
return await options.identify(args);
},
pathParams,
searchParams
});
return new Response(JSON.stringify(result.body), {
status: result.statusCode,
headers: { "Content-Type": "application/json" }
});
}
return {
loader: async (args) => {
return handleAutumnRequest(args);
},
action: async (args) => {
return handleAutumnRequest(args);
}
};
}
export {
autumnHandler
};