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

helm-control

v1.1.1

Published

A task runner built on command line interfaces

Downloads

4

Readme

Helm Control

Task automation for command line tools mixed in with code.

Features

  • Write tasks for both the command line and code
  • Tasks are run asynchronously unless dependencies are specified
  • Very simple API
  • No need for plugins since tasks can execute command line tools
  • No need for plugin documentation either
  • The only task runner that makes you feel like a starship captain

Documentation

helm.command(command_name, dependencies, command_line_string)

Add commands that can be executed later.

command_name: Name of the command. This is the value passed into the engage and standby functions.

dependencies: The names of other commands that will complete before the command begins.

command_line_string: The CLI to execute complete with arguments.

helm.command(command_name, dependencies, function)

Same as the previous helm.command, but accepts a function instead of a command line string.

function can take in a callback to indicate when the command is finished to allow other commands to continue execution.

helm.engage(commands)

Executes the commands. Send in a single command or an array of commands.

helm.standby(watch_paths, commands, callback)

Watches the paths defined and reruns the commands listed.

watch_paths: An array of paths to watch. Add an '!' before the path to exclude it.

commands: An array of commands to rerun.

callback: The callback executes after the commands have executed.

Usage

Running Helm

There's no need for a command line interface to run Helm. Just create a config file with the command definitions and run it using node.

node helm.control.js

Example

var helm = require('helm-control');
var nodemon = require('nodemon');

helm.command('lint', [], 'jshint **/*.js');
helm.command('test', ['lint'], 'mocha --reporter dot test.js');
helm.command('bundle', ['test'], 'webpack');
helm.command('app',
							['bundle'],
              function(){
                  nodemon({ script: 'app.js' })
                  .on('start', function () {
                    console.log('nodemon started');
                  })
                  .on('crash', function () {
                    console.log('script crashed for some reason');
                  });
              }
              );

helm.engage(['app']);

// watch all files and folders except items in public
helm.standby(['**/*', '!./public/**/*'], ['bundle']);