From c0a3d72212650224b3a45bd966c4241786cc5a87 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: 2017年1月16日 22:39:56 -0500 Subject: [PATCH 1/2] Export a crazy commonjs / globals thing that is small (need to check that this works with Webpack) --- package.json | 8 ++++++-- src/index.js | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) 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..8ea1ae4 100644 --- a/src/index.js +++ b/src/index.js @@ -2,15 +2,15 @@ * @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 { @@ -45,3 +45,4 @@ export default function mitt(all) { } }; } +try { module.exports = mitt; }catch(e){} From 3a675c7e5a5f7a9a629b59a9dd6e753c6393b36d Mon Sep 17 00:00:00 2001 From: Jason Miller Date: 2017年1月16日 22:40:34 -0500 Subject: [PATCH 2/2] Even smaller. --- src/index.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/index.js b/src/index.js index 8ea1ae4..b833e3f 100644 --- a/src/index.js +++ b/src/index.js @@ -4,12 +4,6 @@ */ function mitt() { // Arrays of event handlers, keyed by type - - // 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 @@ function mitt() { * @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 @@ function mitt() { * @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,8 @@ function mitt() { * @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); }); } }; }

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