0.0.5 • Published 7 years ago

favicon-url v0.0.5

Weekly downloads
68
License
MIT
Repository
github
Last release
7 years ago

styled with prettier & JavaScript Style Guide

Project Goal

This utility was extracted out of REDPILL. The goal was to embed into the application the icon of a given host domain: ex..: google.com.

Possible solutions :

  • Every host domain url will most likely have a favicon.ico somewhere in the root so we might get away with guessing it: ex... for google.com -> http://google.com/favicon.ico
  • Use the content-length property of the headers' response in a network request to the icon directly. To validate the above point.

  • We could parse the host domain html structure and look for the link tag with the icon rel... etc.

The following scenarios are handled:

  • 200 status code
  • Other then 200
  • Icon type or invalid icon type
  • No data buffer present but status 200
  • No content-length in the request
  • Error
  • Timeout of the request to abort
  • Minimun Data buffer length

For all these you will either get the url or null. There will be no error handling(null if). The function only does 1 thing. Url or nothing.

Install

yarn add favicon-url

Run tests with mocha

$ yarn run test

API

const faviconUrl = require('favicon-url')

faviconUrl('google.com', {}, (favicon, dataBufferLength) => {
    // console.log(favicon)
    // console.log(dataBufferLength)
})

The options object

faviconUrl('google.com', {timeout: 2000, minBufferLength: 400, securedOnly: true}, (favicon, dataBufferLength) => {
    // Only favicons served over https.
    // console.log(favicon)
    // console.log(dataBufferLength)
})

The following properties are supported:

  • timeout (default: 8000) – The timeout of the HTTP/HTTPS request in milliseconds.

  • minBufferLength (default: 200) – sets the minimum length of the data buffer. Any favicon who's data buffer length is below will return null.

  • securedOnly (default: false) – sets the agent option per protocol, since HTTP and HTTPS use different agents. Example value: { securedOnly: true } will only return favicons served over HTTPS.

Dependencies

follow-redirects

MIT. Copyright (c) Wilkin Novo.

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago