4.0.2 • Published 10 months ago
extract-git-treeish v4.0.2
extract-git-treeish
Extracts git tree-ish (commits, branches, or tags) into target directory.
USAGE
exists
const { exists } = require('extract-git-treeish');
const assert = require('assert').strict;
assert(await exists({ treeIsh: 'master' }) === true);
assert(await exists({ treeIsh: 'doesnotexist' }) === false);import { exists } from 'extract-git-treeish';
import assert from 'node:assert/strict';
assert(await exists({ treeIsh: 'master' }) === true);
assert(await exists({ treeIsh: 'doesnotexist' }) === false);extract
const { extract } = require('extract-git-treeish');
const assert = require('assert').strict;
const path = require('path');
const destDir = path.join(process.cwd(), 'demo', 'v1');
const extracted = await extract({ treeIsh: 'v1.0.0', dest: destDir })
assert.deepEqual(extracted, {
treeIsh: 'v1.0.0',
dir: '/path/to/cwd/demo/v1'
});import { extract } from 'extract-git-treeish';
import assert from 'node:assert/strict';
import { join } from 'node:path';
const destDir = join(process.cwd(), 'demo', 'v1');
const extracted = await extract({ treeIsh: 'v1.0.0', dest: destDir });
assert.deepEqual(extracted, {
treeIsh: 'v1.0.0',
dir: '/path/to/cwd/demo/v1'
});API
exists({ treeIsh, [gitProjectRoot], [spawnOptions] }): Inquires for existence of treeIsh
- returns
Promisewhich will:- resolve with
truewhen tree-ish exists - resolve with
falsewhen tree-ish does not exist
- resolve with
treeIsh(string) is a name of a git tree-ish (commit, branch, or tag) to be inquired- when
treeIshargument is omitted:- throw TypeError
- when
treeIshargument is not a string:- throw TypeError
- when
gitProjectRoot(string) is an optional directory path pointing to top level directory of git project- when
gitProjectRootoption is omitted:- and when
process.cwd()is inside the git project:- resolves as usual
- and when
process.cwd()is outside the git project:- returns
Promisewhich will reject with Error
- returns
- and when
- when specified
gitProjectRootis pointing to git project root:- resolves as usual
- when specified
gitProjectRootis not a git repository (or any of the parent directories):- returns
Promisewhich will resolve withfalse
- returns
- when specified
gitProjectRootis pointing to directory that does not exist:- returns
Promisewhich will reject with Error
- returns
- when
gitProjectRootargument is not a string:- throw TypeError when number
- throw TypeError when boolean
- when
extract({ treeIsh, dest, [gitProjectRoot], [spawnOptions] }): Extracts contents of treeIsh into dest directory
- returns
Promisewhich will:- resolve with object containing
{treeIsh, dir}when succeeded - extract tree-ish content into
deston resolve
- resolve with object containing
treeIsh(string) is a name of a git tree-ish (commit, branch, or tag) to be extracted intodest- when tree-ish specified by
treeIshdoes not exist:- reject with Error
- when
treeIshargument is omitted:- throw TypeError
- when
treeIshargument is not a string:- throw TypeError
- when tree-ish specified by
dest(string) is a directory path whichextractgoing to extract tree-ish content- when directory specified by
destdoes not exist:- creates
destrecursively then resolves as usual
- creates
- when directory specified by
destalready exists:- resolves as usual when
destdirectory is empty - rejects with Error when
destdirectory is not empty - rejects with Error when
destdirectory is not writable ordestis not a directory
- resolves as usual when
- when
destargument is omitted:- throw TypeError
- when
destargument is not a string:- throw TypeError
- when directory specified by
gitProjectRoot(string) is an optional directory path pointing to top level directory of git project- when
gitProjectRootoption is omitted:- when
process.cwd()is inside the git project:- resolves as usual
- when
process.cwd()is outside the git project:- returns
Promisewhich will reject with Error
- returns
- when
- when specified
gitProjectRootis pointing to git project root andtreeIshexists too:- resolves as usual when
destis empty
- resolves as usual when
- when specified
gitProjectRootis not a git repository (or any of the parent directories):- returns
Promisewhich will reject with Error
- returns
- when specified
gitProjectRootis pointing to directory that does not exist:- returns
Promisewhich will reject with Error
- returns
- when
gitProjectRootargument is not a string:- throw TypeError when number
- throw TypeError when boolean
- when
INSTALL
$ npm install extract-git-treeishAUTHOR
LICENSE
Licensed under the MIT license.