@@ -3,17 +3,26 @@ require('ts-node/register');
3
3
const { promisify } = require ( 'util' ) ;
4
4
const os = require ( 'os' ) ;
5
5
const fs = require ( 'fs' ) ;
6
+ const rimraf = require ( 'rimraf' ) ;
7
+ const insertServer = promisify ( require ( './src/after-copy-insert-server' ) ) ;
8
+
6
9
const 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 ;
7
14
15
+ // Manually trigger the after-copy hook, to give us an env like the real package
8
16
async 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 ;
11
19
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 ( ) ) ;
14
23
console . log ( 'Dev setup completed.' ) ;
15
24
} else {
16
- console . log ( 'Server already downloaded, nothing to do.' ) ;
25
+ console . log ( 'Correct server already downloaded, nothing to do.' ) ;
17
26
}
18
27
}
19
28
0 commit comments