heartwood-ts
v0.2.1
Published
Typescript implementation of Radicle Heartwood Protocol & Stack
Downloads
271
Maintainers
Readme
heartwood-ts
Based loosely on heartwood. This is a Typescript implementation of it.
Will probably never be feature complete, not one of the objectives. Open for patches and improvements.
Install
$ npm install heartwood-ts
API
Profile
import { Profile } from "heartwood-ts";
// Creates an Profile instance that includes a Radicle Home and Radicle Storage instance.
const profile = Profile.init();
// Returns an instance of Storage.
const storage = profile.storage;
// Computes the profiles NID based on the public key stored in the Radicle Home.
const nid = profile.nid();
Storage
import { Storage } from "heartwood-ts";
// Creates a Storage instance for a Radicle Storage.
const storage = Storage.open("/Users/alice/.radicle/storage");
// Creates a Repository instance with a known RID bound to this Radicle Storage instance.
const repository = storage.repository("z3gqcJUoA1n9HaHKufZs5FCSGazv5");
// List all RIDs of the repos stored in this Radicle Storage instance.
// Filtering should be done by the consumer of this API.
const repositories = storage.repositories();
### Repository
import { Repository } from "heartwood-ts";
// Creates a Repository instance for a repo stored in the Radicle Storage.
const repository = Repository.open(
"/Users/alice/.radicle/storage/z3gqcJUoA1n9HaHKufZs5FCSGazv5"
);
// Return the Oid associated to the repository HEAD.
const head = await repository.head();
// Return the Oid pointing to the latest identity head.
const identity_head = await repository.identity_head();
// Return the JSON parsed `Doc` of the repo at a specific commit.
const doc_at = await repository.doc_at(
"d9c76893a144fd787654613f2bfb919613014a71"
);
// Return the blob for a `README.md` file at a specific commit.
const readme = await repository.readme(
"d9c76893a144fd787654613f2bfb919613014a71"
);