adblock-rs
Version:
Very fast, Rust-based, native implementation of ad-blocker engine for Node
32 lines (27 loc) • 1.12 kB
JavaScript
const blocker = require('./index.node');
// Exposes the specified native method names on `className`
function forwardClassMethods(className, methods) {
for (const method of methods) {
className.prototype[method] = function(...args) {
const blocker_method = blocker[className.name + '_' + method];
return blocker_method(this.boxed, ...args);
}
}
}
class FilterSet {
constructor(...args) {
this.boxed = blocker.FilterSet_constructor(...args);
}
}
forwardClassMethods(FilterSet, ['addFilters', 'addFilter', 'intoContentBlocking']);
class Engine {
constructor(filter_set, ...args) {
this.boxed = blocker.Engine_constructor(filter_set.boxed, ...args);
}
}
forwardClassMethods(Engine, ['check', 'urlCosmeticResources', 'hiddenClassIdSelectors', 'serializeRaw', 'deserialize', 'enableTag', 'useResources', 'tagExists', 'clearTags', 'addResource']);
exports.FilterFormat = blocker.FilterFormat;
exports.FilterSet = FilterSet;
exports.RuleTypes = blocker.RuleTypes;
exports.Engine = Engine;
exports.uBlockResources = blocker.uBlockResources;