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

conff

v1.2.0

Published

Generate command line flags from a standard config file.

Downloads

13

Readme

conff

Generate command line flags from a standard config file.

Quick start

  1. npm install conff -g
  2. Define a conff.json file in the root of your project.
{

    "watch": [
        "watchify"
        ,"app.js"
        ,{
            "transform": ["browserify-css"]
            , "outfile": "bundle.min.js"
            , "verbose": true
        }
    ]

    ,"compile": [
        "browserify"
        "app.js"
        ,{ "transform": ["browserify-css"] }
    ]

    ,"compress": ["uglifyjs", { "mangle": true, "compress": true }]
}

Then in bash:

`conff compile` | `conf compress` > bundle.min.js

The above command will expand into:

browserify app.js --transform browserify-css | uglifyjs --mangle --compress > bundle.min.js

If you are on windows you can use --exec and --pipe:

conff compile --exec | conff compress --pipe --exec

Why?

  • A single configuration file for any bash command simplifies your build scripts.

  • Defining configuration in one place illuminates the relationship between different scripts

  • Editing json is easier than editing command line flags

  • Encourages use of verbose flags instead of single letter options

  • Removes the need for project specific config files with their own particular translation logic

JSON structure

The top level key is the name of your command. The top level value should be an array containing either:

  • a string
  • an array
  • an object of key values
Arrays:

A sub array follows the same rules as the top level array, and can be arbitrarily nested.

Objects:

Objects will not be deeply traversed they are only a key:value store. If a value is a boolean, only the key will be added.

Strings

Strings are inserted verbatim in order. They will usually be either filenames or commands.

Roadmap

conff is a tiny script. I expect it will not change much (if at all), but pull requests are welcome and encouraged!