11const { newServer } = require ( "mock-xmlhttprequest" ) ;
22const JSZip = require ( "jszip" ) ;
33
4- const savedXMLHttpRequest = globalThis . XMLHttpRequest ;
5-
64const runGuida = function ( config , args ) {
75 return new Promise ( ( resolve ) => {
86 let mVarsNextCounter = 0 ;
@@ -12,7 +10,7 @@ const runGuida = function (config, args) {
1210 const download = function ( method , url ) {
1311 const that = this ;
1412
15- const xhr = new savedXMLHttpRequest ( ) ;
13+ const xhr = new config . XMLHttpRequest ( ) ;
1614 xhr . open ( method , url , true ) ;
1715 xhr . responseType = "arraybuffer" ;
1816
@@ -108,10 +106,11 @@ const runGuida = function (config, args) {
108106 server . post ( "dirCreateDirectoryIfMissing" , async ( request ) => {
109107 const { createParents, filename } = JSON . parse ( request . body ) ;
110108 let directories = [ filename ] ;
109+ let prefix = filename . startsWith ( "/" ) ? "/" : "" ;
111110
112111 if ( createParents ) {
113112 directories = filename . split ( '/' ) . filter ( Boolean ) ;
114- directories = directories . map ( ( _ , index ) => directories . slice ( 0 , index + 1 ) . join ( '/' ) ) ;
113+ directories = directories . map ( ( _ , index ) => prefix + directories . slice ( 0 , index + 1 ) . join ( '/' ) ) ;
115114 }
116115
117116 await directories . reduce ( async ( previousPromise , directory ) => {
@@ -191,17 +190,19 @@ const runGuida = function (config, args) {
191190 request . respond ( 200 ) ;
192191 } ) ;
193192
194- server . post ( "dirGetCurrentDirectory" , ( request ) => {
195- request . respond ( 200 , null , "root" ) ;
193+ server . post ( "dirGetCurrentDirectory" , async ( request ) => {
194+ const currentDir = await config . getCurrentDirectory ( ) ;
195+ request . respond ( 200 , null , currentDir ) ;
196196 } ) ;
197197
198198 server . post ( "envLookupEnv" , ( request ) => {
199199 const envVar = config . env [ request . body ] ?? null ;
200200 request . respond ( 200 , null , JSON . stringify ( envVar ) ) ;
201201 } ) ;
202202
203- server . post ( "dirGetAppUserDataDirectory" , ( request ) => {
204- request . respond ( 200 , null , `root/.${ request . body } ` ) ;
203+ server . post ( "dirGetAppUserDataDirectory" , async ( request ) => {
204+ const homedir = await config . homedir ( ) ;
205+ request . respond ( 200 , null , `${ homedir } /.${ request . body } ` ) ;
205206 } ) ;
206207
207208 // MVARS
@@ -291,7 +292,7 @@ const runGuida = function (config, args) {
291292 server . setDefaultHandler ( ( request ) => {
292293 const headers = request . requestHeaders . getHash ( ) ;
293294
294- var xhr = new savedXMLHttpRequest ( ) ;
295+ var xhr = new config . XMLHttpRequest ( ) ;
295296 xhr . open ( request . method , request . url , true ) ;
296297
297298 for ( const key in headers ) {
@@ -331,5 +332,8 @@ module.exports = {
331332 } ,
332333 uninstall : async ( config , pkg ) => {
333334 return await runGuida ( config , { command : "uninstall" , pkg } ) ;
335+ } ,
336+ diagnostics : async ( config , args ) => {
337+ return await runGuida ( config , { command : "diagnostics" , ...args } ) ;
334338 }
335339} ;
0 commit comments