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

@trunkio/launcher

v1.3.4

Published

Trunk CLI tool

Downloads

31,359

Readme

🎉 Trunk is in beta. We'd appreciate your feedback - stop by the Trunk Community Slack and let us know what you think. Thanks!

Trunk is a blazingly fast meta code checker and formatter with extraordinary features like caching, preexisting issue detection, a daemon, and a language server. It's managed completely via config-as-code, so you can easily pin your repo to specific versions of your linters, formatters, and static analyzers.

Don't install a dozen different linter and formatting plugins, just use Trunk. Level up your code quality and consistency today.

Get Started

  1. Install Trunk → npm install @trunkio/launcher (docs)
  2. Setup Trunk in your repo → npm exec trunk init (docs)
  3. Take Trunk for a spin → npm exec trunk check --sample

That's it!

Prereqs

None! Trunk manages linters and formatters for you via pinned versions in your repo's .trunk/trunk.yaml file. You don't need to install any linters or configure the extension in any way. We cache linters, formatters, and runtimes in ~/.cache/trunk. Using a linter distributed as a go module but you're not a go user? Don't worry about it, we handle it all 😉.

Linters / Formatters

We integrate new linters every release. Stop by on slack and let us know what you'd like next!

| Language | Linters | | --------------- | ----------------------------------------------------------------------------- | | All | gitleaks | | Ansible | ansible-lint | | Bash | shellcheck, shfmt | | Bazel, Starlark | buildifier | | C/C++ | clang-format, clang-tidy | | Cloudformation | cfnlint | | Docker | hadolint | | GitHub | actionlint | | Go | gofmt, golangci-lint, semgrep | | HAML | haml-lint | | Java | semgrep | | JS/TS | eslint, prettier, semgrep | | Kotlin | detekt, detekt-explicit, ktlint | | Markdown | markdownlint | | Protobuf | buf-breaking, buf-lint | | Python | autopep8, bandit, black, flake8, isort, pylint, semgrep, yapf | | Ruby | brakeman, rubocop, rufo, semgrep, standardrb | | Rust | clippy, rustfmt | | SQL | sql-formatter | | Terraform | terraform, tflint | | TOML | taplo |

Linting and formatting principles

  • Autoformat every file. Every file.
  • Every file in your repo should have at least one tool checking its validity
  • You should always get the same results locally as on CI

Features

Configuration

Trunk manages all configuration as code in your repo's .trunk/trunk.yaml file. When you first trunk init, we scan your repo for which linters and formatters are applicable to you and set up an initial .trunk/trunk.yaml file for you to use. See the docs for more details.

Formatting

Don't install 15 formatters, just use trunk

Ever hit one of these problems?

  • Struggling to figure out why you need a Go or Ruby installation to run a specific formatter
  • Devs on your team all get slightly different formatting results because you're running different versions of the formatters
  • Your formatting doesn't match what your CI lint job is expecting because you're running a different version of a formatter locally

That's what formatting via Trunk solves. Everyone on your team is guaranteed to get the same results, because we always run the same version of each formatter/linter on everyone's machine, including in your CI lint job.

Extras: VSCode Extension & GitHub Action

  1. Use a single extension for all your linting and formatting → Trunk VSCode Extension
  2. Protect lint and format issues from leaking into main → Trunk GitHub Action

How versioning works

After you trunk init, trunk.yaml will contain a pinned version of Trunk to use for your repo. When you run trunk, it will automatically detect which version you should be running for a particular repo and, if needed, download it, then run it. The trunk VSCode extension works the same way: regardless of what repo you're in, the underlying version of trunk it runs is based on the pinned version in your trunk.yaml file. Config-as-code 👍.

This means that everyone working in a repo, using the trunk cli, the VSCode extension, or when running on CI, all get the same results because they're running the same version of trunk and the same versions of all the linters/formatters. No more "doesn't happen on my machine". When you want to upgrade to a newer version, just run trunk upgrade and commit the updated trunk.yaml.

Development Status

We release new versions about every other week.

Feedback

For support and feedback, reach out on our Trunk Community slack. Thanks! ❤️