diff --git a/packages/app-mobile/utils/getVersionInfoText.ts b/packages/app-mobile/utils/getVersionInfoText.ts index 4cd1cbf8c..58ccffc42 100644 --- a/packages/app-mobile/utils/getVersionInfoText.ts +++ b/packages/app-mobile/utils/getVersionInfoText.ts @@ -7,10 +7,11 @@ import { _ } from '@joplin/lib/locale'; const getWebViewVersionText = () => { if (Platform.OS === 'android') { - const constants = NativeModules.SystemVersionInformationModule.getConstants(); + // SystemVersionInformationModule is unavailable on older versions of Android. + const constants = NativeModules.SystemVersionInformationModule?.getConstants(); return [ - _('WebView version: %s', constants.webViewVersion), - _('WebView package: %s', constants.webViewPackage), + _('WebView version: %s', constants?.webViewVersion ?? _('Unknown')), + _('WebView package: %s', constants?.webViewPackage ?? _('Unknown')), ].join('\n'); } return null; diff --git a/packages/lib/shim-init-node.ts b/packages/lib/shim-init-node.ts index 1ed487236..b3d80845f 100644 --- a/packages/lib/shim-init-node.ts +++ b/packages/lib/shim-init-node.ts @@ -590,6 +590,7 @@ function shimInit(options: ShimInitOptions = null) { cleanUpOnError(error); }); + const requestStart = new Date(); // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied const request = http.request(requestOptions, (response: any) => { @@ -629,7 +630,10 @@ function shimInit(options: ShimInitOptions = null) { }); request.on('timeout', () => { - request.destroy(new Error(`Request timed out. Timeout value: ${requestOptions.timeout}ms.`)); + // We choose to not destroy the request when a timeout value is not specified to keep + // the behavior we had before the addition of this event handler. + if (!requestOptions.timeout) return; + request.destroy(new Error(`Request timed out. Timeout value: ${requestOptions.timeout}ms. Actual connection time: ${new Date().getTime() - requestStart.getTime()}ms`)); }); // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied