Current File : //usr/local/share/.config/yarn/global/node_modules/js-git/doc/mixins/pack-ops.md
# 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);
  }
});
```