@@ -3,17 +3,26 @@ require('ts-node/register');
33const { promisify } = require ( 'util' ) ;
44const os = require ( 'os' ) ;
55const fs = require ( 'fs' ) ;
6+ const rimraf = require ( 'rimraf' ) ;
7+ const insertServer = promisify ( require ( './src/after-copy-insert-server' ) ) ;
8+
69const canAccess = ( file ) => promisify ( fs . access ) ( file ) . then ( ( ) => true ) . catch ( ( ) => false ) ;
10+ const deleteDir = promisify ( rimraf ) ;
11+
12+ const packageJsonLock = require ( './package-lock.json' ) ;
13+ const requiredServerVersion = packageJsonLock . dependencies [ 'httptoolkit-server' ] . version ;
714
15+ // Manually trigger the after-copy hook, to give us an env like the real package
816async function setUpDevEnv ( ) {
9- // Manually trigger the after-copy hook, to give us an env like the real package
10- const afterCopy = promisify ( require ( './src/after-copy-insert- server' ) ) ;
17+ const serverExists = await canAccess ( './httptoolkit-server' ) ;
18+ const serverVersion = serverExists ? require ( './httptoolkit- server/package.json' ) . version : null ;
1119
12- if ( ! await canAccess ( './httptoolkit-server' ) ) {
13- await afterCopy ( __dirname , '' , os . platform ( ) , os . arch ( ) ) ;
20+ if ( serverVersion !== requiredServerVersion ) {
21+ if ( serverExists ) await deleteDir ( './httptoolkit-server' ) ;
22+ await insertServer ( __dirname , '' , os . platform ( ) , os . arch ( ) ) ;
1423 console . log ( 'Dev setup completed.' ) ;
1524 } else {
16- console . log ( 'Server already downloaded, nothing to do.' ) ;
25+ console . log ( 'Correct server already downloaded, nothing to do.' ) ;
1726 }
1827}
1928
0 commit comments