diff --git a/packages/fixtures/valid/everything-openapi/src/routes/custom-cache-control-tool.ts b/packages/fixtures/valid/everything-openapi/src/routes/custom-cache-control-tool.ts new file mode 100644 index 00000000..5f2b29be --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/custom-cache-control-tool.ts @@ -0,0 +1,33 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Custom cache control tool', + operationId: 'customCacheControlTool', + method: 'post', + path: '/custom-cache-control-tool', + request: { + body: { + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + }, + responses: { + 200: { + description: 'Echoed request body', + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + } +}) + +export function registerCustomCacheControlTool(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json(c.req.valid('json')) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/custom-rate-limit-tool.ts b/packages/fixtures/valid/everything-openapi/src/routes/custom-rate-limit-tool.ts new file mode 100644 index 00000000..59b08bbc --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/custom-rate-limit-tool.ts @@ -0,0 +1,33 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Custom rate limit tool', + operationId: 'customRateLimitTool', + method: 'post', + path: '/custom-rate-limit-tool', + request: { + body: { + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + }, + responses: { + 200: { + description: 'Echoed request body', + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + } +}) + +export function registerCustomRateLimitTool(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json(c.req.valid('json')) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/disabled-for-free-plan-tool.ts b/packages/fixtures/valid/everything-openapi/src/routes/disabled-for-free-plan-tool.ts new file mode 100644 index 00000000..bef2d016 --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/disabled-for-free-plan-tool.ts @@ -0,0 +1,26 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Disabled for free plan tool', + operationId: 'disabledForFreePlanTool', + method: 'get', + path: '/disabled-for-free-plan-tool', + responses: { + 200: { + description: 'OK', + content: { + 'application/json': { + schema: z.object({ + status: z.string() + }) + } + } + } + } +}) + +export function registerDisabledForFreePlanTool(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json({ status: 'ok' }) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/disabled-rate-limit-tool.ts b/packages/fixtures/valid/everything-openapi/src/routes/disabled-rate-limit-tool.ts new file mode 100644 index 00000000..6642e504 --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/disabled-rate-limit-tool.ts @@ -0,0 +1,33 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Disabled rate limit tool', + operationId: 'disabledRateLimitTool', + method: 'post', + path: '/disabled-rate-limit-tool', + request: { + body: { + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + }, + responses: { + 200: { + description: 'Echoed request body', + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + } +}) + +export function registerDisabledRateLimitTool(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json(c.req.valid('json')) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/disabled-tool.ts b/packages/fixtures/valid/everything-openapi/src/routes/disabled-tool.ts new file mode 100644 index 00000000..b206161d --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/disabled-tool.ts @@ -0,0 +1,26 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Disabled tool', + operationId: 'disabledTool', + method: 'get', + path: '/disabled-tool', + responses: { + 200: { + description: 'OK', + content: { + 'application/json': { + schema: z.object({ + status: z.string() + }) + } + } + } + } +}) + +export function registerDisabledTool(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json({ status: 'ok' }) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/echo.ts b/packages/fixtures/valid/everything-openapi/src/routes/echo.ts new file mode 100644 index 00000000..0af9e5c4 --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/echo.ts @@ -0,0 +1,33 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Echoes the request body', + operationId: 'echo', + method: 'post', + path: '/echo', + request: { + body: { + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + }, + responses: { + 200: { + description: 'Echoed request body', + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + } +}) + +export function registerEcho(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json(c.req.valid('json')) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/no-store-cache-control-tool.ts b/packages/fixtures/valid/everything-openapi/src/routes/no-store-cache-control-tool.ts new file mode 100644 index 00000000..b3d75163 --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/no-store-cache-control-tool.ts @@ -0,0 +1,33 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'No store cache control tool', + operationId: 'noStoreCacheControlTool', + method: 'post', + path: '/no-store-cache-control-tool', + request: { + body: { + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + }, + responses: { + 200: { + description: 'Echoed request body', + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + } +}) + +export function registerNoStoreCacheControlTool(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json(c.req.valid('json')) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/routes/pure.ts b/packages/fixtures/valid/everything-openapi/src/routes/pure.ts new file mode 100644 index 00000000..6672c0d1 --- /dev/null +++ b/packages/fixtures/valid/everything-openapi/src/routes/pure.ts @@ -0,0 +1,33 @@ +import { createRoute, type OpenAPIHono, z } from '@hono/zod-openapi' + +const route = createRoute({ + description: 'Pure tool', + operationId: 'pure', + method: 'post', + path: '/pure', + request: { + body: { + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + }, + responses: { + 200: { + description: 'Echoed request body', + content: { + 'application/json': { + schema: z.object({}).passthrough() + } + } + } + } +}) + +export function registerPure(app: OpenAPIHono) { + return app.openapi(route, async (c) => { + return c.json(c.req.valid('json')) + }) +} diff --git a/packages/fixtures/valid/everything-openapi/src/server.ts b/packages/fixtures/valid/everything-openapi/src/server.ts index 3eb9c4b5..4dbbe41f 100644 --- a/packages/fixtures/valid/everything-openapi/src/server.ts +++ b/packages/fixtures/valid/everything-openapi/src/server.ts @@ -3,8 +3,16 @@ import { OpenAPIHono } from '@hono/zod-openapi' import { logger as honoLogger } from 'hono/logger' import { initExitHooks } from './exit-hooks' +import { registerCustomCacheControlTool } from './routes/custom-cache-control-tool' +import { registerCustomRateLimitTool } from './routes/custom-rate-limit-tool' +import { registerDisabledForFreePlanTool } from './routes/disabled-for-free-plan-tool' +import { registerDisabledRateLimitTool } from './routes/disabled-rate-limit-tool' +import { registerDisabledTool } from './routes/disabled-tool' +import { registerEcho } from './routes/echo' import { registerGetUser } from './routes/get-user' import { registerHealthCheck } from './routes/health-check' +import { registerNoStoreCacheControlTool } from './routes/no-store-cache-control-tool' +import { registerPure } from './routes/pure' export const app = new OpenAPIHono() @@ -12,6 +20,14 @@ app.use(honoLogger()) registerHealthCheck(app) registerGetUser(app) +registerDisabledTool(app) +registerDisabledForFreePlanTool(app) +registerEcho(app) +registerPure(app) +registerCustomCacheControlTool(app) +registerNoStoreCacheControlTool(app) +registerCustomRateLimitTool(app) +registerDisabledRateLimitTool(app) app.doc31('/docs', { openapi: '3.1.0',