@nulo/isogit-lfs (0.3.1)

Published 2023-05-16 22:56:40 +00:00 by Nulo

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 actual dependencies.

== 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
Details
npm
2023-05-16 22:56:40 +00:00
14
Ribose Inc.
MIT
latest
15 KiB
Assets (1)
Versions (13) View all
0.3.1 2023-05-16
0.3.0 2023-05-16
0.2.9 2023-05-16
0.2.8 2023-05-16
0.2.7 2023-01-20