Have ideas to improve npm?Join in the discussion! »

    @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[]
    }

    Keywords

    none

    Install

    npm i @es-git/walkers-mixin

    DownloadsWeekly Downloads

    65

    Version

    0.10.0

    License

    MIT

    Unpacked Size

    69.5 kB

    Total Files

    27

    Last publish

    Collaborators

    • avatar