@fetsorn/isogit-lfs
v0.5.1
Published
LFS helpers for Isomorphic Git
Downloads
19
Readme
A set of helpers to simplify working with Git LFS through Isomorphic Git.
== Installation
Peer dependencies:
- Isomorphic Git ^1.21.0
== Usage
As of 0.5.0, 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.
uploadBlobs({ http, headers, url, auth }, buffers) => 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
.
buildPointerInfo(content) => LFSPointerInfo
converts file to a pointer.
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"
.
+
pointsToLFS(content) => boolean
tells if file is an LFS pointer.
downloadUrlFromPointer({ http, headers, url, auth, info }) => Buffer
where http
is an HttpClient
as supported by Isomorphic Git,
URL is repository URL
and info
is an object returned by buildPointerInfo()
.
addLFS({ fs, dir, filepath })
where fs
is an FsClient
as supported by Isomorphic Git,
dir
is the working tree directory path
and filepath is the path to the original file
== Considered within scope
- Implement batch uploads and downloads (parallelise requests? use native batch API?)
- Find a way to generalize UA header handling