38 lines
796 B
Markdown
38 lines
796 B
Markdown
|
# pack-ops mixin
|
||
|
|
||
|
This mixin adds the ability to consume or create packfile streams.
|
||
|
|
||
|
This depends on the repo already having:
|
||
|
|
||
|
- `loadRaw(hash) => raw-binary`
|
||
|
- `saveRaw(hash, raw-binary) =>`
|
||
|
|
||
|
And then adds:
|
||
|
|
||
|
- `unpack(stream, opts) => hashes`
|
||
|
- `pack(hashes, opts) => stream`
|
||
|
|
||
|
The streams are simple-stream format. This means they have a `.read(callback)`
|
||
|
method for pulling items out of the stream.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```js
|
||
|
var packOps = require('js-git/mixins/pack-ops');
|
||
|
packOps(repo);
|
||
|
|
||
|
repo.unpack(stream, opts, function (err, hashes) {
|
||
|
// hashes is imported objects
|
||
|
});
|
||
|
|
||
|
repo.pack(hashes, opts, function (err, stream) {
|
||
|
if (err) throw err;
|
||
|
stream.read(onRead);
|
||
|
function onRead(err, item) {
|
||
|
if (err) throw err;
|
||
|
console.log(item);
|
||
|
if (item) stream.read(onRead);
|
||
|
}
|
||
|
});
|
||
|
```
|