Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
grape-electron-dl
Advanced tools
Simplified file downloads for your Electron app
$ npm install electron-dl
Requires Electron 7 or later.
This is probably what you want for your app.
const {app, BrowserWindow} = require('electron');
const electronDl = require('electron-dl');
electronDl();
let win;
(async () => {
await app.whenReady();
win = new BrowserWindow();
})();
This can be useful if you need download functionality in a reusable module.
const {BrowserWindow, ipcMain} = require('electron');
const {download} = require('electron-dl');
ipcMain.on('download-button', async (event, {url}) => {
const win = BrowserWindow.getFocusedWindow();
console.log(await download(win, url));
});
It can only be used in the main process.
Type: BrowserWindow
Window to register the behavior on.
Type: string
URL to download.
Type: object
Type: boolean
Default: false
Show a Save As…
dialog instead of downloading immediately.
Note: Only use this option when strictly necessary. Downloading directly without a prompt is a much better user experience.
Type: string
Default: User's downloads directory
Directory to save the file in.
Type: string
Default: downloadItem.getFilename()
Name of the saved file.
This option only makes sense for electronDl.download()
.
Type: string
Default: 'Download Error'
Title of the error dialog. Can be customized for localization.
Type: string
Default: 'The download of {filename} was interrupted'
Message of the error dialog. {filename}
is replaced with the name of the actual file. Can be customized for localization.
Type: Function
Optional callback that receives the download item.
You can use this for advanced handling such as canceling the item like item.cancel()
.
Type: Function
Optional callback that receives an object containing information about the progress of the current download item.
{
percent: 0.1,
transferredBytes: 100,
totalBytes: 1000
}
Type: Function
Optional callback that receives the download item for which the download has been cancelled.
Type: boolean
Default: false
Reveal the downloaded file in the system file manager, and if possible, select the file.
Type: boolean
Default: true
Shows the file count badge on macOS/Linux dock icons when download is in progress.
After making changes, run the automated tests:
$ npm test
And before submitting a pull request, run the manual tests to manually verify that everything works:
npm start
FAQs
Simplified file downloads for your Electron app
The npm package grape-electron-dl receives a total of 3 weekly downloads. As such, grape-electron-dl popularity was classified as not popular.
We found that grape-electron-dl demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.