- Bump Node.js to version 18. This change is necessary as Node.js v16 will reach end-of-life on 2023-09-11. It also ensure compatibility with dependencies requiring minimum of Node.js v18, such as `vite`, `@vitejs`plugin-legacy` and `icon-gen`. - Bump `setup-node` action to v4. - Recommend using the `nvm` tool for managing Node.js versions in the documentation. - Update documentation to point to code reference for required Node.js version. This removes duplication of information, and keeps the code as single source of truth for required Node.js version. - Refactor code to adopt the `node:` protocol for Node API imports as per Node.js 18 standards. This change addresses ambiguities and aligns with Node.js best practices (nodejs/node#38343). Currently, there is no ESLint rule to enforce this protocol, as noted in import-js/eslint-plugin-import#2717. - Replace `cross-fetch` dependency with the native Node.js fetch API introduced in Node.js 18. Adjust type casting for async iterable read streams to align with the latest Node.js APIs, based on discussions in DefinitelyTyped/DefinitelyTyped#65542.
check-desktop-runtime-errors
This script automates the processes of:
- Building
- Packaging
- Installing
- Executing
- Verifying Electron distributions
It runs the application for a duration and detects runtime errors in the packaged application via:
- Log verification: Checking application logs for errors and validating successful application initialization.
stderrmonitoring: Continuous listening to thestderrstream for unexpected errors.- Window title inspection: Checking for window titles that indicate crashes before logging becomes possible.
Upon error, the script captures a screenshot (if --screenshot is provided) and terminates.
Options
--build: Clears the electron distribution directory and forces a rebuild of the Electron app.--screenshot: Takes a screenshot of the desktop environment after running the application.
This module provides utilities for building, executing, and validating Electron desktop apps. It can be used to automate checking for runtime errors during development.
Configs
Configurations are defined in config.ts.