Skip to content

Commit 9e562ec

Browse files
committed
fix value of where clause top level field from discriminated unions being never
1 parent 7869f29 commit 9e562ec

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "firelord",
3-
"version": "2.8.5",
3+
"version": "2.8.6",
44
"description": "🔥 Write V9 like Firestore Admin code with extreme type safety.",
55
"author": "tylim",
66
"license": "MIT",

src/tests/discriminatedUnion.test.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import {
99

1010
type DU = MetaTypeCreator<
1111
| { a: { b: 1; c: 2 } | { b: 'a'; d: 'b' } }
12-
| { x: { y: 1; z: 2; u: 3 } | { y: 'a'; w: 'b'; v: 'c' } | false },
12+
| { x: { y: 1; z: 2; u: 3 } | { y: 'a'; w: 'b'; v: 'c' } | false }
13+
| { c: false }
14+
| { c: true; v: 0 },
1315
'abc'
1416
>
1517

@@ -26,6 +28,10 @@ describe('test discrimination unions', () => {
2628
// @ts-expect-error
2729
updateDoc(docRef, { 'a.b': 2 })
2830

31+
updateDoc(docRef, { v: 0 })
32+
// @ts-expect-error
33+
updateDoc(docRef, { v: 1 })
34+
2935
const v = false as boolean
3036

3137
const x = v
@@ -79,6 +85,10 @@ describe('test discrimination unions', () => {
7985
query(du.collection(), where('a.b', '==', 1))
8086
// @ts-expect-error
8187
query(du.collection(), where('a.b', '==', 2))
88+
89+
query(du.collection(), where('v', '==', 0))
90+
// @ts-expect-error
91+
query(du.collection(), where('v', '==', 1))
8292
}
8393
})
8494
})

src/types/objectFlatten.ts

+4-7
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,15 @@ export type DeepKey<T, DontFlatMap extends string> = keyof T extends infer K
1212
: never // impossible route
1313
: never // impossible route
1414

15-
export type DeepValue<
16-
T,
17-
P extends string
18-
> = P extends `${infer K}.${infer Rest}`
19-
? T extends T
15+
export type DeepValue<T, P extends string> = T extends T
16+
? P extends `${infer K}.${infer Rest}`
2017
? T[K & keyof T] extends infer S
2118
? S extends S
2219
? DeepValue<S, Rest>
2320
: never // impossible route
2421
: never // impossible route
25-
: never // impossible route
26-
: T[P & keyof T]
22+
: T[P & keyof T]
23+
: never // impossible route
2724

2825
export type ObjectFlatten<
2926
Data,

0 commit comments

Comments
 (0)