Skip to main content

createParser

Wrap a set of parse/serialize functions into a builder pattern parser for use with nuqs hooks.
From: packages/nuqs/src/parsers.ts:150-193

Parameters

object
required
Parser configuration object.

Returns

object
A parser builder with the following methods and properties:

Usage

Basic Custom Parser

Parser with Custom Equality

Composing Existing Parsers

Parser with Validation

Builder Methods

withDefault

Set a default value to make the hook state non-nullable.
Behavior:
  • When URL has no value: returns default instead of null
  • When setting to default: clears query parameter from URL (unless clearOnDefault: false)
  • When setting to null: clears query parameter and returns default value
From: packages/nuqs/src/parsers.ts:79-103

withOptions

Pre-configure navigation options at the parser level.
Available Options:
  • history: 'push' | 'replace' - How updates affect browser history
  • scroll: boolean - Scroll to top after update
  • shallow: boolean - Client-only updates (default: true)
  • throttleMs: number - Throttle URL updates (deprecated, use limitUrlUpdates)
  • limitUrlUpdates: Rate limit configuration
  • startTransition: React transition function
  • clearOnDefault: boolean - Clear URL when setting to default (default: true)
From: packages/nuqs/src/parsers.ts:61-62 and packages/nuqs/src/parsers.ts:186-192

Chaining Methods

Builder methods can be chained in any order:

Implementation Details

Full Implementation

From: packages/nuqs/src/parsers.ts:150-193

safeParse Helper

The safeParse helper wraps the parse function to handle errors gracefully:

Best Practices

1. Always Return Null for Invalid Input

2. Ensure Lossless Serialization

3. Provide Custom Equality for Objects

4. Use Type Guards for Complex Types

createMultiParser

For creating multi-value parsers (e.g., ?tag=a&tag=b):
From: packages/nuqs/src/parsers.ts:195-226 Usage:

Next Steps