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

indx

v0.2.3

Published

require_tree for node

Downloads

367,997

Readme

Indx

npm tests coverage dependencies

Require a folder of files or other folders, instead of doing them one at a time.

Note: This project is in development, and versioning is a little different. Read this for more details.

Why should you care?

So let's say you are setting up a node project, and using the adapter pattern, which is a great and useful pattern. You may have a folder full of adapters, and you want to require all of them into an object, rather than going through each one individually. Kind of like require_tree in sprockets. That's exactly what indx does for you.

It's a very small script, but it's something I found myself writing and re-writing, so I figured why not wrap it up and give it to the world to make life a couple lines of code shorter.

Installation

npm install indx

Usage

In the folder you want to require, put an index.js file at the root. Inside that file, write this:

module.exports = require('indx')(__dirname);

This you can require that folder and each of the files will be present. Alternately, just pass indx the path of a directory you want to require:

var adapters = require('indx')('./adapters')

The path you pass will be passed through path.resolve, so no need to compute an absolute path if you don't need to. The example above will work fine without having to run any additional path methods on it as long as the relative path there is correct.

Indx supports javascript and coffeescript. If you have folders inside your folder, make sure each of those folders has an index.js or index.coffee file in it, or it won't be required. If you have files in your folder that are not .js or .coffee, they will not be required. If there are other languages I'm not aware of you'd like to add support for, feel free to submit a pull request - it's easy to extend the supported extensions.

License & Contributing

This project is licensed under MIT

This entire project is one file, pretty easy to figure out how it's working. If you want to add something or fix a bug, please add a test for it. You can run tests with mocha in the root of the project.