feat: init
This commit is contained in:
48
node_modules/nitropack/dist/runtime/internal/renderer.mjs
generated
vendored
Normal file
48
node_modules/nitropack/dist/runtime/internal/renderer.mjs
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
import {
|
||||
eventHandler,
|
||||
getResponseStatus,
|
||||
send,
|
||||
setResponseHeader,
|
||||
setResponseHeaders,
|
||||
setResponseStatus
|
||||
} from "h3";
|
||||
import { useNitroApp } from "./app.mjs";
|
||||
import { useRuntimeConfig } from "./config.mjs";
|
||||
export function defineRenderHandler(render) {
|
||||
const runtimeConfig = useRuntimeConfig();
|
||||
return eventHandler(async (event) => {
|
||||
const nitroApp = useNitroApp();
|
||||
const ctx = { event, render, response: void 0 };
|
||||
await nitroApp.hooks.callHook("render:before", ctx);
|
||||
if (!ctx.response) {
|
||||
if (event.path === `${runtimeConfig.app.baseURL}favicon.ico`) {
|
||||
setResponseHeader(event, "Content-Type", "image/x-icon");
|
||||
return send(
|
||||
event,
|
||||
"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||
);
|
||||
}
|
||||
ctx.response = await ctx.render(event);
|
||||
if (!ctx.response) {
|
||||
const _currentStatus = getResponseStatus(event);
|
||||
setResponseStatus(event, _currentStatus === 200 ? 500 : _currentStatus);
|
||||
return send(
|
||||
event,
|
||||
"No response returned from render handler: " + event.path
|
||||
);
|
||||
}
|
||||
}
|
||||
await nitroApp.hooks.callHook("render:response", ctx.response, ctx);
|
||||
if (ctx.response.headers) {
|
||||
setResponseHeaders(event, ctx.response.headers);
|
||||
}
|
||||
if (ctx.response.statusCode || ctx.response.statusMessage) {
|
||||
setResponseStatus(
|
||||
event,
|
||||
ctx.response.statusCode,
|
||||
ctx.response.statusMessage
|
||||
);
|
||||
}
|
||||
return ctx.response.body;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user