@universal-middleware/sirv
Version:
Universal static file serving middleware
62 lines (58 loc) • 1.79 kB
JavaScript
import { bindUniversal, universalSymbol, getAdapterRuntime, serveStatic } from './chunk-APV2JR36.js';
// ../adapter-srvx/dist/index.js
function createMiddleware(middlewareFactory) {
return (...args) => {
const middleware = middlewareFactory(...args);
return bindUniversal(middleware, async function universalMiddlewareSrvx(request, next) {
const context = initContext(request);
const response = await this[universalSymbol](request, context, getRuntime(request));
if (typeof response === "function") {
const res = await next();
return await response(res) ?? res;
} else if (response !== null && typeof response === "object") {
if (response instanceof Response) {
return response;
}
setContext(request, response);
return next();
} else {
return next();
}
});
};
}
function initContext(request) {
let ctx = getContext(request);
if (ctx === void 0) {
ctx = {};
setContext(request, ctx);
}
return ctx;
}
function setContext(request, value) {
request.context = value;
}
function getContext(request) {
return request.context;
}
function getRuntime(request) {
return getAdapterRuntime(
"srvx",
{
params: void 0,
srvx: request
},
{
env: request.runtime?.cloudflare?.env,
ctx: {
waitUntil: request.waitUntil?.bind(request),
passThroughOnException: request.runtime?.cloudflare?.context.passThroughOnException
},
req: request.runtime?.node?.req,
res: request.runtime?.node?.res
}
);
}
// virtual:universal-middleware:virtual:universal-middleware:srvx:middleware:src/middleware.ts
var middleware_default = createMiddleware(serveStatic);
export { middleware_default as default };