README
Fast DNS resolution caching results for a while.
Motivation
Ping an URL for getting the canonical URL and store the result into a cache, respecting a Time-to-Live (TTL) for the next lookup.
Suggested TTL could be:
- Very Short: 300 seconds (5 minutes).
- Short: 3600 seconds (1 hour).
- Long: 86400 seconds (24 hours).
- Insanity: 604800 seconds (7 days).
This library support any data storage provided by keyv
.
Install
$ npm install @microlink/ping-url --save
Usage
const createPingUrl = require('@microlink/ping-url')
const cache = new Map()
const pingUrl = createPingUrl({ store: cache, ttl: 3600 })
;(async () => {
await pingUrl('https://example.com') // MISS, do the request
await pingUrl('https://example.com') // HIT, serve from cache!
})()
The payload returned by pingUrl
will be response
but without any stream object there.
API
pingUrl([keyvOptions], [memoizeOptions])
keyvOptions
See keyv#options
.
memoizeOptions
See @keyvhq/memoize
.
Additionally, you can setup:
decorate
Type: function
Default: lodash.identity
Setup a function to be executed before save the content into the store.
License
@microlink/ping-url © Microlink, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.
microlink.io · GitHub @MicrolinkHQ · Twitter @microlinkhq