autumn-js
Version:
Autumn JS Library
69 lines (66 loc) • 1.52 kB
JavaScript
import {
buildRouter
} from "./chunk-UAR3TMWI.mjs";
import {
Autumn
} from "./chunk-UQRKOR63.mjs";
import {
routeConfigs
} from "./chunk-NHBJ3QDV.mjs";
import {
executeRoute
} from "./chunk-IXUCY7AU.mjs";
import {
secretKeyCheck
} from "./chunk-VZIMT7AO.mjs";
// src/backend/core/handlers/coreHandler.ts
import { findRoute } from "rou3";
var DEFAULT_PATH_PREFIX = "/api/autumn";
var createCoreHandler = (options) => {
const {
identify,
secretKey,
autumnURL,
pathPrefix = DEFAULT_PATH_PREFIX,
routes = routeConfigs
} = options;
const router = buildRouter({ pathPrefix, routes });
return async (request) => {
const keyCheck = secretKeyCheck(secretKey);
if (!keyCheck.found) {
return {
status: keyCheck.error.statusCode,
body: keyCheck.error
};
}
const autumn = new Autumn({
secretKey: secretKey || process.env.AUTUMN_SECRET_KEY,
...autumnURL && { serverURL: autumnURL }
});
const match = findRoute(router, request.method, request.path);
if (!match) {
return {
status: 404,
body: {
message: "Not found",
code: "not_found",
statusCode: 404
}
};
}
const { route } = match.data;
const result = await executeRoute({
autumn,
route,
body: request.body,
getCustomer: () => identify(request.raw)
});
return {
status: result.statusCode,
body: result.body
};
};
};
export {
createCoreHandler
};