@es-git/walkers-mixin
TypeScript icon, indicating that this package has built-in type declarations

0.10.0 • Public • Published

walkers-mixin

This is part of the ES-Git project.

Install

npm install --save @es-git/walkers-mixin

Usage

Mix this in with an IObjectRepo.

This mixin provides ways to walk the repo, either along it's history or in the tree of one commit. This mixin uses async iterables

import objectsMixin from '@es-git/objects-mixin';
import walkersMixin from '@es-git/walkers-mixin';
import MemoryRepo from '@es-git/memory-repo';

const Repo = mix(MemoryRepo)
            .with(objectsMixin)
            .with(walkersMixin);

const repo = new Repo();
for await(const commit of repo.walkComits(await repo.getRef('refs/heads/master'))){
  console.log(commit.message);
}
for await(const fileOrFolder of repo.walkTree(await repo.getRef('refs/heads/master'))){
  console.log(fileOrFolder.path.join('/'));
}
for await(const file of repo.listFiles(await repo.getRef('refs/heads/master'))){
  console.log(file.path.join('/'));
}

Interfaces

IWalkersRepo

interface IWalkersRepo {
  walkCommits(...hash : Hash[]) : AsyncIterableIterator<HashAndCommitObject>
  walkTree(hash : Hash) : AsyncIterableIterator<HashModePath>
  listFiles(hash: Hash): AsyncIterableIterator<HashModePath>
}

type Hash = string;

type HashAndCommitObject = {
  readonly hash : Hash
  readonly commit : CommitObject
}

type HashModePath = {
  readonly hash : Hash
  readonly mode : Mode
  readonly path : string[]
}

/@es-git/walkers-mixin/

    Package Sidebar

    Install

    npm i @es-git/walkers-mixin

    Weekly Downloads

    75

    Version

    0.10.0

    License

    MIT

    Unpacked Size

    69.5 kB

    Total Files

    27

    Last publish

    Collaborators

    • mariusgundersen