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

hook-line-sinker

v0.0.2

Published

Git webhook auto-deploy server

Downloads

8

Readme

Hook Line Sinker

Hook line sinker is an autodeploy server built for simplicity and modularity.

Disclaimer

This project is very early on, has limited testing and the api may very well change in the future. Feel free to send along a pull request or submit bugs. The more help the merrier.

There are a number of limitations with this project. These limitations include (but are not limited to): only pulling down and running the master branch, not allowing more than one server/port, and not allowing npm start as a start script. There is also a security risk that currently anyone can hit the exposed endpoint to pull down the latest code (e.g. /repo/{name of repo}). We currently do nothing to protect the server from thrashing after having the endpoint hit n times.

Use

The most important part of the options is the repo.url. This allows you to specify a url and have it automagically cloned, installed, and started. The start script for each repo is set as node index.js by default, but can be overwritten in the repo object. The port option sets which port you want to have hook-line-sinker running on (preferrably one that you won't have your server(s) running on).

var options = 
{
	verbose:true,			   // Verbose sends all logs to the console (default - true)
	port:	 8001,             // port for hook-line-sinker to listen on
	repo:					   // array containing repo info
	[
		{
			url:'[email protected]:sean17/personal-site.git',
			start: 'node index.js dev',
			install: 'npm i'
		}
	]
}

var Hook = require('hook-line-sinker');

	hook = new Hook(options);

Advanced

Hook Line Sinker uses event emitters to allow you to track the state of your server deploy and add additional functionality. Current events you can listen for are: commit, pulled, installed, started; all of which pass the in action. Additionally, there is a log event for showing all of the logs from hook-line-sinker.

var Hook = require('hook-line-sinker');

	hook = new Hook(options);

	hook.on('commit', function(result)
	{
		...
	});

You can even use create your own events that you listen to:

var Hook = require('hook-line-sinker');

	hook = new Hook(options);

	hook.emit('tested', function(result)
	{
		...
	});

	hook.on('tested', function(result)
	{
		...
	});