cacache
Advanced tools
Comparing version 7.0.5 to 7.1.0
@@ -5,2 +5,12 @@ # Change Log | ||
<a name="7.1.0"></a> | ||
# [7.1.0](https://github.com/zkat/cacache/compare/v7.0.5...v7.1.0) (2017-04-20) | ||
### Features | ||
* **size:** handle content size info (#49) ([91230af](https://github.com/zkat/cacache/commit/91230af)) | ||
<a name="7.0.5"></a> | ||
@@ -7,0 +17,0 @@ ## [7.0.5](https://github.com/zkat/cacache/compare/v7.0.4...v7.0.5) (2017-04-18) |
@@ -29,3 +29,4 @@ 'use strict' | ||
data: memoized.data, | ||
integrity: memoized.entry.integrity | ||
integrity: memoized.entry.integrity, | ||
size: memoized.entry.size | ||
}) | ||
@@ -45,2 +46,3 @@ } | ||
data: data, | ||
size: entry.size, | ||
integrity: entry.integrity | ||
@@ -67,2 +69,3 @@ }).then(res => { | ||
ev === 'integrity' && cb(memoized.entry.integrity) | ||
ev === 'size' && cb(memoized.entry.size) | ||
}) | ||
@@ -93,7 +96,10 @@ stream.write(memoized.data, () => stream.end()) | ||
} | ||
opts.size = opts.size == null ? entry.size : opts.size | ||
stream.emit('metadata', entry.metadata) | ||
stream.emit('integrity', entry.integrity) | ||
stream.emit('size', entry.size) | ||
stream.on('newListener', function (ev, cb) { | ||
ev === 'metadata' && cb(entry.metadata) | ||
ev === 'integrity' && cb(entry.integrity) | ||
ev === 'size' && cb(entry.size) | ||
}) | ||
@@ -100,0 +106,0 @@ pipe( |
@@ -40,3 +40,3 @@ 'use strict' | ||
)) | ||
)).then(() => sri) | ||
)).then(() => ({integrity: sri, size: data.length})) | ||
} | ||
@@ -66,4 +66,5 @@ | ||
} | ||
allDone.then(sri => { | ||
sri && ret.emit('integrity', sri) | ||
allDone.then(res => { | ||
res.integrity && ret.emit('integrity', res.integrity) | ||
res.size !== null && ret.emit('size', res.size) | ||
cb() | ||
@@ -86,6 +87,6 @@ }, e => { | ||
inputStream, cache, tmp.target, opts, errCheck | ||
).then(sri => { | ||
).then(res => { | ||
return moveToDestination( | ||
tmp, cache, sri, opts, errCheck | ||
).then(() => sri) | ||
tmp, cache, res.integrity, opts, errCheck | ||
).then(() => res) | ||
}) | ||
@@ -97,3 +98,4 @@ }) | ||
return BB.resolve().then(() => { | ||
let sri | ||
let integrity | ||
let size | ||
const hashStream = ssri.integrityStream({ | ||
@@ -104,3 +106,5 @@ integrity: opts.integrity, | ||
}).on('integrity', s => { | ||
sri = s | ||
integrity = s | ||
}).on('size', s => { | ||
size = s | ||
}) | ||
@@ -112,3 +116,3 @@ const outStream = fs.createWriteStream(tmpTarget, { | ||
return pipe(inputStream, hashStream, outStream).then(() => { | ||
return sri | ||
return {integrity, size} | ||
}, err => { | ||
@@ -115,0 +119,0 @@ return rimraf(tmpTarget).then(() => { throw err }) |
@@ -39,2 +39,3 @@ 'use strict' | ||
time: Date.now(), | ||
size: opts.size, | ||
metadata: opts.metadata | ||
@@ -210,2 +211,3 @@ } | ||
path: contentPath(cache, entry.integrity), | ||
size: entry.size, | ||
time: entry.time, | ||
@@ -212,0 +214,0 @@ metadata: entry.metadata |
@@ -12,3 +12,2 @@ 'use strict' | ||
const path = require('path') | ||
const pipe = BB.promisify(require('mississippi').pipe) | ||
const rimraf = BB.promisify(require('rimraf')) | ||
@@ -15,0 +14,0 @@ const ssri = require('ssri') |
{ | ||
"name": "cacache", | ||
"version": "7.0.5", | ||
"version": "7.1.0", | ||
"cache-version": { | ||
"content": "2", | ||
"index": "4" | ||
"index": "5" | ||
}, | ||
@@ -79,3 +79,3 @@ "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.", | ||
"safe-buffer": "^5.0.1", | ||
"standard": "^10.0.1", | ||
"standard": "^10.0.2", | ||
"standard-version": "^4.0.0", | ||
@@ -82,0 +82,0 @@ "tacks": "^1.2.2", |
17
put.js
@@ -11,8 +11,10 @@ 'use strict' | ||
opts = opts || {} | ||
return write(cache, data, opts).then(integrity => { | ||
return index.insert(cache, key, integrity, opts).then(entry => { | ||
return write(cache, data, opts).then(res => { | ||
// TODO - stop modifying opts | ||
opts.size = res.size | ||
return index.insert(cache, key, res.integrity, opts).then(entry => { | ||
if (opts.memoize) { | ||
memo.put(cache, entry, data) | ||
} | ||
return integrity | ||
return res.integrity | ||
}) | ||
@@ -26,4 +28,9 @@ }) | ||
let integrity | ||
const contentStream = write.stream(cache, opts).on('integrity', int => { | ||
let size | ||
const contentStream = write.stream( | ||
cache, opts | ||
).on('integrity', int => { | ||
integrity = int | ||
}).on('size', s => { | ||
size = s | ||
}) | ||
@@ -43,2 +50,4 @@ let memoData | ||
contentStream.end(() => { | ||
// TODO - stop modifying `opts` | ||
opts.size = size | ||
index.insert(cache, key, integrity, opts).then(entry => { | ||
@@ -45,0 +54,0 @@ if (opts.memoize) { |
@@ -124,2 +124,3 @@ # cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest) | ||
time: 12345698490, | ||
size: 4023948, | ||
metadata: { | ||
@@ -135,3 +136,4 @@ name: 'blah', | ||
path: '.testcache/content/bada55', | ||
time: 11992309289 | ||
time: 11992309289, | ||
size: 111112 | ||
} | ||
@@ -158,2 +160,3 @@ } | ||
time: 12345698490, | ||
size: 13423, | ||
metadata: { | ||
@@ -170,3 +173,4 @@ name: 'blah', | ||
path: '.testcache/content/bada55', | ||
time: 11992309289 | ||
time: 11992309289, | ||
size: 498023984029 | ||
} | ||
@@ -215,3 +219,4 @@ | ||
integrity: 'sha512-BaSe64HaSh', | ||
data: Buffer#<deadbeef> | ||
data: Buffer#<deadbeef>, | ||
size: 9320 | ||
} | ||
@@ -288,2 +293,3 @@ | ||
time: 12345698490, | ||
size: 849234, | ||
metadata: { | ||
@@ -366,2 +372,4 @@ name: 'blah', | ||
Has no effect if `opts.integrity` is present. | ||
##### `opts.uid`/`opts.gid` | ||
@@ -368,0 +376,0 @@ |
65714
1086
569