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

armageddon

v2.0.0

Published

If you want to know what the heck is going on in your ridiculously bloated code base, this module is for you. However, use at your own risk.

Downloads

43

Readme

Armageddon

Introduction

Inject a console.log marker into every single multi-line function of your JavaScript application, so that you can trace the flow of your program.

Especially useful for large, bloated and convoluted code bases.

WARNING: This module changes your code base directly (meaning actual files have their contents changed), be very very careful when using this module. The best thing to do before running this module would be to backup your code base and all its recent changes using some kind of version control system.

Note that only files with a .js suffix are changed.

Installation

npm install -g armageddon

Usage

Quick Start

cd path/to/directory/of/js/files
git stash
git checkout -b boom
armageddon ./
git stash save --keep-index
git stash drop
git branch -D boom

Breakdown of commands

Start at the directory of js files you want to trace flow through.

cd path/to/directory/of/js/files

Backup current code base. This uses git, but use whatever version control system you want.

git stash
git checkout -b boom

Run armageddon.

armageddon ./ # you may specify any relative path in place of "./"

This will:

  1. Trigger a recursive search for JavaScript files at the target location, by using the .js suffix of each file.
  2. Inject a console.log('ARMA[marker]') line into every single multi-line function in each of these files.

When the files are then run using node, ARMA[marker]s will then be printed into the logs as you move through the code base. This will allow you to trace the flow through your code base, something especially useful for code bases that are extremely convoluted.

After the problem has been identified, revert back to the original code base without the vandalism.

git stash save --keep-index
git stash drop
git branch -D boom

Result of using the module

Example of what happens to the code base.

Original:

// example.js

function x(arg1, arg2) {
	var x = 2
	return x + x
}

() => {
	return 'I am an anonymous function'
}

New:

// example.js

function x(arg1, arg2) {console.log('ARMA1');
	var x = 2
	return x + x
}

() => {

	console.log('ARMA2');

	return 'I am an anonymous function'
}

Testing

npm run test