Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import { OpenAPIHono } from '@hono/zod-openapi';
import type { AuthType, Bindings } from '../../types';
import { HTTPException } from 'hono/http-exception';
const honoFactory = () => {
const app = new OpenAPIHono<{
Bindings: Bindings;
Variables: AuthType;
}>({
// Open API Honoのインスタンスを生成
// ZodのバリデーションエラーをHTTPExceptionで投げるように設定
// result.successがfalseの場合はZodErrorが入っている
defaultHook: (result) => {
if (!result.success) {
console.error(result.error);
throw new HTTPException(400, {
message: 'Bad Request',
});
}
},
});
// セキュリティスキームの登録
app.openAPIRegistry.registerComponent('securitySchemes', 'SessionCookie', {
type: 'apiKey',
in: 'cookie',
name: 'better-auth.session_token',
});
return app;
};
export default honoFactory;
|