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 = let asset = asset
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 = let asset = asset
asset.clear() -> Promise
Clears the value of the asset
// force a fetchassetclear