parse-favicon
    TypeScript icon, indicating that this package has built-in type declarations

    5.0.3 • Public • Published

    parse-favicon npm GitHub license

    Parse HTML to get icon information.

    Install

    npm install --save parse-favicon
    # or
    yarn add parse-favicon

    Usage

    import { parseFavicon } from 'parse-favicon'
    
    const pageUrl = 'https://github.com'
    
    parseFavicon(pageUrl, textFetcher, bufferFetcher).subscribe(icon => console.log(icon))
    
    async function textFetcher(url) {
      return await fetch(resolveUrl(url, pageUrl)).then(res => res.text())
    }
    
    async function bufferFetcher(url) {
      return await fetch(resolveUrl(url, pageUrl)).then(res => res.arrayBuffer())
    }
    
    function resolveUrl(url, base) {
      return new URL(url, base).href
    }

    API

    parseFavicon

    parseFavicon(
      url: string
    , textFetcher: TextFetcher
    , bufferFetcher?: BufferFetcher
    ): Observable<Icon>
    
    type TextFetcher = (url: string) => PromiseLike<string>
    type BufferFetcher = (url: string) => PromiseLike<ArrayBuffer>
    
    interface Icon {
      url: string
      reference: string
      type: null | string
      size: null | 'any' | Size | Size[]
    }
    
    interface Size {
      width: number
      height: number
    }

    parseFavicon accepts textFetcher and bufferFetcher for further fetching requests when parsing icons, bufferFetcher is optional. If you need actual icon sizes and type, should provide bufferFetcher.

    References related to textFetcher:

    • <meta name="msapplication-config" content="path/to/ieconfig.xml">
    • <link rel="manifest" href="path/to/manifest.webmanifest">

    References related to bufferFetcher:

    • /favicon.ico
    • /apple-touch-icon-57x57-precomposed.png
    • /apple-touch-icon-57x57.png
    • /apple-touch-icon-72x72-precomposed.png
    • /apple-touch-icon-72x72.png
    • /apple-touch-icon-114x114-precomposed.png
    • /apple-touch-icon-114x114.png
    • /apple-touch-icon-120x120-precomposed.png
    • /apple-touch-icon-120x120.png
    • /apple-touch-icon-144x144-precomposed.png
    • /apple-touch-icon-144x144.png
    • /apple-touch-icon-152x152-precomposed.png
    • /apple-touch-icon-152x152.png
    • /apple-touch-icon-180x180-precomposed.png
    • /apple-touch-icon-180x180.png
    • /apple-touch-icon-precomposed.png
    • /apple-touch-icon.png

    Support references

    • <link rel="icon" href="path/to/icon.png">
    • <link rel="shortcut icon" href="path/to/icon.ico">
    • <link rel="apple-touch-icon" href="path/to/icon.png">
    • <link rel="apple-touch-icon-precomposed" href="path/to/icon.png">
    • <link rel="manifest" href="path/to/manifest.webmanifest">
    • <link rel="fluid-icon" href="path/to/icon.png">
    • <link rel="mask-icon" href="path/to/icon.svg">
    • <meta name="msapplication-TileImage" content="path/to/icon.png">
    • <meta name="msapplication-config" content="path/to/ieconfig.xml">
    • <meta name="msapplication-square70x70logo" content="path/to/icon.png">
    • <meta name="msapplication-square150x150logo" content="path/to/icon.png">
    • <meta name="msapplication-square310x310logo" content="path/to/icon.png">
    • <meta name="msapplication-wide310x150logo" content="path/to/icon.png">
    • /favicon.ico
    • /apple-touch-icon-57x57-precomposed.png
    • /apple-touch-icon-57x57.png
    • /apple-touch-icon-72x72-precomposed.png
    • /apple-touch-icon-72x72.png
    • /apple-touch-icon-114x114-precomposed.png
    • /apple-touch-icon-114x114.png
    • /apple-touch-icon-120x120-precomposed.png
    • /apple-touch-icon-120x120.png
    • /apple-touch-icon-144x144-precomposed.png
    • /apple-touch-icon-144x144.png
    • /apple-touch-icon-152x152-precomposed.png
    • /apple-touch-icon-152x152.png
    • /apple-touch-icon-180x180-precomposed.png
    • /apple-touch-icon-180x180.png
    • /apple-touch-icon-precomposed.png
    • /apple-touch-icon.png

    Related projects

    Install

    npm i parse-favicon

    DownloadsWeekly Downloads

    100

    Version

    5.0.3

    License

    MIT

    Unpacked Size

    107 kB

    Total Files

    153

    Last publish

    Collaborators

    • black_glory