npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ts-git

v0.1.0

Published

Compact high-level JavaScript API for git

Readme

ts-git

build status dependency status npm version

This is a compact high-level JavaScript API for git. No git installation is needed. It wraps the low-level js-git API to investigate working copies of repositories stored in the local filesystem, much like the git command line tool is often used.

Features

The main high-level operations are:

  • Get info (hash, message, time and author) for any commit (getCommit).
  • Get logs with commit info working backwards from any commit (getLog).
    • Optionally filtered to only include commits with changes to a particular file (stopping at renames).
  • Check if a particular file in the working tree has changed since the latest commit (isDirty).

API

Docs generated using docts

Interface CommitInfo

Source code: <>

Properties:

.tree string
.parents string[]
.author UserTimeInfo
.committer UserTimeInfo
.message string
.hash string

Interface FileInfo

Source code: <>

Properties:

.mode number
.hash string

Interface GetLogOptions

Filtering options for retrieving logs.
Source code: <>

Properties:

.path? string
Only match commits where file at path was changed.
.count? number
Only match up to given number of commits.

Class Git

Source code: <>

Methods:

new( ) Git <>
 ▪ basePath string
.getWorkingHead( ) Bluebird<HeadInfo> <>
Get promise resolving to the hash of current working tree HEAD commit.
.getCommit( ) Bluebird<CommitInfo> <>
Get info for commit based on its hash.
 ▪ commitHash string
.resolve( ) string <>
Get absolute path to file inside working copy.
 ▪ pathName string
.relative( ) string <>
Get path to file inside working copy relative to its root.
 ▪ pathName string
.findPath( ) Bluebird<FileInfo> <>
Get info for file at pathName inside tree. Tree is a hash
pointing to the contents of a commit, defined in the commit's info.
 ▪ treeHash string
 ▪ pathName string
.isDirty( ) Bluebird<boolean> <>
Get promise resolving to true if file inside working tree is dirty,
false otherwise.
 ▪ pathName string
.walkLog( ) Bluebird<void> <>
Walk the commit log from given hash towards the initial commit,
calling handler for each commit matching options.
 ▪ commitHash string
 ▪ options GetLogOptions
 ▪ handler (entry: CommitInfo) => void
.getLog( ) Bluebird<CommitInfo[]> <>
Get promise resolving to a list of commits matching options,
in reverse topological / chronological order
from given hash towards the initial commit.
 ▪ hash string
 ▫ options? GetLogOptions

Interface HeadInfo

Source code: <>

Properties:

.branch? string
.hash? string

Interface UserTimeInfo

Source code: <>

Properties:

.name string
.email string
.date { seconds: number; offset: number; }

Function getHash

Get promise resolving to desired type of hash (eg. sha1) for contents of stream.
Optionally prefix contents with an arbitrary header before hashing.
Source code: <>

getHash( ) Bluebird<string> <>
 ▪ type string
 ▪ dataStream Readable
 ▫ prefix? string

License

The MIT License

Copyright (c) 2016 BusFaster Ltd