1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/src/lib/services/client-metrics/projection.ts

34 lines
850 B
TypeScript
Raw Normal View History

import { IYesNoCount } from './models';
2016-11-04 16:16:55 +01:00
export class Projection {
store: Record<string, IYesNoCount> = {};
2016-11-04 16:16:55 +01:00
getProjection(): Record<string, IYesNoCount> {
2016-11-04 16:16:55 +01:00
return this.store;
}
add(name: string, countObj: IYesNoCount): void {
2016-11-04 16:16:55 +01:00
if (this.store[name]) {
this.store[name].yes += countObj.yes;
this.store[name].no += countObj.no;
} else {
this.store[name] = {
yes: countObj.yes,
no: countObj.no,
};
}
}
substract(name: string, countObj: IYesNoCount): void {
2016-11-04 16:16:55 +01:00
if (this.store[name]) {
this.store[name].yes -= countObj.yes;
this.store[name].no -= countObj.no;
} else {
this.store[name] = {
yes: 0,
no: 0,
};
}
}
}