http-asset
v1.0.1
Published
Class for fetching and caching an asset over http
Downloads
5
Readme
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()
})