1
1
import type PolykeyClient from 'polykey/dist/PolykeyClient' ;
2
+ import type { ErrorMessage } from 'polykey/dist/client/types' ;
2
3
import CommandPolykey from '../CommandPolykey' ;
3
4
import * as binUtils from '../utils' ;
4
5
import * as binOptions from '../utils/options' ;
@@ -26,7 +27,7 @@ class CommandMkdir extends CommandPolykey {
26
27
this . addOption ( binOptions . recursive ) ;
27
28
this . action ( async ( secretPaths , options ) => {
28
29
secretPaths = secretPaths . map ( ( path : string ) =>
29
- binParsers . parseSecretPathValue ( path ) ,
30
+ binParsers . parseSecretPath ( path ) ,
30
31
) ;
31
32
const { default : PolykeyClient } = await import (
32
33
'polykey/dist/PolykeyClient'
@@ -85,9 +86,13 @@ class CommandMkdir extends CommandPolykey {
85
86
let hasErrored = false ;
86
87
for await ( const result of response . readable ) {
87
88
if ( result . type === 'error' ) {
89
+ // TS cannot properly evaluate a type this deeply nested, so we use
90
+ // the as keyword to help it. Inside this block, the type of data is
91
+ // ensured to be 'error'.
92
+ const error = result as ErrorMessage ;
88
93
hasErrored = true ;
89
94
let message : string = '' ;
90
- switch ( result . code ) {
95
+ switch ( error . code ) {
91
96
case 'ENOENT' :
92
97
message = 'No such secret or directory' ;
93
98
break ;
@@ -96,11 +101,11 @@ class CommandMkdir extends CommandPolykey {
96
101
break ;
97
102
default :
98
103
throw new ErrorPolykeyCLIUncaughtException (
99
- `Unexpected error code: ${ result . code } ` ,
104
+ `Unexpected error code: ${ error . code } ` ,
100
105
) ;
101
106
}
102
107
process . stderr . write (
103
- `${ result . code } : cannot create directory ${ result . reason } : ${ message } \n` ,
108
+ `${ error . code } : cannot create directory ${ error . reason } : ${ message } \n` ,
104
109
) ;
105
110
}
106
111
}
0 commit comments