@nulo/isogit-lfs (0.3.1)
Installation
@nulo:registry=
npm install @nulo/isogit-lfs@0.3.1
"@nulo/isogit-lfs": "0.3.1"
About this package
Aspirationally, a set of helpers to simplify working with Git LFS through Isomorphic Git.
== Installation
Peer dependencies:
- Isomorphic Git ^1.7.0
- @aws-crypto/sha256-universal ^2.0.0
== Usage
As of 0.1.6, API offers the following functions:
downloadBlobFromPointer({ http, headers, url, auth }, lfsPointer) => Buffer
where http
is an HttpClient
as supported by Isomorphic Git,
URL is repository URL
and lfsPointer
is an object returned by readPointer()
.
+
Uses cache, if the object had been previously retrieved.
uploadBlob({ http, headers, url, auth }, buffer) => LFSPointerInfo
where first argument is the same as for the download function,
and returned pointer info can be used to write a pointer file in place
of actual object in Git repository (pass it through formatPointerInfo()
).
readPointer({ dir, gitdir, content }) => LFSPointer
where dir
, gitdir
behavior mimics that of Isomorphic Git,
and content
is a Buffer
.
readPointerInfo(buffer) => LFSPointerInfo
reads a properly formatted LFS pointer within a Git repository.
formatPointerInfo(lfsPointerInfo) => Buffer
converts pointer info to appropriately formatted blob suitable to be stored in Git repository in place of actual object data.
populateCache(workDir, ref?)
where workDir
is a path to working directory,
and ref
should probably be left at the default "HEAD"
.
+
NOTE: Very tentative API.
== Known shortcomings
- Works in Node runtime only
- @aws-crypto/sha256-universal peer dependency is unnecessary.
If we’re Node-only we can probably achieve the same using Node’s
crypto
module, and if not we should place it in actualdependencies
.
== Considered within scope
- Implement batch uploads and downloads (parallelise requests? use native batch API?)
- Find a way to generalize UA header handling
- Make it work in browser runtime as well (if feasible?)
Dependencies
Dependencies
ID | Version |
---|---|
@aws-crypto/sha256-universal | ^2.0.2 |
buffer | ^6.0.3 |
path-browserify | ^1.0.1 |
Development Dependencies
ID | Version |
---|---|
@types/path-browserify | ^1.0.0 |
isomorphic-git | ^1.7.8 |
typescript | ^4.4.2 |
Peer Dependencies
ID | Version |
---|---|
isomorphic-git | ^1.7.8 |