add loop tracker

This commit is contained in:
2017-07-05 14:29:08 +02:00
parent 217252de1e
commit 281cfdc38a
16 changed files with 298 additions and 164 deletions

View File

@ -2,6 +2,7 @@ import * as plugins from './lik.plugins'
// import modules
export * from './lik.stringmap'
export * from './lik.looptracker'
export * from './lik.objectmap'
export * from './lik.observablemap'
export * from './lik.stringmap'

18
ts/lik.looptracker.ts Normal file
View File

@ -0,0 +1,18 @@
import * as plugins from './lik.plugins'
import { Objectmap } from './lik.objectmap'
export class LoopTracker<T> {
referenceObjectMap = new Objectmap<any>()
constructor () {
// nothing here
}
/**
* checks and tracks an object
* @param objectArg
*/
checkAndTrack (objectArg: T) {
return this.referenceObjectMap.add(objectArg)
}
}

View File

@ -23,9 +23,18 @@ export class Objectmap<T> {
/**
* add object to Objectmap
* returns false if the object is already in the map
* returns true if the object was added successfully
*/
add (objectArg: T) {
this.objectArray.push(objectArg)
add (objectArg: T): boolean {
if (this.checkForObject(objectArg)) {
// the object is already in the objectmap
return false
} else {
// the object is not yet in the objectmap
this.objectArray.push(objectArg)
return true
}
}
/**

View File

@ -6,10 +6,10 @@ export import minimatch = require('minimatch')
export import rx = require('rxjs/Rx')
// workaround
import {Operator} from 'rxjs/Operator';
import {Observable} from 'rxjs/Observable';
import {Operator} from 'rxjs/Operator'
import {Observable} from 'rxjs/Observable'
declare module 'rxjs/Subject' {
interface Subject<T> {
lift<R>(operator: Operator<T, R>): Observable<R>;
lift<R>(operator: Operator<T, R>): Observable<R>
}
}