Skip to content

Minima.js API


Minima.js API / @minimajs/schema / / createResponseHeaders

Function: createResponseHeaders() ​

Call Signature ​

ts
function createResponseHeaders<T>(obj, options?): SchemaType;

Creates a response headers schema descriptor for OpenAPI documentation.

Unlike request validators, this doesn't perform runtime validation - it only attaches the schema to route metadata for documentation generation.

This allows you to document response headers independently from the response body, enabling different status codes for headers and body schemas.

Type Parameters ​

T ​

T extends Readonly<{ [k: string]: $ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>; }>

Parameters ​

obj ​

T

options? ​

name? ​

string

Returns ​

SchemaType

Example ​

typescript
import { schema, createBody, createResponse, createResponseHeaders } from "@minimajs/schema";
import { z } from "zod";

const bodySchema = createBody(z.object({ name: z.string() }));
const responseBodySchema = createResponse(z.object({ id: z.string(), name: z.string() }));
const responseHeadersSchema = createResponseHeaders({ 'x-custom': z.string() });

// Different status codes for body and headers
const createdBodySchema = createResponse(201, z.object({ id: z.string() }));
const unauthorizedHeadersSchema = createResponseHeaders(401, { 'www-authenticate': z.string() });

app.post('/users',
  schema(bodySchema, createdBodySchema, responseHeadersSchema, unauthorizedHeadersSchema),
  () => {
    const { name } = bodySchema();
    return { id: crypto.randomUUID(), name };
  }
);

Call Signature ​

ts
function createResponseHeaders<T>(
   statusCode, 
   obj, 
   options?): SchemaType;

Creates a response headers schema descriptor for OpenAPI documentation.

Unlike request validators, this doesn't perform runtime validation - it only attaches the schema to route metadata for documentation generation.

This allows you to document response headers independently from the response body, enabling different status codes for headers and body schemas.

Type Parameters ​

T ​

T extends Readonly<{ [k: string]: $ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>; }>

Parameters ​

statusCode ​

number

obj ​

T

options? ​

name? ​

string

Returns ​

SchemaType

Example ​

typescript
import { schema, createBody, createResponse, createResponseHeaders } from "@minimajs/schema";
import { z } from "zod";

const bodySchema = createBody(z.object({ name: z.string() }));
const responseBodySchema = createResponse(z.object({ id: z.string(), name: z.string() }));
const responseHeadersSchema = createResponseHeaders({ 'x-custom': z.string() });

// Different status codes for body and headers
const createdBodySchema = createResponse(201, z.object({ id: z.string() }));
const unauthorizedHeadersSchema = createResponseHeaders(401, { 'www-authenticate': z.string() });

app.post('/users',
  schema(bodySchema, createdBodySchema, responseHeadersSchema, unauthorizedHeadersSchema),
  () => {
    const { name } = bodySchema();
    return { id: crypto.randomUUID(), name };
  }
);