JSPM

  • Created
  • Published
  • Downloads 81334
  • Score
    100M100P100Q173974F
  • License MIT

Promise-based git client that mostly just executes the git binary

Package Exports

  • git-client

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (git-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

git-client

Promise-based git client that mostly just executes the git binary

Usage

Basic usage

const git = require('git-client');
const hash = await git('rev-parse HEAD');

Multiple arguments

const hash = await git('rev-parse', 'HEAD');

Option building

const hash = await git('rev-parse', { verify: true, short: 6 }, 'HEAD');

Named methods for common commands

const hash = await git.revParse({ verify: true }, 'HEAD');

Advanced Examples

Save file from the web

const writer = await git.hashObject({  w: true, stdin: true, $spawn: true });
const response = await axios.get('https://placekitten.com/1000/1000', { responseType: 'stream' });

// pipe data from HTTP response into git
response.data.pipe(writer.stdin);

// wait for data to finish
await new Promise((resolve, reject) => {
    response.data.on('end', () => resolve());
    response.data.on('error', () => reject());
});

// read written hash and save to ref
const hash = await writer.captureOutputTrimmed();

Build a tree

const lines = [
    '100644 blob bc0c330151d9a2ca8d87d1ff914b87f152036b19\tkitten.jpg',
    '100644 blob 97ab63ad46e50ac4012ac9370b33878b224c4fa3\tcage.jpg'
];

const mktree = await git.mktree({ $spawn: true });

const hash = await mktree.captureOutputTrimmed(lines.join('\n')+'\n');