File tree Expand file tree Collapse file tree 1 file changed +43
-4
lines changed 
arduino-ide-extension/src/browser/create Expand file tree Collapse file tree 1 file changed +43
-4
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,47 @@ export namespace ResponseResultProvider {
1515  export  const  JSON : ResponseResultProvider  =  ( response )  =>  response . json ( ) ; 
1616} 
1717
18+ export  function  Utf8ArrayToStr ( array : Uint8Array ) : string  { 
19+   let  out ,  i ,  c ; 
20+   let  char2 ,  char3 ; 
21+ 
22+   out  =  '' ; 
23+   const  len  =  array . length ; 
24+   i  =  0 ; 
25+   while  ( i  <  len )  { 
26+     c  =  array [ i ++ ] ; 
27+     switch  ( c  >>  4 )  { 
28+       case  0 :
29+       case  1 :
30+       case  2 :
31+       case  3 :
32+       case  4 :
33+       case  5 :
34+       case  6 :
35+       case  7 :
36+         // 0xxxxxxx 
37+         out  +=  String . fromCharCode ( c ) ; 
38+         break ; 
39+       case  12 :
40+       case  13 :
41+         // 110x xxxx   10xx xxxx 
42+         char2  =  array [ i ++ ] ; 
43+         out  +=  String . fromCharCode ( ( ( c  &  0x1f )  <<  6 )  |  ( char2  &  0x3f ) ) ; 
44+         break ; 
45+       case  14 :
46+         // 1110 xxxx  10xx xxxx  10xx xxxx 
47+         char2  =  array [ i ++ ] ; 
48+         char3  =  array [ i ++ ] ; 
49+         out  +=  String . fromCharCode ( 
50+           ( ( c  &  0x0f )  <<  12 )  |  ( ( char2  &  0x3f )  <<  6 )  |  ( ( char3  &  0x3f )  <<  0 ) 
51+         ) ; 
52+         break ; 
53+     } 
54+   } 
55+ 
56+   return  out ; 
57+ } 
58+ 
1859type  ResourceType  =  'f'  |  'd' ; 
1960
2061@injectable ( ) 
@@ -275,9 +316,7 @@ export class CreateApi {
275316
276317        // parse the secret file 
277318        const  secrets  =  ( 
278-           typeof  content  ===  'string' 
279-             ? content 
280-             : new  TextDecoder ( ) . decode ( content ) 
319+           typeof  content  ===  'string'  ? content  : Utf8ArrayToStr ( content ) 
281320        ) 
282321          . split ( / \r ? \n / ) 
283322          . reduce ( ( prev ,  curr )  =>  { 
@@ -341,7 +380,7 @@ export class CreateApi {
341380    const  headers  =  await  this . headers ( ) ; 
342381
343382    let  data : string  = 
344-       typeof  content  ===  'string'  ? content  : new   TextDecoder ( ) . decode ( content ) ; 
383+       typeof  content  ===  'string'  ? content  : Utf8ArrayToStr ( content ) ; 
345384    data  =  await  this . toggleSecretsInclude ( posixPath ,  data ,  'remove' ) ; 
346385
347386    const  payload  =  {  data : btoa ( data )  } ; 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments