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

muddler

v1.5.13

Published

A minifier for hackmud scripts

Downloads

60

Readme

Muddler

Transpile, Unit Test, and Minify your hackmud scripts (TypeScript or JavaScript) with ease. Works with hackmud version 1.4.10

Changelog - most recent entry

1.5.0 - 2017-10-25

Added

  • TypeScript testing support! You can now write .test.ts files instead of test.js files. #2
  • Added '-t' option to specify a testing directory. #1
  • Added '-R' option to specify a custom mocha reporter

Fixed

  • Temp files are now removed like they should be.
  • Temp files are now created in the same directory as the source script, to make unit testing easier. #3
  • -V option returns the correct version now. #4
  • Mocha was caching testing results and returning false positives. We now run Mocha in a child process, and errors are reported as expected.

Changed

  • We all needed a little more Nyan in our lives.
  • Debounced testing while watching to 2000ms per file so transpiled ts files don't triggler double muddling.
  • Modifying a test while watching re-runs the target file. #5

Full changelog can be found here

Prerequisites

This project requires Java 7+ and Google's Closure Compiler on your PATH to function.

Installation

npm install muddler -g

Usage

    -V, --version                output the version number
    -o, --out-file <filename>    the name of the output file
    -w, --watch                  watch the current directory for changes
    -W, --watch-dir <directory>  watch the provided directory for changes
    -d, --out-dir <directory>    what directory to save files to
    -c, --config <filename>      the location of your config file (defaults to muddle.json in the current directory)
    -v, --verbose                increase program verbosity. Good for debugging, or checking for sneaky hacks.
    -q, --quiet                  disable all program output
    -s, --skip-tests             skip tests if they exist
    -t, --test-dir <directory>   the directory to search for tests.
    -R, --reporter <reporter>    Pass this in if you want to use a different mocha test reporter
    -h, --help                   output usage information

Examples:

muddle -W C:\dev\hackmud -d C:\User\1337H4x0r\AppData\Roaming\hackmud\1337H4x0r\scripts

This will watch C:\dev\hackmud for changes to *.ts and *.js files, run any *.test.js files, and then write *_mud.js files to your hackmud folder. I think this is the most useful option.

muddle

This will watch the current working directory for changes to *.ts and *.js files, run any *.test and write *_mud.js files to the current directory.

muddle <filename>

This will test <filename>.test.js, and then write a minified <filename>_mud.js to the current directory.

Testing

[New Feature] If you don't want to clutter up your scripts folder with tests, you can now create a test directory to store your tests in. You still need to follow the <filename>.test.(t|j)s naming convention. Don't like the 'test' dir? Add -t and specify your own test folder name

If you wish to unit test your files, create a test file with the same name as your script, but with an extension of .test.js. ~~I'll hopefully add support for writing tests in TypeScript someday, but today is not that day.~~ Done. Write unit tests as you normally would for Mocha, with the following exceptions:

  • anywhere you would use '#', use '$' instead.
  • at the top of your file add const window = {}
  • to call the main function in your script, call muddled(context, args)
  • remember that you're going to have to mock context, args, $fs.scripts.lib(), etc..

See sample.test.ts for simple example of testing

Config file

Create a muddle.json file in your development directory (!!not AppData/hackmud/user/scripts !!) muddle your life. The available settings are the options for the program, but camelCased instead of kebab-cased. e.g.

{
  "watchDir": "C:\dev\hackmud" 
  "outDir": "C:\User\1337H4x0r\AppData\Roaming\hackmud\1337H4x0r\scripts"
}

Caveats

  • The Clojure Compiler (v20170910) is still working to support all of es6. One thing they do NOT support yet is array destructuring. You'll have to manually edit your script to rename your variables to non-clashing variables if you use destructuring.
  • If you wish to preserve your object property names, provide them as strings.
  • I haven't tested this with scripts that use the DB. If you run into problems, please make an issue on the github repo and I'll fix it asap.
  • For now, if you want to do testing, you have to save the test files in the same folder as your .ts/.js scripts.

Credits

This project was inspired by Gerow's Mudify. (@gerow on hackmud). The testing portion of the project was blatantly stolen from Jer0ge's hackmud-unit-poc.

I'm typically playing as @s1mply_me on hackmud go by Jolley in the Discord channel Feel free to hit me up (or even send some sweet sweet GC my way ;) ).

What's next?

So, you've got a muddler, but no scripts to muddle? Get started scripting with this excellent guide by @ciastex_ and @i20k.