@@ -17,37 +17,48 @@ function replaceType(type, search, replace, warn) {
17
17
// console.log("replaceType", {type, search, replace, warn});
18
18
return replace ;
19
19
}
20
- if ( type . type === 'object' ) {
21
- const { properties} = type ;
22
- // todo I need unit tests making sure I don't need a full copy
23
- // const newProperties = {};
24
- for ( const prop in properties ) {
25
- const val = properties [ prop ] ;
26
- properties [ prop ] = replaceType ( val , search , replace , warn ) ;
20
+ switch ( type . type ) {
21
+ case 'object' : {
22
+ const { properties} = type ;
23
+ // todo I need unit tests making sure I don't need a full copy
24
+ // const newProperties = {};
25
+ for ( const prop in properties ) {
26
+ const val = properties [ prop ] ;
27
+ properties [ prop ] = replaceType ( val , search , replace , warn ) ;
28
+ }
29
+ return type ;
27
30
}
28
- return type ;
29
- } else if ( type . type === 'tuple' ) {
30
- const { elements} = type ;
31
- const { length } = elements ;
32
- for ( let i = 0 ; i < length ; i ++ ) {
33
- const element = elements [ i ] ;
34
- elements [ i ] = replaceType ( element , search , replace , warn ) ;
31
+ case 'tuple' : {
32
+ const { elements} = type ;
33
+ const { length } = elements ;
34
+ for ( let i = 0 ; i < length ; i ++ ) {
35
+ const element = elements [ i ] ;
36
+ elements [ i ] = replaceType ( element , search , replace , warn ) ;
37
+ }
38
+ return type ;
35
39
}
36
- return type ;
37
- } else if ( type . type === 'array' ) {
38
- type . elementType = replaceType ( type . elementType , search , replace , warn ) ;
39
- return type ;
40
- } else if ( type . type === 'union' ) {
41
- const { members} = type ;
42
- const { length } = members ;
43
- for ( let i = 0 ; i < length ; i ++ ) {
44
- const member = members [ i ] ;
45
- members [ i ] = replaceType ( member , search , replace , warn ) ;
40
+ case 'array' :
41
+ type . elementType = replaceType ( type . elementType , search , replace , warn ) ;
42
+ return type ;
43
+ case 'union' : {
44
+ const { members} = type ;
45
+ const { length } = members ;
46
+ for ( let i = 0 ; i < length ; i ++ ) {
47
+ const member = members [ i ] ;
48
+ members [ i ] = replaceType ( member , search , replace , warn ) ;
49
+ }
50
+ return type ;
46
51
}
47
- return type ;
48
- }
49
- if ( type . type ) {
50
- warn ( 'replaceType: unhandled' , { type, search, replace} ) ;
52
+ case 'indexedAccess' :
53
+ case 'record' :
54
+ case 'map' :
55
+ case 'mapping' :
56
+ case 'intersection' :
57
+ case 'keyof' :
58
+ case 'set' :
59
+ case 'new' :
60
+ warn ( 'replaceType: @todo unhandled' , { type, search, replace} ) ;
61
+ break ;
51
62
}
52
63
return type ;
53
64
}
0 commit comments