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

cheet.js

v0.3.3

Published

easy easter eggs (konami code, etc) for your site

Downloads

1,764

Readme

cheet.js Build Status devDependency Status

easy easter eggs in the browser

cheet('↑ ↑ ↓ ↓ ← → ← → b a', function () { alert('Voilà!'); });
cheet('i d d q d', function () {
  alert('god mode enabled');
});
cheet('o n e a t a t i m e', {
  next: function (str, key, num, seq) {
    console.log('key pressed: ' + key);
    console.log('progress: ' + num / seq.length);
    console.log('seq: ' + seq.join(' '));
  },

  fail: function () {
    console.log('sequence failed');
  },

  done: function () {
    console.log('+30 lives ;)');
  }
});
cheet('o n c e', function () {
  console.log('This will only fire once.');
  cheet.disable('o n c e');
});
var sequences = {
  cross: 'up down left right',
  circle: 'left up right down'
};

cheet(sequences.cross);
cheet(sequences.circle);

cheet.done(function (seq) {
  if (seq === sequences.cross) {
    console.log('cross!');
  } else {
    console.log('circle!');
  }
});

Demo

My personal site uses cheet.js (Try the Konami Code)

Install

bower

bower install cheet.js

<script src="/bower_components/cheet.js/cheet.js" type="text/javascript"></script>

component

component install namuol/cheet.js

<script src="/components/namuol-cheet.js/cheet.js" type="text/javascript"></script>

API

cheet(sequence, done | {next,fail,done})

Map a sequence of keypresses to a callback. This can be called multiple times.

sequence (String)

A string representation of a sequence of key names.

Each keyname must be separated by a single space.

done(str, seq) (callback)

A callback to execute each time the sequence is correctly pressed.

Arguments:

  • str - The string representation of the sequence that completed.
  • seq - An array of key names representing the sequence that completed.

fail(str, seq) (callback)

A callback to execute each time a sequence's progress is broken.

Arguments:

  • str - The string representation of the sequence that failed.
  • seq - An array of key names representing the sequence that was pressed.

next(str, key, num, seq) (callback)

A callback to execute each time a correct key in the sequence is pressed in order.

Arguments:

  • str - The string representation of the sequence that is in progress.
  • key - The name of the key that was just pressed.
  • num - A number representing the current progress of the sequence. (starts at 0)
  • seq - An array of key names representing the sequence that is in progress.

cheet.done(callback)

Set a global callback that executes whenever any mapped sequence is completed successfully.

callback(str, seq) (callback)

A callback to execute each time any sequence is correctly pressed.

Arguments:

  • str - The string representation of the sequence that completed.
  • seq - An array of key names representing the sequence that completed.

cheet.next(callback)

Set a global callback that executes whenever any mapped sequence progresses.

callback(str, key, num, seq) (callback)

A callback to execute each time a correct key in any sequence is pressed in order.

Arguments:

  • str - The string representation of the sequence that is in progress.
  • key - The name of the key that was just pressed.
  • num - A number representing the current progress of the sequence. (starts at 0)
  • seq - An array of key names representing the sequence that is in progress.

cheet.fail(callback)

Set a global callback that executes whenever any in-progress sequence is broken.

callback(str, seq) (callback)

A callback to execute each time any sequence's progress is broken.

Arguments:

  • str - The string representation of the sequence that failed.
  • seq - An array of key names representing the sequence that was pressed.

cheet.disable(sequence)

Disable a previously-mapped sequence.

sequence (String)

The same string you used to map the callback when using cheet(seq, ...).

cheet.reset(sequence)

Resets a sequence that may or may not be in progress.

This will not cause fail callbacks to fire, but will effectively cancel the sequence.

sequence (String)

The same string you used to map the callback when using cheet(seq, ...).

Available Key Names

NOTE: Key names are case-sensitive

Directionals

  • left | L |
  • up | U |
  • right | R |
  • down | D |

Alphanumeric

  • 0-9 (main number keys)
  • a-z

Misc

  • backspace
  • tab
  • enter | return
  • shift |
  • control | ctrl |
  • alt | option |
  • command |
  • pause
  • capslock
  • esc
  • space
  • pageup
  • pagedown
  • end
  • home
  • insert
  • delete
  • equal | =
  • comma | ,
  • minus | -
  • period | .

Keypad

  • kp_0-kp_9
  • kp_multiply
  • kp_plus
  • kp_minus
  • kp_decimal
  • kp_divide

Function keys

  • f1-f12

License

MIT

Testing

From the cheet.js' root directory:

grunt test

You can also run the tests directly in your browser:

grunt test.open

Or just view them online.

Acknowledgements

Special thanks to Guilherme J. Tramontina for writing the delicious mocha/chai test suite.


cheet.js was just a fun little one-night project I made to put easter eggs on my personal site.

If you're looking for something more useful/serious, check out Mousetrap.


Analytics