Zod RequestZod Request
API Reference

requestModeSchema

Creates a type-safe Zod literal schema for a specific Request mode value.

Signature

function requestModeSchema<T extends RequestMode>(mode: T): z.ZodLiteral<T>;

Parameters

  • mode (required): A valid Request mode ("same-origin", "no-cors", "cors", or "navigate")

Returns

A z.ZodLiteral schema that validates to the exact Request mode value provided.

Example

import { requestModeSchema, requestSchema } from "@nicnocquee/zod-request";

const schema = requestSchema({
  mode: requestModeSchema("cors"),
});

export async function GET(request: Request) {
  const validated = await schema.parseAsync(request);
  // validated.mode is "cors"
}

Type Safety

TypeScript will catch invalid Request mode values at compile time:

// ✅ Valid - TypeScript accepts this
requestModeSchema("cors");
requestModeSchema("same-origin");

// ❌ Invalid - TypeScript error at compile time
requestModeSchema("invalid"); // Error: Argument of type '"invalid"' is not assignable

Runtime Validation

The function also validates at runtime and throws an error if an invalid mode is provided:

requestModeSchema("invalid"); // Throws: Invalid Request mode: "invalid". Must be one of: same-origin, no-cors, cors, navigate

requestModeEnumSchema

A Zod enum schema that validates against all valid Request mode values.

Signature

const requestModeEnumSchema: z.ZodEnum<
  ["same-origin", "no-cors", "cors", "navigate"]
>;

Usage

Use this when you want to accept any valid Request mode:

import { requestModeEnumSchema, requestSchema } from "@nicnocquee/zod-request";

const schema = requestSchema({
  mode: requestModeEnumSchema,
});

export async function GET(request: Request) {
  const validated = await schema.parseAsync(request);
  // validated.mode is "same-origin" | "no-cors" | "cors" | "navigate"
}

When to Use

  • Use requestModeEnumSchema when you want to accept any valid Request mode
  • Use requestModeSchema when you need to validate a specific Request mode value