Skip to content

Commit a5c50a2

Browse files
committed
Redownload the server in dev if the required version has changed
1 parent 3183205 commit a5c50a2

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

package-lock.json

Lines changed: 10 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"devDependencies": {
3131
"@types/electron-devtools-installer": "^2.0.2",
3232
"@types/electron-window-state": "^2.0.33",
33+
"@types/lodash": "^4.14.119",
3334
"@types/node": "^10.12.10",
3435
"@types/node-fetch": "^2.1.4",
3536
"@types/react": "^0.14.55",
@@ -42,10 +43,12 @@
4243
"electron-forge": "^5.2.3",
4344
"electron-prebuilt-compile": "4.0.0",
4445
"httptoolkit-server": "^0.1.1",
46+
"lodash": "^4.17.11",
4547
"node-fetch": "^2.3.0",
4648
"react": "^15.4.1",
4749
"react-dom": "^15.4.1",
4850
"react-hot-loader": "^3.0.0-beta.6",
51+
"rimraf": "^2.6.3",
4952
"targz": "^1.0.1",
5053
"ts-node": "^7.0.1",
5154
"tslint": "^5.1.0",

setup-dev.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,26 @@ require('ts-node/register');
33
const { promisify } = require('util');
44
const os = require('os');
55
const fs = require('fs');
6+
const rimraf = require('rimraf');
7+
const insertServer = promisify(require('./src/after-copy-insert-server'));
8+
69
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;
714

15+
// Manually trigger the after-copy hook, to give us an env like the real package
816
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;
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

Comments
 (0)