diff options
| author | Jason Miller <[email protected]> | 2017-02-25 15:57:44 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-02-25 15:57:44 -0500 |
| commit | af189c411d79e84ce1f9e349ac5be6a03ff4c55d (patch) | |
| tree | 7b99e39fd7bb7c793ac4f5ce4f591de7e0c6c173 | |
| parent | 3fb2dc21223b414afc6f1fa3c8bc8fc7de2d48d5 (diff) | |
| parent | 1fbe781649b09627935cd68f2446f3e1d572e3be (diff) | |
Merge branch 'master' into master
| -rw-r--r-- | .babelrc | 3 | ||||
| -rw-r--r-- | .editorconfig | 17 | ||||
| -rw-r--r-- | LICENSE.md | 21 | ||||
| -rw-r--r-- | README.md | 89 | ||||
| -rw-r--r-- | package.json | 10 |
5 files changed, 116 insertions, 24 deletions
diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..eaf3238 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015", "stage-0"] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ac0adb7 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +root = true + +[*] +indent_style = tab +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[{package.json,.*rc,*.yml}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false +indent_style = space +indent_size = 2 diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..3b90ec9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Jason Miller + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. @@ -1,29 +1,55 @@ <p align="center"> - <img src="https://i.imgur.com/BqsX9NT.png" width="256" height="256" alt="mitt"> + <img src="https://i.imgur.com/BqsX9NT.png" width="300" height="300" alt="mitt"> <br> - <b>Mitt</b>: tiny 200b functional event emitter / pubsub. - <br> - <a href="https://www.npmjs.org/package/mitt"><img src="https://img.shields.io/npm/v/mitt.svg?style=flat" alt="npm"></a> <a href="https://travis-ci.org/developit/mitt"><img src="https://travis-ci.org/developit/mitt.svg?branch=master" alt="travis"></a> + <a href="https://www.npmjs.org/package/mitt"><img src="https://img.shields.io/npm/v/mitt.svg?style=flat" alt="npm"></a> <a href="https://travis-ci.org/developit/mitt"><img src="https://travis-ci.org/developit/mitt.svg?branch=master" alt="travis"></a> <a href="https://david-dm.org/developit/mitt"><img src="https://david-dm.org/developit/mitt/status.svg" alt="dependencies Status"></a> </p> +# Mitt -## Why Mitt? +> Tiny 200b functional event emitter / pubsub. -- **Microscopic:** weighs less than 200 bytes gzipped -- **Useful:** a wildcard `"*"` event type listens to all events -- **Famliar:** same names & ideas as [Node's EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) -- **Functional:** methods don't rely on `this` -- **Great Name:** somehow [mitt](https://npm.im/mitt) wasn't taken +- **Microscopic:** weighs less than 200 bytes gzipped +- **Useful:** a wildcard `"*"` event type listens to all events +- **Familiar:** same names & ideas as [Node's EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) +- **Functional:** methods don't rely on `this` +- **Great Name:** somehow [mitt](https://npm.im/mitt) wasn't taken -> Mitt was made for the browser, but works in any JavaScript runtime. It has no dependencies and only uses basic language features. It probably works in Internet Explorer 5. +Mitt was made for the browser, but works in any JavaScript runtime. It has no dependencies and supports IE9+. +## Table of Contents +- [Install](#install) +- [Usage](#usage) +- [Examples & Demos](#examples--demos) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) -* * * +## Install +This project uses [node](http://nodejs.org) and [npm](https://npmjs.com). Go check them out if you don't have them locally installed. -## Usage +```sh +$ npm install --save mitt +``` + +Then with a module bundler like [rollup](http://rollupjs.org/) or [webpack](https://webpack.js.org/), use as you would anything else: + +```javascript +// using ES6 modules +import mitt from 'mitt' + +// using CommonJS modules +var mitt = require('mitt') +``` + +The [UMD](https://github.com/umdjs/umd) build is also available on [unpkg](https://unpkg.com): + +```html +<script src="https://unpkg.com/mitt/dist/mitt.umd.js"></script> +``` +You can find the library on `window.mitt`. -After installing via `npm install --save mitt`: +## Usage ```js import mitt from 'mitt' @@ -45,7 +71,13 @@ emitter.on('foo', onFoo) // listen emitter.off('foo', onFoo) // unlisten ``` -* * * +## Examples & Demos + +<a href="http://codepen.io/developit/pen/rjMEwW?editors=0110"> + <b>Preact + Mitt Codepen Demo</b> + <br> + <img src="https://i.imgur.com/CjBgOfJ.png" width="278" alt="preact + mitt preview"> +</a> ## API @@ -53,7 +85,7 @@ emitter.off('foo', onFoo) // unlisten Mitt: Tiny (~200b) functional event emitter / pubsub. -Returns **Mitt** +Returns **Mitt** #### on @@ -82,3 +114,28 @@ If present, `"*"` handlers are invoked prior to type-matched handlers. - `type` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** The event type to invoke - `event` **\[Any]** An event object, passed to each handler + +## Contribute +First off, thanks for taking the time to contribute! +Now, take a moment to be sure your contributions make sense to everyone else. + +### Reporting Issues +Found a problem? Want a new feature? First of all see if your issue or idea has [already been reported](../../issues). +If don't, just open a [new clear and descriptive issue](../../issues/new). + +### Submitting pull requests +Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits. + +- Fork it! +- Clone your fork: `git clone https://github.com/<your-username>/mitt` +- Navigate to the newly cloned directory: `cd mitt` +- Create a new branch for the new feature: `git checkout -b my-new-feature` +- Install the tools necessary for development: `npm install` +- Make your changes. +- Commit your changes: `git commit -am 'Add some feature'` +- Push to the branch: `git push origin my-new-feature` +- Submit a pull request with full remarks documenting your changes. + +## License + +[MIT License](LICENSE.md) © [Jason Miller](https://jasonformat.com/) diff --git a/package.json b/package.json index 16b5b83..a387049 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mitt", "amdName": "mitt", - "version": "1.0.0", + "version": "1.0.1", "description": "Tiny ~200b functional event emitter / pubsub.", "jsnext:main": "src/index.js", "main": "dist/mitt.js", @@ -24,7 +24,7 @@ "eventemitter", "pubsub" ], - "homepage": "httsp://github.com/developit/mitt", + "homepage": "https://github.com/developit/mitt", "authors": [ "Jason Miller <[email protected]>" ], @@ -33,12 +33,6 @@ "src", "dist" ], - "babel": { - "presets": [ - "es2015", - "stage-0" - ] - }, "eslintConfig": { "parser": "babel-eslint", "extends": "eslint:recommended", |
