@@ -12,11 +12,10 @@ const SUPPORTED_CHANNELS = ['dev', 'beta', 'stable'] as const;
1212
1313export type Channel = typeof SUPPORTED_CHANNELS [ number ] ;
1414
15- function assertObjectHasKeys (
16- obj : unknown ,
17- name : string ,
18- keys : readonly string [ ]
19- ) {
15+ function assertObjectHasKeys <
16+ Keys extends readonly string [ ] ,
17+ Obj extends Record < Keys [ number ] , unknown >
18+ > ( obj : unknown , name : string , keys : Keys ) : asserts obj is Obj {
2019 assert (
2120 typeof obj === 'object' && obj !== null ,
2221 'Expected buildInfo to be an object'
@@ -39,10 +38,10 @@ export function assertCommonBuildInfo(
3938) : asserts buildInfo is CommonBuildInfo {
4039 assertObjectHasKeys ( buildInfo , 'buildInfo' , commonKeys ) ;
4140 assert (
42- SUPPORTED_CHANNELS . includes ( ( buildInfo as { channel : Channel } ) . channel ) ,
43- `Expected ${
44- ( buildInfo as { channel : Channel } ) . channel
45- } to be in ${ SUPPORTED_CHANNELS . join ( ',' ) } `
41+ SUPPORTED_CHANNELS . includes ( buildInfo . channel as Channel ) ,
42+ `Expected ${ JSON . stringify (
43+ buildInfo . channel
44+ ) } to be in ${ SUPPORTED_CHANNELS . join ( ',' ) } `
4645 ) ;
4746}
4847
0 commit comments