Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@ghostery/adblocker-electron
Advanced tools
Efficient
· Minimal
· JavaScript
· TypeScript
· uBlock Origin- and Easylist-compatible
Node.js
· Puppeteer
· Electron
· WebExtension
Install: npm install --save @ghostery/adblocker-electron
.
For a complete example check-out: @ghostery/adblocker-electron-example.
Creating an instance of ElectronBlocker
and start blocking ads!
import { ElectronBlocker } from '@ghostery/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => {
blocker.enableBlockingInSession(session.defaultSession);
});
You are ready to block ads!
There are other ways you can create an instance of the blocking engine to start blocking ads.
If you already have filters locally:
import { ElectronBlocker } from '@ghostery/adblocker-electron';
const blocker = ElectronBlocker.parse(fs.readFileSync('easylist.txt', 'utf-8'));
Fetching lists from URLs:
import { ElectronBlocker } from '@ghostery/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'
const blocker = await ElectronBlocker.fromLists(fetch, [
'https://easylist.to/easylist/easylist.txt'
]);
Use ready-made configs to block ads and optionally trackers:
import { ElectronBlocker } from '@ghostery/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'
let blocker = await ElectronBlocker.fromPrebuiltAdsOnly(fetch); // ads only
blocker = await ElectronBlocker.fromPrebuiltAdsAndTracking(fetch); // ads and tracking
To stop blocking ads in a session:
blocker.disableBlockingInSession(session.defaultSession);
To avoid having to create the same instance of ElectronBlocker
all over again,
you can serialize it to a byte-array which you can store on disk for faster
loading.
import { ElectronBlocker } from '@ghostery/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'
import { promises as fs } from 'fs'; // used for caching
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch, {
path: 'engine.bin',
read: fs.readFile,
write: fs.writeFile,
}).then((blocker) => {
blocker.enableBlockingInSession(session.defaultSession);
});
Or you can do this manually to control the way caching is done:
import { ElectronBlocker } from '@ghostery/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => {
const buffer = blocker.serialize();
const restoredBlocker = ElectronBlocker.deserialize(buffer);
// `restoredBlocker` is deep-equal to `blocker`!
});
FAQs
Ghostery adblocker Electron wrapper
The npm package @ghostery/adblocker-electron receives a total of 633 weekly downloads. As such, @ghostery/adblocker-electron popularity was classified as not popular.
We found that @ghostery/adblocker-electron demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.