1.0.1 • Published 9 years ago

http-asset v1.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

http-asset

Fetch, cache, and update some asset over http.

Useful for managing things like lists of manifest that are maintained in a remote place, but you need regular access to locally. Designed for use by esvm in order to download the list of available releases.

features

  • filesystem backed caching of asset
  • utilizes http caching headers
  • falls back to cache on failure (offline support I guess?)

example

let HttpAsset = require('http-asset')
let asset = HttpAsset('https://api.github.com/repos/elastic/elasticsearch/tags?per_page=100')
asset.get().then(labels => {
  // use labels
})

api


new HttpAsset(url, options = {})

Construct an asset object. url is where the asset should be downloaded from, options include:

optiondefaultdescription
cachetrueSet to true to disable caching
cacheStaleMs1000 * 60 * 5 (5 minutes)number of milliseconds before we should check for an update
cacheDiros.tmpDir()Directory to store this asset's cache
cacheNamemd5(url)Filename for the cache
cachePathcacheDir + cacheNameOverride the cache path for this asset

asset.get() -> Promise

Get the body of a asset, returns a promise

let HttpAsset = require('http-asset')
let asset = HttpAsset('https://api.github.com/repos/elastic/elasticsearch/tags?per_page=100')
asset.get().then(labels => {
  // use labels
})

asset.clear() -> Promise

Clears the value of the asset

// force a fetch
asset.clear().then(function () {
  return asset.get()
})