An open API service indexing awesome lists of open source software.

https://github.com/igorskyflyer/npm-adblock-header-extract

โœ‚๏ธ Parse and extract ad-block filter list headers with ease. Works on strings or files, trims whitespace, and returns clean metadata for tooling and automation. ๐Ÿ“ƒ
https://github.com/igorskyflyer/npm-adblock-header-extract

adblock back-end biome data filter header igorskyflyer javascript js metadata node nodejs npm string ts typescript utility

Last synced: 4 months ago
JSON representation

โœ‚๏ธ Parse and extract ad-block filter list headers with ease. Works on strings or files, trims whitespace, and returns clean metadata for tooling and automation. ๐Ÿ“ƒ

Awesome Lists containing this project

README

          


Ad-block Header Extract โ€“ Node.js/TypeScript utility icon for parsing ad-block filter list headers and metadata

Ad-block Header Extract


Fast Parsing โ€ข Clean Metadata โ€ข Node.js Utility โ€ข Ad-block Filters


โœ‚๏ธ Parse and extract ad-block filter list headers with ease. Works on strings or files, trims whitespace, and returns clean metadata for tooling and automation. ๐Ÿ“ƒ


## ๐Ÿ“ƒ Table of Contents

- [**Features**](#-features)
- [**Usage**](#-usage)
- [**API**](#-api)
- [**Examples**](#๏ธ-examples)
- [**Changelog**](#-changelog)
- [**Support**](#-support)
- [**License**](#-license)
- [**Related**](#-related)
- [**Author**](#-author)


## ๐Ÿค– Features

- โœ… Extracts ad-block filter headers quickly
- ๐Ÿ“‚ Reads filter files with UTF-8 support
- โšก Returns clean header strings reliably
- ๐Ÿ›ก๏ธ Handles invalid input safely




## ๐Ÿ•ต๐Ÿผ Usage

Install it by executing any of the following, depending on your preferred package manager:

```bash
pnpm add @igorskyflyer/adblock-header-extract
```

```bash
yarn add @igorskyflyer/adblock-header-extract
```

```bash
npm i @igorskyflyer/adblock-header-extract
```




## ๐Ÿคน๐Ÿผ API

```ts
function extractHeaderString(
filter: string,
trimWhitespace: boolean = true
): string
```

Extracts the header and metadata from an Adblock filter text.

- `filter` - the string that contains the Adblock filter,
- `trimWhitespace` - should the whitespace be trimmed or not. Defaults to `true`.

Returns the extracted header.

---

```ts
function extractHeaderString(
filter: string,
trimWhitespace: boolean = true
): string
```

Extracts the header and metadata from an Adblock filter file. File is read with the `UTF-8` encoding by default.

- `file` - the path to the filter file,
- `trimWhitespace` - should the whitespace be trimmed or not. Defaults to `true`.


Throws an error if the file cannot be found or there is an error in reading it.

Returns the extracted header.




## ๐Ÿ—’๏ธ Examples

`example.ts`
```ts
import { extractHeaderFromFile, extractHeaderString } from '@igorskyflyer/adblock-header-extract'

console.log(extractHeaderFromFile('./filter.txt'))

// will print

/*
[Adblock Plus 2.0]
!
! ___ __ _ __ _ __
! / | ____/ / | | / /____ (_)____/ /
! / /| | / __ / | | / // __ \ / // __ /
! / ___ |/ /_/ / | |/ // /_/ // // /_/ /
! /_/ |_|\____/ |___/ \____//_/ \____/
!
!
! {@!}
! Title: AdVoid.Full
! Description: Blocks major ad-servers, trackers, malware, fake download links, cookie-consent banners, popups, modals, push notifications, survey, newsletter and subscribe popups, sharing, Google Chromecast, popup chats, post widgets, like widgets, comments, service workers, news widgets, JavaScript and CSS maps, PWA install banners, Webmanifests, SWF objects
! Version: 3.0.3340
! Last modified: 2024-07-15T02:07:07.895+02:00
! Expires: 24 hours (update frequency)
! Homepage: https://github.com/the-advoid/ad-void
! Entries: 6615
! Author: Igor Dimitrijeviฤ‡ (@igorskyflyer)
! GitHub issues: https://github.com/the-advoid/ad-void/issues
! GitHub pull requests: https://github.com/the-advoid/ad-void/pulls
! License: https://github.com/the-advoid/ad-void/blob/main/LICENSE
! Maintained by: Aria, igorskyflyer and all of the contributors
! See the CONTRIBUTORS.md (https://github.com/the-advoid/ad-void/blob/main/CONTRIBUTORS.md) file for more information
! Source: World Wide Web
*/
```


`./filter.txt`
```adblock
[Adblock Plus 2.0]
!
! ___ __ _ __ _ __
! / | ____/ / | | / /____ (_)____/ /
! / /| | / __ / | | / // __ \ / // __ /
! / ___ |/ /_/ / | |/ // /_/ // // /_/ /
! /_/ |_|\____/ |___/ \____//_/ \____/
!
!
! {@!}
! Title: AdVoid.Full
! Description: Blocks major ad-servers, trackers, malware, fake download links, cookie-consent banners, popups, modals, push notifications, survey, newsletter and subscribe popups, sharing, Google Chromecast, popup chats, post widgets, like widgets, comments, service workers, news widgets, JavaScript and CSS maps, PWA install banners, Webmanifests, SWF objects
! Version: 3.0.3340
! Last modified: 2024-07-15T02:07:07.895+02:00
! Expires: 24 hours (update frequency)
! Homepage: https://github.com/the-advoid/ad-void
! Entries: 6615
! Author: Igor Dimitrijeviฤ‡ (@igorskyflyer)
! GitHub issues: https://github.com/the-advoid/ad-void/issues
! GitHub pull requests: https://github.com/the-advoid/ad-void/pulls
! License: https://github.com/the-advoid/ad-void/blob/main/LICENSE
! Maintained by: Aria, igorskyflyer and all of the contributors
! See the CONTRIBUTORS.md (https://github.com/the-advoid/ad-void/blob/main/CONTRIBUTORS.md) file for more information
! Source: World Wide Web

! {@0} Domains (global)
||02cscosgbuzl.top^
||05e11c9f6f.com^
||0af2a962b0102942d9a7df351b20be55.com^
```




## ๐Ÿ“ Changelog

๐Ÿ“‘ Read about the latest changes in the [**CHANGELOG**](https://github.com/igorskyflyer/npm-adblock-header-extract/blob/main/CHANGELOG.md).




## ๐Ÿชช License

Licensed under the [**MIT license**](https://github.com/igorskyflyer/npm-adblock-header-extract/blob/main/LICENSE).




## ๐Ÿ’– Support


I work hard for every project, including this one and your support means a lot to me!


Consider buying me a coffee. โ˜•




Donate to igorskyflyer




Thank you for supporting my efforts! ๐Ÿ™๐Ÿ˜Š




## ๐Ÿงฌ Related

[**@igorskyflyer/normalized-string**](https://www.npmjs.com/package/@igorskyflyer/normalized-string)

> _๐Ÿ’Š NormalizedString provides you with a String type with consistent line-endings, guaranteed. ๐Ÿ“ฎ_


[**@igorskyflyer/zep**](https://www.npmjs.com/package/@igorskyflyer/zep)

> _๐Ÿง  Zep is a zero-dependency, efficient debounce module. โฐ_


[**@igorskyflyer/mapped-replacer**](https://www.npmjs.com/package/@igorskyflyer/mapped-replacer)

> _๐Ÿฆ— Zero-dependency Map and RegExp based string replacer with Unicode support. ๐Ÿ_


[**@igorskyflyer/strip-yaml-front-matter**](https://www.npmjs.com/package/@igorskyflyer/strip-yaml-front-matter)

> _๐Ÿฆ“ Strips YAML front matter from a String or a file. ๐Ÿ‘พ_


[**@igorskyflyer/strip-html**](https://www.npmjs.com/package/@igorskyflyer/strip-html)

> _๐Ÿฅž Removes HTML code from the given string. Can even extract text-only from the given an HTML string. โœจ_






## ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Author
Created by **Igor Dimitrijeviฤ‡ ([*@igorskyflyer*](https://github.com/igorskyflyer/))**.