implemented Observablemap
This commit is contained in:
		
							
								
								
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1,3 @@ | ||||
| export * from './lik.stringmap'; | ||||
| export * from './lik.objectmap'; | ||||
| export * from './lik.observablemap'; | ||||
|   | ||||
							
								
								
									
										3
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -5,4 +5,5 @@ function __export(m) { | ||||
| // import modules | ||||
| __export(require("./lik.stringmap")); | ||||
| __export(require("./lik.objectmap")); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsaUJBQWlCO0FBRWpCLHFDQUErQjtBQUMvQixxQ0FBK0IifQ== | ||||
| __export(require("./lik.observablemap")); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsaUJBQWlCO0FBRWpCLHFDQUErQjtBQUMvQixxQ0FBK0I7QUFDL0IseUNBQW1DIn0= | ||||
							
								
								
									
										4
									
								
								dist/lik.objectmap.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/lik.objectmap.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -17,6 +17,10 @@ export declare class Objectmap<T> { | ||||
|      * add object to Objectmap | ||||
|      */ | ||||
|     add(objectArg: T): void; | ||||
|     /** | ||||
|      * like .add but adds an whole array of objects | ||||
|      */ | ||||
|     addArray(objectArrayArg: T[]): void; | ||||
|     /** | ||||
|      * remove object from Objectmap | ||||
|      */ | ||||
|   | ||||
							
								
								
									
										12
									
								
								dist/lik.objectmap.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								dist/lik.objectmap.js
									
									
									
									
										vendored
									
									
								
							| @@ -15,6 +15,14 @@ class Objectmap { | ||||
|     add(objectArg) { | ||||
|         this.objectArray.push(objectArg); | ||||
|     } | ||||
|     /** | ||||
|      * like .add but adds an whole array of objects | ||||
|      */ | ||||
|     addArray(objectArrayArg) { | ||||
|         for (let item of objectArrayArg) { | ||||
|             this.add(item); | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * remove object from Objectmap | ||||
|      */ | ||||
| @@ -42,7 +50,7 @@ class Objectmap { | ||||
|             return resultArray[0]; | ||||
|         } | ||||
|         else { | ||||
|             return undefined; | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
| @@ -59,4 +67,4 @@ class Objectmap { | ||||
|     } | ||||
| } | ||||
| exports.Objectmap = Objectmap; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLm9iamVjdG1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5vYmplY3RtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBOztHQUVHO0FBQ0g7SUFHSTs7T0FFRztJQUNIO1FBTFEsZ0JBQVcsR0FBUSxFQUFFLENBQUE7SUFPN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFNBQVk7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsU0FBWTtRQUNmLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQTtRQUN4QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNoQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDckIsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM5QixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxTQUFZO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsWUFBdUM7UUFDeEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDdkQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFdBQXlDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7SUFDekIsQ0FBQztDQUNKO0FBOURELDhCQThEQyJ9 | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLm9iamVjdG1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5vYmplY3RtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBOztHQUVHO0FBQ0g7SUFHSTs7T0FFRztJQUNIO1FBTFEsZ0JBQVcsR0FBUSxFQUFFLENBQUE7SUFPN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFNBQVk7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsY0FBbUI7UUFDeEIsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsU0FBWTtRQUNmLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQTtRQUN4QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNoQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDckIsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM5QixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxTQUFZO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsWUFBdUM7UUFDeEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDdkQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLElBQUksQ0FBQTtRQUNmLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsV0FBeUM7UUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDQSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0NBQ0o7QUF2RUQsOEJBdUVDIn0= | ||||
							
								
								
									
										16
									
								
								dist/lik.observablemap.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								dist/lik.observablemap.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| /// <reference types="node" /> | ||||
| import * as plugins from './lik.plugins'; | ||||
| import { Objectmap } from './lik.objectmap'; | ||||
| import { Observable } from 'rxjs/Rx'; | ||||
| /** | ||||
|  * bundles an observable with an emitter | ||||
|  */ | ||||
| export interface ObservableEmitterBundle { | ||||
|     observable: plugins.rx.Observable<any>; | ||||
|     emitter: plugins.events.EventEmitter; | ||||
|     event: string; | ||||
| } | ||||
| export declare class Observablemap { | ||||
|     ObservableEmitterBundleObjectmap: Objectmap<ObservableEmitterBundle>; | ||||
|     getObservableForEmitterEvent(emitterArg: plugins.events.EventEmitter, eventArg: string): Observable<any>; | ||||
| } | ||||
							
								
								
									
										27
									
								
								dist/lik.observablemap.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								dist/lik.observablemap.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./lik.plugins"); | ||||
| const lik_objectmap_1 = require("./lik.objectmap"); | ||||
| class Observablemap { | ||||
|     constructor() { | ||||
|         this.ObservableEmitterBundleObjectmap = new lik_objectmap_1.Objectmap(); | ||||
|     } | ||||
|     getObservableForEmitterEvent(emitterArg, eventArg) { | ||||
|         let existingBundle = this.ObservableEmitterBundleObjectmap.find((bundleArg) => { | ||||
|             return (bundleArg.emitter === emitterArg && bundleArg.event === eventArg); | ||||
|         }); | ||||
|         if (existingBundle) { | ||||
|             return existingBundle.observable; | ||||
|         } | ||||
|         else { | ||||
|             let emitterObservable = plugins.rx.Observable.fromEvent(emitterArg, eventArg); | ||||
|             this.ObservableEmitterBundleObjectmap.add({ | ||||
|                 observable: emitterObservable, | ||||
|                 emitter: emitterArg, | ||||
|                 event: eventArg | ||||
|             }); | ||||
|             return emitterObservable; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| exports.Observablemap = Observablemap; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLm9ic2VydmFibGVtYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9saWsub2JzZXJ2YWJsZW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXdDO0FBQ3hDLG1EQUEyQztBQWMzQztJQUFBO1FBQ0kscUNBQWdDLEdBQUcsSUFBSSx5QkFBUyxFQUEyQixDQUFBO0lBa0IvRSxDQUFDO0lBaEJHLDRCQUE0QixDQUFDLFVBQXVDLEVBQUUsUUFBZ0I7UUFDbEYsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVM7WUFDdEUsTUFBTSxDQUFBLENBQUMsU0FBUyxDQUFDLE9BQU8sS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQTtRQUM1RSxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUE7UUFDcEMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzdFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RDLFVBQVUsRUFBRSxpQkFBaUI7Z0JBQzdCLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixLQUFLLEVBQUUsUUFBUTthQUNsQixDQUFDLENBQUE7WUFDRixNQUFNLENBQUMsaUJBQWlCLENBQUE7UUFDNUIsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQW5CRCxzQ0FtQkMifQ== | ||||
							
								
								
									
										2
									
								
								dist/lik.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/lik.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,6 @@ | ||||
| import 'typings-global'; | ||||
| export import q = require('q'); | ||||
| export import events = require('events'); | ||||
| export import lodash = require('lodash'); | ||||
| export import minimatch = require('minimatch'); | ||||
| export import rx = require('rxjs/Rx'); | ||||
|   | ||||
							
								
								
									
										4
									
								
								dist/lik.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/lik.plugins.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,8 @@ | ||||
| "use strict"; | ||||
| require("typings-global"); | ||||
| exports.q = require("q"); | ||||
| exports.events = require("events"); | ||||
| exports.lodash = require("lodash"); | ||||
| exports.minimatch = require("minimatch"); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9saWsucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLHlCQUE4QjtBQUM5QixtQ0FBd0M7QUFDeEMseUNBQThDIn0= | ||||
| exports.rx = require("rxjs/Rx"); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9saWsucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLHlCQUE4QjtBQUM5QixtQ0FBd0M7QUFDeEMsbUNBQXdDO0FBQ3hDLHlDQUE4QztBQUM5QyxnQ0FBcUMifQ== | ||||
| @@ -29,6 +29,7 @@ | ||||
|     "@types/q": "0.x.x", | ||||
|     "lodash": "^4.16.1", | ||||
|     "minimatch": "^3.0.3", | ||||
|     "q": "^1.4.1" | ||||
|     "q": "^1.4.1", | ||||
|     "rxjs": "^5.0.0-beta.12" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										35
									
								
								test/test.js
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								test/test.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										34
									
								
								test/test.ts
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								test/test.ts
									
									
									
									
									
								
							| @@ -1,13 +1,18 @@ | ||||
| import 'typings-test' | ||||
| import lik = require('../dist/index') | ||||
| import * as events from 'events' | ||||
| import * as rx from 'rxjs/Rx' | ||||
| import * as should from 'should' | ||||
|  | ||||
| import lik = require('../dist/index') | ||||
| describe('lik',function(){ | ||||
|     describe('Stringmap',function(){ | ||||
|         let testStringmap: lik.Stringmap | ||||
|         let testString1 = 'testString1' | ||||
|         let testString2 = 'testString2' | ||||
|         let testString3 = 'testString3' | ||||
|         let testString4 = 'testString4' | ||||
|         let testString5 = 'testString5' | ||||
|         let testString6 = 'testString6' | ||||
|         it('should create an instance of Stringmap',function(){ | ||||
|             testStringmap = new lik.Stringmap() | ||||
|             should(testStringmap).be.instanceof(lik.Stringmap) | ||||
| @@ -26,6 +31,10 @@ describe('lik',function(){ | ||||
|             should(testStringmap.checkMinimatch('*String2')).be.true() | ||||
|             should(testStringmap.checkMinimatch('*String4')).be.false() | ||||
|         }) | ||||
|         it('should add an array of strings',function(){ | ||||
|             testStringmap.addStringArray([testString4,testString5,testString6]) | ||||
|             should(testStringmap.checkMinimatch('*String4')).be.true() | ||||
|         }) | ||||
|         it('should remove a string from Stringmap',function(){ | ||||
|             testStringmap.removeString(testString2) | ||||
|             should(testStringmap.checkString(testString2)).be.false() | ||||
| @@ -86,4 +95,27 @@ describe('lik',function(){ | ||||
|             should(myObject === referenceObject).be.true() | ||||
|         }) | ||||
|     }) | ||||
|     describe('Observablemap',function(){ | ||||
|         let testObservablemap: lik.Observablemap | ||||
|         let testObservable1: rx.Observable<any> | ||||
|         let testObservable2: rx.Observable<any> | ||||
|         let testObservable3: rx.Observable<any> | ||||
|         let testEmitter: events.EventEmitter | ||||
|         it('should create an instance',function(){ | ||||
|             testObservablemap = new lik.Observablemap() | ||||
|             should(testObservablemap).be.instanceof(lik.Observablemap) | ||||
|         }) | ||||
|         it('should accept a new emitter',function(done) { | ||||
|             testEmitter = new events.EventEmitter() | ||||
|             testObservable1 = testObservablemap.getObservableForEmitterEvent(testEmitter,'event1') | ||||
|             testObservable1.subscribe(x => { | ||||
|                 done() | ||||
|             }) | ||||
|             testObservable2 = testObservablemap.getObservableForEmitterEvent(testEmitter,'event1') | ||||
|             testObservable3 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event2') | ||||
|             should(testObservable1 === testObservable2).be.true() | ||||
|             should(testObservable1 === testObservable3).be.false() | ||||
|             testEmitter.emit('event1') | ||||
|         }) | ||||
|     }) | ||||
| }) | ||||
|   | ||||
| @@ -4,3 +4,4 @@ import * as plugins from './lik.plugins' | ||||
|  | ||||
| export * from './lik.stringmap' | ||||
| export * from './lik.objectmap' | ||||
| export * from './lik.observablemap' | ||||
|   | ||||
| @@ -28,6 +28,15 @@ export class Objectmap<T> { | ||||
|         this.objectArray.push(objectArg) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * like .add but adds an whole array of objects | ||||
|      */ | ||||
|     addArray(objectArrayArg: T[]) { | ||||
|         for (let item of objectArrayArg) { | ||||
|             this.add(item) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * remove object from Objectmap | ||||
|      */ | ||||
| @@ -56,7 +65,7 @@ export class Objectmap<T> { | ||||
|         if (resultArray.length > 0) { | ||||
|             return resultArray[0] | ||||
|         } else { | ||||
|             return undefined | ||||
|             return null | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
							
								
								
									
										35
									
								
								ts/lik.observablemap.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								ts/lik.observablemap.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| import * as plugins from './lik.plugins' | ||||
| import { Objectmap } from './lik.objectmap' | ||||
| import { Stringmap } from './lik.stringmap' | ||||
| import { Observable } from 'rxjs/Rx' | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * bundles an observable with an emitter | ||||
|  */ | ||||
| export interface ObservableEmitterBundle { | ||||
|     observable: plugins.rx.Observable<any> | ||||
|     emitter: plugins.events.EventEmitter | ||||
|     event: string | ||||
| } | ||||
|  | ||||
| export class Observablemap { | ||||
|     ObservableEmitterBundleObjectmap = new Objectmap<ObservableEmitterBundle>() | ||||
|  | ||||
|     getObservableForEmitterEvent(emitterArg: plugins.events.EventEmitter, eventArg: string) { | ||||
|         let existingBundle = this.ObservableEmitterBundleObjectmap.find((bundleArg) => { | ||||
|             return(bundleArg.emitter === emitterArg && bundleArg.event === eventArg) | ||||
|         }) | ||||
|         if (existingBundle) { | ||||
|             return existingBundle.observable | ||||
|         } else { | ||||
|             let emitterObservable = plugins.rx.Observable.fromEvent(emitterArg, eventArg) | ||||
|             this.ObservableEmitterBundleObjectmap.add({ | ||||
|                 observable: emitterObservable, | ||||
|                 emitter: emitterArg, | ||||
|                 event: eventArg | ||||
|             }) | ||||
|             return emitterObservable | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,4 +1,6 @@ | ||||
| import 'typings-global' | ||||
| export import q = require('q') | ||||
| export import events = require('events') | ||||
| export import lodash = require('lodash') | ||||
| export import minimatch = require('minimatch') | ||||
| export import rx = require('rxjs/Rx') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user