Skip to content

Commit 877d1d3

Browse files
committed
ref: reuse inferParserType, rm unnecessary serializer variants
1 parent 4d52b64 commit 877d1d3

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

packages/nuqs/src/serializer.ts

+3-12
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
1-
import type { Options } from './defs'
2-
import type { ParserBuilder } from './parsers'
1+
import type { Nullable, Options } from './defs'
2+
import type { inferParserType, ParserBuilder } from './parsers'
33
import { renderQueryString } from './url-encoding'
44

55
type Base = string | URLSearchParams | URL
66
type ParserWithOptionalDefault<T> = ParserBuilder<T> & { defaultValue?: T }
77

8-
type inferSingleSerializerType<Parser> =
9-
Parser extends ParserBuilder<infer Value> ? Value | null : never
10-
11-
export type inferSerializerRecordType<
12-
Map extends Record<string, ParserBuilder<any>>
13-
> = {
14-
[Key in keyof Map]: inferSingleSerializerType<Map[Key]>
15-
}
16-
178
export function createSerializer<
189
Parsers extends Record<string, ParserWithOptionalDefault<any>>
1910
>(
@@ -25,7 +16,7 @@ export function createSerializer<
2516
urlKeys?: Partial<Record<keyof Parsers, string>>
2617
} = {}
2718
) {
28-
type Values = Partial<inferSerializerRecordType<Parsers>>
19+
type Values = Partial<Nullable<inferParserType<Parsers>>>
2920

3021
/**
3122
* Generate a query string for the given values.

0 commit comments

Comments
 (0)