diff --git a/package.json b/package.json index 16b5b83..8950d33 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "clean": "rimraf dist && mkdirp dist", "rollup:cjs": "rollup -c rollup.config.js -m -f cjs -n $npm_package_amdName $npm_package_jsnext_main -o $npm_package_main", "rollup:umd": "rollup -c rollup.config.js -m -f umd -n $npm_package_amdName $npm_package_jsnext_main -o $npm_package_umd_main", - "minify:cjs": "uglifyjs $npm_package_main -cm toplevel -o $npm_package_main -p relative --in-source-map ${npm_package_main}.map --source-map ${npm_package_main}.map", + "minify:cjs": "uglifyjs $npm_package_main -cm toplevel --reserved mitt -o $npm_package_main -p relative --in-source-map ${npm_package_main}.map --source-map ${npm_package_main}.map", "minify:umd": "uglifyjs $npm_package_umd_main -cm -o $npm_package_umd_main -p relative --in-source-map ${npm_package_umd_main}.map --source-map ${npm_package_umd_main}.map", "docs": "documentation readme src/index.js --section API -q", "size": "echo \"Gzipped Size: $(strip-json-comments --no-whitespace $npm_package_main | gzip-size | pretty-bytes)\"", @@ -48,7 +48,11 @@ "es6": true }, "globals": { - "expect": true + "expect": true, + "module": true + }, + "rules": { + "no-empty": 0 } }, "devDependencies": { diff --git a/src/index.js b/src/index.js index 36b25f1..b833e3f 100644 --- a/src/index.js +++ b/src/index.js @@ -2,15 +2,9 @@ * @name mitt * @returns {Mitt} */ -export default function mitt(all) { +function mitt() { // Arrays of event handlers, keyed by type - all = all || {}; - - // Get or create a named handler list - function list(type) { - let t = type.toLowerCase(); - return all[t] || (all[t] = []); - } + let all = {}; return { @@ -20,7 +14,7 @@ export default function mitt(all) { * @memberof mitt */ on(type, handler) { - list(type).push(handler); + (all[type = type.toLowerCase()] || (all[type] = [])).push(handler); }, /** Remove an event handler for the given type. @@ -29,9 +23,8 @@ export default function mitt(all) { * @memberof mitt */ off(type, handler) { - let e = list(type), - i = e.indexOf(handler); - if (~i) e.splice(i, 1); + let e = all[type = type.toLowerCase()] || (all[type] = []); + e.splice(e.indexOf(handler)>>>0, 1); }, /** Invoke all handlers for the given type. @@ -41,7 +34,9 @@ export default function mitt(all) { * @memberof mitt */ emit(type, event) { - list('*').concat(list(type)).forEach( f => { f(event); }); + (all[type = type.toLowerCase()] || []).map( f => { f(event); }); + (all['*'] || []).map( f => { f(type, event); }); } }; } +try { module.exports = mitt; }catch(e){}

AltStyle によって変換されたページ (->オリジナル) /