https://github.com/alvarocastro/eggster
Super fast library to add easter eggs!
https://github.com/alvarocastro/eggster
easter-egg
Last synced: about 2 months ago
JSON representation
Super fast library to add easter eggs!
- Host: GitHub
- URL: https://github.com/alvarocastro/eggster
- Owner: alvarocastro
- License: mit
- Created: 2020-12-07T00:02:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T20:02:42.000Z (over 3 years ago)
- Last Synced: 2025-10-11T01:45:42.533Z (9 months ago)
- Topics: easter-egg
- Language: JavaScript
- Homepage:
- Size: 518 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Eggster
[](https://www.npmjs.com/package/eggster)
[](https://github.com/alvarocastro/eggster/actions?query=workflow%3Abuild)
[](https://codeclimate.com/github/alvarocastro/eggster/maintainability)
[](https://coveralls.io/github/alvarocastro/eggster?branch=master)
[](https://bundlephobia.com/result?p=eggster)
[](https://github.com/xojs/xo)
[](https://github.com/semantic-release/semantic-release)
Simple, fast and lightweight library to create easter eggs triggered by a sequence of keyboard keys pressed.
Since easter eggs are just for fun and not intended to improve an application, the library aims to be as light as possible by having a small file size (zero dependencies) but also by being fast, it only binds a single event listener to the `document` no matter how many easter eggs are registered while also using raw key codes to avoid extra processing.
- [Install](#install)
- [Usage](#usage)
- [Contributing](#contributing)
- [Support](#support)
## Install
```bash
npm install eggster
```
## Usage
```js
const eggster = require('eggster');
// Code "eggster"
eggster.add('69,71,71,83,84,69,82', () => {
console.log('Found it!');
});
```
### eggster.add(code, fn, options = {})
Registers an easter egg that tiggers the `fn` callback when activated.
#### code
Type: `String`
String containing the individual key codes separated by commas.
#### fn
Type: `Function`
Callback that fires when the sequence is pressed.
#### options
Type: `Object`
Default: `{}`
Object of options to configure the behaviour of the code.
##### options.timeout
Type: `Number`
Default: `2000`
Maximum time to wait between each key pressed before restarting the progress.
Use `0` for no timeout.
##### options.once
Type: `Boolean`
Default: `false`
Flag to indicate if the code should run only the first time is completed, subsequent times will be ignored.
### eggster.remove(code)
Removes a code previously registered.
### eggster.teardown()
Removes all the codes and unbinds the keyboard event.
## Contributing
Contributions are always welcome! Please run `npm test` beforehand to ensure everything is ok.
## Support
If you use this package please consider starring it :)