Skip to content

Simple, zero dependency, multiple commands runner in concurrent mode.

License

Notifications You must be signed in to change notification settings

benasvip/concurrent-run

Repository files navigation

concurrent-run · npm Build Status

Simple, zero dependency, multiple commands runner in concurrent mode.

Installation

npm

npm install --save-dev concurrent-run

Yarn

yarn add --dev concurrent-run

Usage

CLI

concurrent-run "command1 arg" "command2 arg"

Always surround multiple commands with quotes, otherwise, everything will be treated as a single command.

API

import { ConcurrentRun, Command } from "concurrent-run";

const concurrent = new ConcurrentRun();

concurrent
	.run(["command1 arg", "command2 arg"])
	.on("data", (data: Buffer, command: Command) => {
		// data from spawned process stderr and stdout
	})
	.on("close", (exitCode: number, command: Command) => {
		// after command is finished
	})
	.on("error", (err: Error, command: Command) => {
		// after an error occurs
	});

Events

  • data gets called once stderr or stdout of spawned process sends data.
import { ConcurrentRun, Command } from "concurrent-run";

const concurrent = new ConcurrentRun();

concurrent
	.run(["command1 arg"])
	.on("data", (data: Buffer, command: Command) => {
		// do something...
	});
  • close gets called once command is finished.
import { ConcurrentRun, Command } from "concurrent-run";

const concurrent = new ConcurrentRun();

concurrent
	.run(["command1 arg"])
	.on("close", (exitCode: number, command: Command) => {
		// do something...
	});
  • error gets called once an error occurs.
import { ConcurrentRun, Command } from "concurrent-run";

const concurrent = new ConcurrentRun();

concurrent
	.run(["command1 arg"])
	.on("error", (err: Error, command: Command) => {
	// do something...
});

Contributing

Feel free to open issues or PRs!