export type AppBindings = {
Variables: {
logger: PinoLogger;
};
};
export default createFactory<AppBindings>({
initApp: (app) => {
app.use(pinoLogger());
app.onError((error, c) => {
if (error instanceof HTTPException) {
return error.getResponse();
}
const logger = c.get("logger");
logger.error(error);
return c.json({ message: "Internal server error" }, 500);
});
},
});
const app = factoryWithLogs.createApp().get(
"/",
describeRoute({
description: "Say hello to the user",
responses: {
200: {
description: "Successful response",
content: {
"text/plain": { schema: resolver(responseSchema) },
},
},
},
}),
zValidator("query", querySchema),
async (c) => {
const query = c.req.valid("query");
const user = await getUser();
return c.json(user, 200);
}
);
export default userApp;
const app = factoryWithLogs.createApp().route("/user", UserApp);
export type AppBindings = {
Variables: {
logger: PinoLogger;
};
};
export default createFactory<AppBindings>({
initApp: (app) => {
app.use(pinoLogger());
app.onError((error, c) => {
if (error instanceof HTTPException) {
return error.getResponse();
}
const logger = c.get("logger");
logger.error(error);
return c.json({ message: "Internal server error" }, 500);
});
},
});
const app = factoryWithLogs.createApp().get(
"/",
describeRoute({
description: "Say hello to the user",
responses: {
200: {
description: "Successful response",
content: {
"text/plain": { schema: resolver(responseSchema) },
},
},
},
}),
zValidator("query", querySchema),
async (c) => {
const query = c.req.valid("query");
const user = await getUser();
return c.json(user, 200);
}
);
export default userApp;
const app = factoryWithLogs.createApp().route("/user", UserApp);