autumn-js
Version:
Autumn JS Library
36 lines (33 loc) • 917 B
JavaScript
import {
createCoreHandler
} from "./chunk-RHDPT37C.mjs";
// src/backend/adapters/express.ts
function autumnHandler(options) {
const pathPrefix = options.pathPrefix ?? "/api/autumn";
const core = createCoreHandler({
identify: (raw) => options.identify(raw),
secretKey: options.secretKey,
autumnURL: options.autumnURL,
pathPrefix
});
return async (req, res, next) => {
const path = req.path.startsWith(pathPrefix) ? req.path : `${pathPrefix}${req.path}`;
const body = req.method !== "GET" ? req.body ?? null : null;
const result = await core({
method: req.method,
path,
body,
raw: req
});
if (result.status === 404 && result.body?.code === "not_found") {
return next();
}
if (result.status === 204) {
return res.sendStatus(204);
}
return res.status(result.status).json(result.body);
};
}
export {
autumnHandler
};