createParser
Wrap a set of parse/serialize functions into a builder pattern parser for use with nuqs hooks.packages/nuqs/src/parsers.ts:150-193
Parameters
Parser configuration object.
Returns
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.- 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
packages/nuqs/src/parsers.ts:79-103
withOptions
Pre-configure navigation options at the parser level.history:'push'|'replace'- How updates affect browser historyscroll:boolean- Scroll to top after updateshallow:boolean- Client-only updates (default:true)throttleMs:number- Throttle URL updates (deprecated, uselimitUrlUpdates)limitUrlUpdates: Rate limit configurationstartTransition: React transition functionclearOnDefault:boolean- Clear URL when setting to default (default:true)
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
packages/nuqs/src/parsers.ts:150-193
safeParse Helper
ThesafeParse 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
Related APIs
createMultiParser
For creating multi-value parsers (e.g.,?tag=a&tag=b):
packages/nuqs/src/parsers.ts:195-226
Usage:
Next Steps
- Built-in Parsers - Reference for all built-in parsers
- Parser System Overview - Understand parser architecture
- Parser Concepts - Higher-level usage guide