forked from sindresorhus/p-props
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.test-d.ts
41 lines (34 loc) · 959 Bytes
/
index.test-d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { expectType } from 'tsd'
import pProps from './index.js'
expectType<Promise<{ [key in 'foo']: string }>>(pProps({ foo: 'bar' }))
expectType<Promise<{ [key in 'foo']: string }>>(pProps({ foo: 'bar' }))
expectType<Promise<{ [key in 'foo']: string }>>(
pProps(
{ foo: 'bar' },
{
concurrency: 1,
},
),
)
const hashMap = {
unicorn: Promise.resolve(1),
foo: 'bar',
}
expectType<Promise<{ [key in 'unicorn' | 'foo']: string | number }>>(
pProps(hashMap),
)
const partialMap: { foo?: Promise<string> } = {}
expectType<Promise<{ foo?: string }>>(pProps(partialMap))
const map = new Map<number, string | Promise<string>>([
[1, Promise.resolve('1')],
[2, '2'],
])
const result = await pProps(map)
expectType<Map<number, string>>(result)
expectType<string | undefined>(result.get(1))
expectType<Promise<Map<number, string>>>(pProps(map))
expectType<Promise<Map<number, number>>>(
pProps(map, {
concurrency: 1,
}),
)