easy-eventbus
Advanced tools
Comparing version 0.1.2 to 0.2.0
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.eventBus=t():e.eventBus=t()}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){this.subscribers=[],this.id=0,this.count=0},i=function(e,t){this.listeners.push({key:e,func:t})},s=function(e){this.listeners=this.listeners.filter(function(t){return t.key!==e})},o=function(){return this.listeners};n.prototype.createSubscriber=function(){this.count+=1,this.$emit("create"),this.id+=1;var e=this.id,t={addListener:i,removeListener:s,getListener:o,listeners:[]};return Object.defineProperty(t,"id",{value:e,writable:!1}),this.subscribers.push(t),this.subscribers[this.subscribers.length-1]},n.prototype.$emit=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.subscribers.forEach(function(t){var n=t.listeners.find(function(t){return t.key===e});n&&n.func.apply(n,r)})},n.prototype.dispatch=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.$emit.apply(this,[e].concat(r))},n.prototype.removeSubscriber=function(e){var t=this;return this.subscribers.some(function(r,n){return r.id===e&&(t.subscribers[n]=null,t.subscribers.splice(n,1),t.count-=1,!0)})},n.prototype.removeAllSubscriber=function(){this.count=0,this.subscribers=[]},n.prototype.getSubscriber=function(e){return e?this.subscribers.filter(function(t){return t.id===e})[0]:this.subscribers},t.default=n}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.eventBus=t():e.eventBus=t()}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);var n=function(e,t){var r=0;this.listeners.some(function(t,n){var i=t.type===e;return i&&(r=n),i})?this.listeners[r]={type:e,func:t}:this.listeners.push({type:e,func:t})},i=function(e){this.listeners=this.listeners.filter(function(t){return t.type!==e})},s=function(){return this.listeners},u=function(){this.createSubscriber=function(){this.count+=1,this.$emit("create"),this.id+=1;var e=this.id,t={addListener:n,removeListener:i,getListener:s,listeners:[]};return Object.defineProperty(t,"id",{value:e,writable:!1}),this.subscribers.push(t),this.subscribers[this.subscribers.length-1]},this.$emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];this.subscribers.forEach(function(r){r.listeners.some(function(r){if(r.type===e)return r.func.apply(r,t),!0})})},this.dispatch=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];this.$emit.apply(this,[e].concat(t))},this.removeSubscriber=function(e){var t=this;return this.subscribers.some(function(r,n){return r.id===e&&(t.subscribers[n]=null,t.subscribers.splice(n,1),t.count-=1,!0)})},this.removeAllSubscriber=function(){this.count=0,this.subscribers=[]},this.getSubscriber=function(e){return e?this.subscribers.filter(function(t){return t.id===e})[0]:this.subscribers},this.subscribers=[],this.id=0,this.count=0};t.default=u}])}); |
{ | ||
"name": "easy-eventbus", | ||
"version": "0.1.2", | ||
"version": "0.2.0", | ||
"description": "this is a library for eventbus", | ||
@@ -46,2 +46,3 @@ "main": "index.js", | ||
"karma-mocha": "^1.3.0", | ||
"karma-remap-coverage": "^0.1.5", | ||
"karma-sourcemap-loader": "^0.3.7", | ||
@@ -60,5 +61,7 @@ "karma-spec-reporter": "^0.0.32", | ||
"dependencies": { | ||
"babel-polyfill": "^6.26.0" | ||
"babel-polyfill": "^6.26.0", | ||
"ts-loader": "^5.3.2", | ||
"typescript": "^3.2.2" | ||
}, | ||
"pluginName": "eventBus" | ||
} |
@@ -11,7 +11,4 @@ const webpack = require('webpack') | ||
// list of files / patterns to load in the browser | ||
files: [ | ||
'./index.js' | ||
], | ||
files: ['./index.js'], | ||
@@ -21,3 +18,4 @@ // preprocess matching files before serving them to the browser | ||
preprocessors: { | ||
'./index.js': ['webpack', 'sourcemap'] | ||
'./index.js': ['webpack', 'sourcemap'], | ||
'./index.ts': ['coverage'] | ||
}, | ||
@@ -33,4 +31,5 @@ | ||
'karma-sourcemap-loader', | ||
'karma-coverage-istanbul-reporter', | ||
'karma-coverage' | ||
// 'karma-coverage-istanbul-reporter', | ||
'karma-coverage', | ||
'karma-remap-coverage' | ||
], | ||
@@ -41,4 +40,9 @@ | ||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter | ||
reporters: ['spec', 'coverage-istanbul'], | ||
reporters: ['spec', 'progress', 'coverage', 'remap-coverage'], | ||
remapCoverageReporter: { | ||
// 'text-summary': null, | ||
html: './coverage/html', | ||
cobertura: './coverage/cobertura.xml' | ||
}, | ||
@@ -48,7 +52,5 @@ // web server port | ||
// enable / disable colors in the output (reporters and logs) | ||
colors: true, | ||
// level of logging | ||
@@ -58,7 +60,5 @@ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG | ||
// enable / disable watching file and executing tests whenever any file changes | ||
autoWatch: true, | ||
// start these browsers | ||
@@ -68,3 +68,2 @@ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher | ||
// Continuous Integration mode | ||
@@ -103,8 +102,19 @@ // if true, Karma captures browsers, runs the tests and exits | ||
resolve: { | ||
extensions: ['.tsx', '.ts', '.js'] | ||
}, | ||
module: { | ||
rules: [ | ||
{ | ||
test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ | ||
test: /\.tsx?$/, | ||
use: 'ts-loader', | ||
exclude: /node_modules/ | ||
}, | ||
{ | ||
test: /\.js$/, | ||
loader: 'babel-loader', | ||
exclude: /node_modules/ | ||
}, | ||
{ | ||
test: /\.(js)$/, | ||
@@ -111,0 +121,0 @@ loader: 'istanbul-instrumenter-loader', |
import eventBus from './../../src/eventBus' | ||
describe('Event bus', () => { | ||
describe('observer', () => { | ||
@@ -51,8 +50,7 @@ let OBJ = {} | ||
it("the id of the sub cannot be deleted", () => { | ||
it('the id of the sub cannot be deleted', () => { | ||
expect(SUB.id).to.exist | ||
try { | ||
delete SUB.id | ||
} catch (error) { | ||
} | ||
} catch (error) {} | ||
expect(SUB.id).to.exist | ||
@@ -78,3 +76,3 @@ }) | ||
it('covered function', (done) => { | ||
it('covered function', done => { | ||
let value = 0 | ||
@@ -103,3 +101,3 @@ SUB.addListener('update', () => { | ||
it('dispatch callback', (done) => { | ||
it('dispatch callback', done => { | ||
SUB.addListener('update', () => { | ||
@@ -112,3 +110,3 @@ expect('ok').to.be.ok | ||
it('transfer params', (done) => { | ||
it('transfer params', done => { | ||
SUB.addListener('update', (p1, p2) => { | ||
@@ -122,3 +120,3 @@ expect(p1).to.equal(1) | ||
it('remove handle', (done) => { | ||
it('remove listener', done => { | ||
let i = 0 | ||
@@ -137,3 +135,32 @@ SUB.addListener('update', () => { | ||
}) | ||
it('remove all listeners', done => { | ||
let i = 0 | ||
SUB.addListener('update', () => { | ||
if (i > 3) return | ||
i += 1 | ||
}) | ||
SUB.addListener('update2', () => { | ||
if (i > 3) return | ||
i += 1 | ||
SUB.removeAllListener() | ||
OBJ.dispatch('update2') | ||
}) | ||
OBJ.dispatch('update') | ||
OBJ.dispatch('update2') | ||
setTimeout(() => { | ||
expect(i).to.equal(2) | ||
done() | ||
}, 1000) | ||
}) | ||
it('no match type', done => { | ||
SUB.addListener('update2', () => { | ||
done(false) | ||
}) | ||
setTimeout(() => { | ||
done() | ||
}, 16) | ||
}) | ||
}) | ||
}) |
@@ -7,3 +7,3 @@ const path = require('path') | ||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin') | ||
const ExtractTextPlugin = require("extract-text-webpack-plugin") | ||
const ExtractTextPlugin = require('extract-text-webpack-plugin') | ||
const HtmlWebpackPlugin = require('html-webpack-plugin') | ||
@@ -23,21 +23,25 @@ const pkg = require('./package.json') | ||
const entry = isDevelopment ? { | ||
app: path.resolve(rootPath, 'src', 'index.js') | ||
} : { | ||
app: path.resolve(rootPath, 'src', `${pluginName}.js`) | ||
} | ||
const entry = isDevelopment | ||
? { | ||
app: path.resolve(rootPath, 'src', 'index.ts') | ||
} | ||
: { | ||
app: path.resolve(rootPath, 'src', `${pluginName}.ts`) | ||
} | ||
const output = isDevelopment ? { | ||
filename: 'index.js', | ||
path: path.resolve(rootPath, 'dist') | ||
} : { | ||
filename: `${pluginName}.js`, | ||
path: path.resolve(rootPath, 'dist'), | ||
library: { | ||
root: pluginName, | ||
amd: pluginName, | ||
commonjs: pluginName | ||
}, | ||
libraryTarget: 'umd' | ||
} | ||
const output = isDevelopment | ||
? { | ||
filename: 'index.js', | ||
path: path.resolve(rootPath, 'dist') | ||
} | ||
: { | ||
filename: `${pluginName}.js`, | ||
path: path.resolve(rootPath, 'dist'), | ||
library: { | ||
root: pluginName, | ||
amd: pluginName, | ||
commonjs: pluginName | ||
}, | ||
libraryTarget: 'umd' | ||
} | ||
@@ -57,5 +61,14 @@ const config = { | ||
resolve: { | ||
extensions: ['.tsx', '.ts', '.js'] | ||
}, | ||
module: { | ||
rules: [ | ||
{ | ||
test: /\.tsx?$/, | ||
use: 'ts-loader', | ||
exclude: /node_modules/ | ||
}, | ||
{ | ||
test: /\.js$/, | ||
@@ -75,10 +88,8 @@ loader: 'eslint-loader', | ||
test: /\.scss$/, | ||
use: isDevelopment ? [ | ||
{ loader: 'style-loader' }, | ||
{ loader: 'css-loader' }, | ||
{ loader: 'sass-loader' } | ||
] : ExtractTextPlugin.extract({ | ||
fallback: 'style-loader', | ||
use: ['css-loader', 'sass-loader'] | ||
}) | ||
use: isDevelopment | ||
? [{ loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader' }] | ||
: ExtractTextPlugin.extract({ | ||
fallback: 'style-loader', | ||
use: ['css-loader', 'sass-loader'] | ||
}) | ||
} | ||
@@ -88,14 +99,16 @@ ] | ||
plugins: [].concat(isDevelopment ? | ||
defaultPlugin : | ||
[ | ||
new UglifyJsPlugin({ | ||
uglifyOptions: { | ||
ie8: true | ||
} | ||
}), | ||
new ExtractTextPlugin("styles.css") | ||
]) | ||
plugins: [].concat( | ||
isDevelopment | ||
? defaultPlugin | ||
: [ | ||
new UglifyJsPlugin({ | ||
uglifyOptions: { | ||
ie8: true | ||
} | ||
}), | ||
new ExtractTextPlugin('styles.css') | ||
] | ||
) | ||
} | ||
module.exports = config |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
110673
31
1512
3
35
+ Addedts-loader@^5.3.2
+ Addedtypescript@^3.2.2
+ Addedansi-styles@3.2.1(transitive)
+ Addedarr-diff@4.0.0(transitive)
+ Addedarr-flatten@1.1.0(transitive)
+ Addedarr-union@3.1.0(transitive)
+ Addedarray-unique@0.3.2(transitive)
+ Addedassign-symbols@1.0.0(transitive)
+ Addedatob@2.1.2(transitive)
+ Addedbase@0.11.2(transitive)
+ Addedbig.js@5.2.2(transitive)
+ Addedbraces@2.3.2(transitive)
+ Addedcache-base@1.0.1(transitive)
+ Addedchalk@2.4.2(transitive)
+ Addedclass-utils@0.3.6(transitive)
+ Addedcollection-visit@1.0.0(transitive)
+ Addedcolor-convert@1.9.3(transitive)
+ Addedcolor-name@1.1.3(transitive)
+ Addedcomponent-emitter@1.3.1(transitive)
+ Addedcopy-descriptor@0.1.1(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddecode-uri-component@0.2.2(transitive)
+ Addeddefine-property@0.2.51.0.02.0.2(transitive)
+ Addedemojis-list@3.0.0(transitive)
+ Addedenhanced-resolve@4.5.0(transitive)
+ Addederrno@0.1.8(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedexpand-brackets@2.1.4(transitive)
+ Addedextend-shallow@2.0.13.0.2(transitive)
+ Addedextglob@2.0.4(transitive)
+ Addedfill-range@4.0.0(transitive)
+ Addedfor-in@1.0.2(transitive)
+ Addedfragment-cache@0.2.1(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-value@2.0.6(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas-flag@3.0.0(transitive)
+ Addedhas-value@0.3.11.0.0(transitive)
+ Addedhas-values@0.1.41.0.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-accessor-descriptor@1.0.1(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedis-data-descriptor@1.0.1(transitive)
+ Addedis-descriptor@0.1.71.0.3(transitive)
+ Addedis-extendable@0.1.11.0.1(transitive)
+ Addedis-number@3.0.0(transitive)
+ Addedis-plain-object@2.0.4(transitive)
+ Addedis-windows@1.0.2(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedisobject@2.1.03.0.1(transitive)
+ Addedjson5@1.0.2(transitive)
+ Addedkind-of@3.2.24.0.06.0.3(transitive)
+ Addedloader-utils@1.4.2(transitive)
+ Addedmap-cache@0.2.2(transitive)
+ Addedmap-visit@1.0.0(transitive)
+ Addedmemory-fs@0.5.0(transitive)
+ Addedmicromatch@3.1.10(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmixin-deep@1.3.2(transitive)
+ Addedms@2.0.0(transitive)
+ Addednanomatch@1.2.13(transitive)
+ Addedobject-copy@0.1.0(transitive)
+ Addedobject-visit@1.0.1(transitive)
+ Addedobject.pick@1.3.0(transitive)
+ Addedpascalcase@0.1.1(transitive)
+ Addedposix-character-classes@0.1.1(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedprr@1.0.1(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedregex-not@1.0.2(transitive)
+ Addedrepeat-element@1.1.4(transitive)
+ Addedrepeat-string@1.6.1(transitive)
+ Addedresolve-url@0.2.1(transitive)
+ Addedret@0.1.15(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsafe-regex@1.1.0(transitive)
+ Addedsemver@5.7.2(transitive)
+ Addedset-value@2.0.1(transitive)
+ Addedsnapdragon@0.8.2(transitive)
+ Addedsnapdragon-node@2.1.1(transitive)
+ Addedsnapdragon-util@3.0.1(transitive)
+ Addedsource-map@0.5.7(transitive)
+ Addedsource-map-resolve@0.5.3(transitive)
+ Addedsource-map-url@0.4.1(transitive)
+ Addedsplit-string@3.1.0(transitive)
+ Addedstatic-extend@0.1.2(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedsupports-color@5.5.0(transitive)
+ Addedtapable@1.1.3(transitive)
+ Addedto-object-path@0.3.0(transitive)
+ Addedto-regex@3.0.2(transitive)
+ Addedto-regex-range@2.1.1(transitive)
+ Addedts-loader@5.4.5(transitive)
+ Addedtypescript@3.9.10(transitive)
+ Addedunion-value@1.0.1(transitive)
+ Addedunset-value@1.0.0(transitive)
+ Addedurix@0.1.0(transitive)
+ Addeduse@3.1.1(transitive)
+ Addedutil-deprecate@1.0.2(transitive)