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 🙏

© 2024 – Pkg Stats / Ryan Hefner

codenav

v2.2.0

Published

code navigation

Downloads

24

Readme

Code Navigation

Quality Gate Status Known Vulnerabilities


I wrote this tool to help me structure and work with the various code-bases I contribute to regardless of which organisations they belong to. This is extremely handy for someone involved in open source development.

It brings in the concept of workspaces, and also persists that into a configuration that can be shared across multiple computers. This is amazing as I often work from either my personal or my company’s laptop, and also I like to spoil myself with new laptops every now and then … with this tool I can simply get setup with cnav clone and it gets me all the code !

It supports registering repositories from different source control providers GitHub, Bitbucket (cloud and DC) … with more providers to come … whenever I have to contribute to a repo hosted over there

The main feature I wrote this tool for is the cnav exec command, it lets you run a script across multiple repositories; this is excellent when you’re working on platform/infrastructure, and you’re generally in need to apply updates in bulk.


install it

from stable

  • through npm
npm install -g codenav
  • through Homebrew
brew tap viqueen/codenav
brew install codenav

from source

git clone [email protected]:viqueen/codenav.git
cd codenav

npm ci
npm run ci:build
npm link

configure it

  • view default config
cnav config
  • set your custom values
cnav set-config sources.root <path/to/sources/root>
cnav set-config cnav.workspace <default>
cnav set-config github.username <username>
cnav set-config github.personal.token <token>

use it

  • available commands
>> cnav --help

Options:
  -w, --workspace <name>                 filter by workspace (default: "default")
  -h, --host <name>                      filter by host
  -ns, --namespace <name>                filter by namespace
  -s, --slug <name>                      filter by name/slug
  -k, --keyword <keyword>                filter by keyword
  -V, --version                          output the version number
  --help                                 display help for command

Commands:
  config                                 displays cnav configuration
  set-config <key> <value>               updates cnav configuration entry
  get-config <key>                       gets cnav configuration entry
  register <urlConnection> [aliases...]  registers a new repo using its url connection
  list                                   lists registered repos
  remove                                 removes registered repos
  clone                                  clone registered repos
  exec <executableFile> [args...]        execute script on target repos
  stash <project>                        register repos from stash for a given project
  bitbucket <namespace>                  register repos from bitbucket with given namespace
  github --user <namespace>              register repos from github with given user namespace
  github --org <namespace>               register repos from github with given org namespace
  help [command]                         display help for command
  • register repos from bitbucket
cnav bitbucket <username|org>
  • register repos from bitbucket server
cnav stash <projectKey>
  • register repos from GitHub
cnav github --user <username>
cnav github --org <organisation>
  • list repos
Usage: cnav list [options]

lists registered repos

Options:
  -w, --workspace <name>                 filter by workspace (default: "default")
  -h, --host <name>                      filter by host
  -ns, --namespace <name>                filter by namespace
  -s, --slug <name>                      filter by name/slug
  -k, --keyword <keyword>                filter by keyword
cnav list
cnav list -ns <username|org>
cnav list -h <github.com|bitbucket.org>
cnav list -ns <username|org> -h <github.com|bitbucket.org>
cnav list -w <workspace>
  • clone repos
Usage: cnav clone [options]

clone registered repos

Options:
  -w, --workspace <name>                 filter by workspace (default: "default")
  -h, --host <name>                      filter by host
  -ns, --namespace <name>                filter by namespace
  -s, --slug <name>                      filter by name/slug
  -k, --keyword <keyword>                filter by keyword
cnav clone
cnav clone -ns <username|org>
cnav clone -h <github.com|bitbucket.org>
cnav clone -ns <username|org> -h <github.com|bitbucket.org>
cnav clone -w <workspace>

develop it

  • run and watch tests with npm test
  • run the cli with local changes using ./cnavdev <options> <commands>