---
layout: default
menu_item: api
title: Packbuilder
description: Version 0.26.1
menu_item: api
return_to:
"API Documentation Index": /api/
sections:
"create": "#create"
"#hash": "#hash"
"#insert": "#insert"
"#insertCommit": "#insertCommit"
"#insertRecur": "#insertRecur"
"#insertTree": "#insertTree"
"#insertWalk": "#insertWalk"
"#objectCount": "#objectCount"
"#setThreads": "#setThreads"
"#written": "#written"
"STAGE": "#STAGE"
---
## Packbuilder.create Sync
```js
var packbuilder = Packbuilder.create(repo);
```
| Parameters | Type | |
| --- | --- | --- |
| repo | [Repository](/api/repository/) | The repository |
| Returns | |
| --- | --- |
| [Packbuilder](/api/packbuilder/) | The new packbuilder object |
## Packbuilder#hash Sync
```js
var oid = packbuilder.hash();
```
| Returns | |
| --- | --- |
| [Oid](/api/oid/) | |
## Packbuilder#insert Async
```js
packbuilder.insert(id, name).then(function(result) {
// Use result
});
```
| Parameters | Type |
| --- | --- | --- |
| id | [Oid](/api/oid/) | The oid of the commit |
| name | String | The name; might be NULL |
| Returns | |
| --- | --- |
| Number | 0 or an error code |
## Packbuilder#insertCommit Async
```js
packbuilder.insertCommit(id).then(function(result) {
// Use result
});
```
| Parameters | Type |
| --- | --- | --- |
| id | [Oid](/api/oid/) | The oid of the commit |
| Returns | |
| --- | --- |
| Number | 0 or an error code |
## Packbuilder#insertRecur Async
```js
packbuilder.insertRecur(id, name).then(function(result) {
// Use result
});
```
| Parameters | Type |
| --- | --- | --- |
| id | [Oid](/api/oid/) | the id of the root object to insert |
| name | String | optional name for the object |
| Returns | |
| --- | --- |
| Number | 0 or an error code |
## Packbuilder#insertTree Sync
```js
var result = packbuilder.insertTree(id);
```
| Parameters | Type |
| --- | --- | --- |
| id | [Oid](/api/oid/) | The oid of the root tree |
| Returns | |
| --- | --- |
| Number | 0 or an error code |
## Packbuilder#insertWalk Async
```js
packbuilder.insertWalk(walk).then(function(result) {
// Use result
});
```
| Parameters | Type |
| --- | --- | --- |
| walk | [Revwalk](/api/revwalk/) | the revwalk to use to fill the packbuilder |
| Returns | |
| --- | --- |
| Number | 0 or an error code |
## Packbuilder#objectCount Sync
```js
var result = packbuilder.objectCount();
```
| Returns | |
| --- | --- |
| Number | the number of objects in the packfile |
## Packbuilder#setThreads Sync
```js
var result = packbuilder.setThreads(n);
```
| Parameters | Type |
| --- | --- | --- |
| n | Number | Number of threads to spawn |
| Returns | |
| --- | --- |
| Number | number of actual threads to be used |
## Packbuilder#written Sync
```js
var result = packbuilder.written();
```
| Returns | |
| --- | --- |
| Number | the number of objects which have already been written |
## Packbuilder.STAGE ENUM
| Flag | Value |
| --- | --- | --- |
| Packbuilder.STAGE.ADDING_OBJECTS | 0 |
| Packbuilder.STAGE.DELTAFICATION | 1 |