|
5 | 5 | */
|
6 | 6 | const { app } = require('electron');
|
7 | 7 | const fs = require('fs');
|
8 |
| -const fsPromises = require('fs/promises'); |
9 | 8 | const path = require('path');
|
10 | 9 |
|
11 |
| -const fsUtils = require('./fsUtils'); |
12 | 10 | const { getErrorMessage } = require('./errorUtils');
|
13 | 11 |
|
14 | 12 | // eslint-disable-next-line no-unused-vars
|
@@ -66,35 +64,26 @@ function getUserSettingsForRemote() {
|
66 | 64 | return JSON.stringify(_constructFilteredCopy(settings));
|
67 | 65 | }
|
68 | 66 |
|
69 |
| -async function applyUserSettingsFromRemote(remoteUserSettingsJson) { |
70 |
| - let remoteUserSettingsObject; |
71 |
| - try { |
72 |
| - remoteUserSettingsObject = JSON.parse(remoteUserSettingsJson); |
73 |
| - verifyRemoteUserSettingsObject(remoteUserSettingsObject); |
74 |
| - } catch (err) { |
75 |
| - return Promise.reject(err); |
76 |
| - } |
| 67 | +function applyUserSettingsFromRemote(remoteUserSettingsJson) { |
| 68 | + const { getLogger } = require('./wktLogging'); |
| 69 | + const logger = getLogger(); |
77 | 70 |
|
78 |
| - return new Promise((resolve, reject) => { |
79 |
| - const currentSettings = _getUserSettings(); |
80 |
| - const { getLogger } = require('./wktLogging'); |
81 |
| - const logger = getLogger(); |
82 |
| - for (const privateField of appPrivateFieldNames) { |
83 |
| - logger.debug(`privateField = ${privateField}`); |
84 |
| - if (Object.prototype.hasOwnProperty.call(currentSettings, privateField)) { |
85 |
| - logger.debug(`adding private field ${privateField} to new user settings object`); |
86 |
| - remoteUserSettingsObject[privateField] = currentSettings[privateField]; |
87 |
| - } else { |
88 |
| - logger.debug(`currentSettings doesn't have private field ${privateField}`); |
89 |
| - } |
| 71 | + let remoteUserSettingsObject = JSON.parse(remoteUserSettingsJson); |
| 72 | + verifyRemoteUserSettingsObject(remoteUserSettingsObject); |
| 73 | + const currentSettings = _getUserSettings(); |
| 74 | + for (const privateField of appPrivateFieldNames) { |
| 75 | + logger.debug(`privateField = ${privateField}`); |
| 76 | + if (Object.prototype.hasOwnProperty.call(currentSettings, privateField)) { |
| 77 | + logger.debug(`adding private field ${privateField} to new user settings object`); |
| 78 | + remoteUserSettingsObject[privateField] = currentSettings[privateField]; |
| 79 | + } else { |
| 80 | + logger.debug(`currentSettings doesn't have private field ${privateField}`); |
90 | 81 | }
|
91 |
| - logger.debug(`new user settings are: ${JSON.stringify(remoteUserSettingsObject)}`); |
92 |
| - _userSettingsObject = remoteUserSettingsObject; |
93 |
| - saveUserSettings().then(() => { |
94 |
| - logger.debug('user settings saved...restart the application to pick up logger settings changes'); |
95 |
| - resolve(); |
96 |
| - }).catch(err => reject(err)); |
97 |
| - }); |
| 82 | + } |
| 83 | + logger.debug(`new user settings are: ${JSON.stringify(remoteUserSettingsObject)}`); |
| 84 | + _userSettingsObject = remoteUserSettingsObject; |
| 85 | + saveUserSettings(); |
| 86 | + logger.debug('user settings saved...restart the application to pick up logger settings changes'); |
98 | 87 | }
|
99 | 88 |
|
100 | 89 | function getHttpsProxyUrl() {
|
@@ -307,28 +296,42 @@ function verifyRemoteUserSettingsObject(remoteUserSettingsObject) {
|
307 | 296 | }
|
308 | 297 | }
|
309 | 298 |
|
310 |
| -async function saveUserSettings() { |
| 299 | +function saveUserSettings() { |
311 | 300 | const i18n = require('./i18next.config');
|
312 | 301 |
|
313 | 302 | if (!_userSettingsObject) {
|
314 | 303 | // nothing to save
|
315 |
| - return new Promise(resolve => resolve()); |
| 304 | + return; |
316 | 305 | }
|
317 | 306 | const userSettingsJson = JSON.stringify(_userSettingsObject, null, 2);
|
318 | 307 |
|
319 |
| - return new Promise((resolve, reject) => { |
320 |
| - const userSettingsDirectory = getUserSettingsDirectory(); |
321 |
| - const userSettingsFileName = getUserSettingsFileName(); |
322 |
| - fsUtils.makeDirectoryIfNotExists(userSettingsDirectory) |
323 |
| - .then(() => { |
324 |
| - fsPromises.writeFile(userSettingsFileName, userSettingsJson, { encoding: 'utf8' }) |
325 |
| - .then(() => resolve()) |
326 |
| - .catch(err => reject(new Error(i18n.t('user-settings-file-save-failed-error-message', |
327 |
| - { userSettingsFile: userSettingsFileName, error: getErrorMessage(err) })))); |
328 |
| - }) |
329 |
| - .catch(err => reject(new Error(i18n.t('user-settings-make-directory-failed-error-message', |
330 |
| - { userSettingsDirectory: userSettingsDirectory, error: getErrorMessage(err) })))); |
331 |
| - }); |
| 308 | + const userSettingsDirectory = getUserSettingsDirectory(); |
| 309 | + let dirExists; |
| 310 | + try { |
| 311 | + dirExists = fs.existsSync(userSettingsDirectory); |
| 312 | + } catch (err) { |
| 313 | + throw new Error(i18n.t('user-settings-check-directory-failed-error-message', |
| 314 | + { userSettingsDirectory: userSettingsDirectory, error: getErrorMessage(err) })); |
| 315 | + } |
| 316 | + |
| 317 | + if (!dirExists) { |
| 318 | + try { |
| 319 | + fs.mkdirSync(userSettingsDirectory, { |
| 320 | + recursive: true |
| 321 | + }); |
| 322 | + } catch (err) { |
| 323 | + throw new Error(i18n.t('user-settings-make-directory-failed-error-message', |
| 324 | + { userSettingsDirectory: userSettingsDirectory, error: getErrorMessage(err) })); |
| 325 | + } |
| 326 | + } |
| 327 | + |
| 328 | + const userSettingsFileName = getUserSettingsFileName(); |
| 329 | + try { |
| 330 | + fs.writeFileSync(userSettingsFileName, userSettingsJson, { encoding: 'utf8' }); |
| 331 | + } catch (err) { |
| 332 | + throw new Error(i18n.t('user-settings-file-save-failed-error-message', |
| 333 | + { userSettingsFile: userSettingsFileName, error: getErrorMessage(err) })); |
| 334 | + } |
332 | 335 | }
|
333 | 336 |
|
334 | 337 | function _constructFilteredCopy(settings) {
|
|
0 commit comments