File tree 1 file changed +3
-12
lines changed
1 file changed +3
-12
lines changed Original file line number Diff line number Diff line change 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'
3
3
import { renderQueryString } from './url-encoding'
4
4
5
5
type Base = string | URLSearchParams | URL
6
6
type ParserWithOptionalDefault < T > = ParserBuilder < T > & { defaultValue ?: T }
7
7
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
-
17
8
export function createSerializer <
18
9
Parsers extends Record < string , ParserWithOptionalDefault < any > >
19
10
> (
@@ -25,7 +16,7 @@ export function createSerializer<
25
16
urlKeys ?: Partial < Record < keyof Parsers , string > >
26
17
} = { }
27
18
) {
28
- type Values = Partial < inferSerializerRecordType < Parsers > >
19
+ type Values = Partial < Nullable < inferParserType < Parsers > > >
29
20
30
21
/**
31
22
* Generate a query string for the given values.
You can’t perform that action at this time.
0 commit comments