From b7e8260786926940351be4b92f495f9dc4aa2d99 Mon Sep 17 00:00:00 2001 From: Rafael Gieschke Date: Thu, 23 Mar 2017 02:03:57 +0100 Subject: [PATCH] Add Writestream#write --- generate/input/descriptor.json | 14 ++++++++++++- generate/input/libgit2-supplement.json | 28 ++++++++++++++++++++++++++ test/tests/blob.js | 14 +++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/generate/input/descriptor.json b/generate/input/descriptor.json index 25a01481d..532f8fbbf 100644 --- a/generate/input/descriptor.json +++ b/generate/input/descriptor.json @@ -2840,7 +2840,19 @@ }, "writestream": { "cType": "git_writestream", - "needsForwardDeclaration": false + "needsForwardDeclaration": false, + "functions": { + "git_writestream_write": { + "isAsync": true, + "cFunctionName": "(*(*baton).stream).write", + "args": { + "buffer": { + "cppClassName": "Buffer", + "jsClassName": "Buffer" + } + } + } + } } } } diff --git a/generate/input/libgit2-supplement.json b/generate/input/libgit2-supplement.json index 78ecb8ad7..98db03515 100644 --- a/generate/input/libgit2-supplement.json +++ b/generate/input/libgit2-supplement.json @@ -259,6 +259,28 @@ "type": "int" }, "group": "stash" + }, + "git_writestream_write": { + "type": "function", + "file": "types.h", + "args": [ + { + "name": "stream", + "type": "git_writestream *" + }, + { + "name": "buffer", + "type": "const char *" + }, + { + "name": "len", + "type": "size_t" + } + ], + "return": { + "type": "int", + "isErrorCode": true + } } }, "groups": [ @@ -343,6 +365,12 @@ "git_tree_entry_to_object", "git_tree_entry_type" ] + ], + [ + "writestream", + [ + "git_writestream_write" + ] ] ], "types": [ diff --git a/test/tests/blob.js b/test/tests/blob.js index dce4ce619..1a8b64e8c 100644 --- a/test/tests/blob.js +++ b/test/tests/blob.js @@ -480,4 +480,18 @@ describe("Blob", function() { }); }); }); + + it("can create a blob from a Writestream", function () { + var test = new Buffer("test\n"); + var testOid = "9daeafb9864cf43055ae93beb0afd6c7d144bfa4"; + + return NodeGit.Blob.createFromStream(this.repository, "") + .then(function(stream) { + stream.write(test, test.byteLength); + return NodeGit.Blob.createFromstreamCommit(stream); + }) + .then(function(oid) { + assert.equal(oid.toString(), testOid); + }); + }); });