http-asset

1.0.1 • Public • Published

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:

option default description
cache true Set to true to disable caching
cacheStaleMs 1000 * 60 * 5 (5 minutes) number of milliseconds before we should check for an update
cacheDir os.tmpDir() Directory to store this asset's cache
cacheName md5(url) Filename for the cache
cachePath cacheDir + cacheName Override 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()
})

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.1
    5
    • latest

Version History

Package Sidebar

Install

npm i http-asset

Weekly Downloads

5

Version

1.0.1

License

MIT

Last publish

Collaborators

  • spalger