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

portess

v1.2.0

Published

Port and process management

Downloads

6

Readme

Portess

Port and process management

Build Status Commitizen friendly semantic-release

This library helps to find open ports and monitor, find and manage process states.

Installation

npm install --save portess

API

portess.port.isOpen(port)

Finds if the port is open. Return value will be a promise that will be yielded with a boolean result.

const portess = require('portess');

await portess.port.isOpen(3000); // true/false

/***************(or)**************/

portess.port.isOpen(3000)
    .then( isOpen => {
        console.log(`Port 3000 is %s`, isOpen?'open':'in use');
    });

portess.port.get(?[ports])

Get a random open port (or) first available port from the given list. Retuns a promise that will be yielded with a port number.

const portess = require('portess');

await portess.port.get(); // Returns random port number - ex: 44450
await portess.port.get([3000, 3010, 4010]);  // Returns first available port from the given list- ex: 3010 (if 3000 is in use)

/***************(or)**************/

portess.port.get() 
    .then( port => {
        console.log(`Port %s is open`, port);
    });

portess.port.get([3000, 3010,4010]) 
    .then( port => {
        console.log(`Port %s is open`, port);
    });

portess.process.isRunning(pid)

Identifies if a process state is active. Returns boolean

const portess = require('portess');

portess.process.isRunning(55432); // true if the process is running

portess.process.kill(pid)

Kill a process by pid

const portess = require('portess');

portess.process.kill(55432); // false : If the process is not found

portess.monitor(ports...)

Monitor is an EventEmitter that emits open when a monitored port is available and close when the port has closed.

var portess = require('portess');
var monitor = new portess.Monitor([8888,9999, 8082]);

monitor.on('open', function(port){
  console.log('Port %s is open', port);
});

monitor.on('close', function(port){
  console.log('Port %s is closed', port);
});

setTimeout(function(){
  monitor.stop(); // Stops the monitoring after 5 seconds
}, 5000);

CLI

You can use portess as a command line utility. You just have to install it globally as npm install -g portess and run help command portess --help to find the options and usage.

Usage: portess [options] [command]

Options:
  -V, --version         output the version number
  -h, --help            output usage information

Commands:
  isOpen|o <port>       Find if a port is open or closed
  get|g                 Get an available port
  isRunning|r <pid>     Find if a process is active or not
  kill|k <pid>          Kill a process by pid
  monitor|m <ports...>  Monitor a list of ports and logs to the terminal when port state had changed

 

LICENSE