Skip to content

Commit

Permalink
feat: update typing
Browse files Browse the repository at this point in the history
  • Loading branch information
alexey-yarmosh committed Jan 23, 2025
1 parent ec9fb82 commit a988036
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
4 changes: 3 additions & 1 deletion src/measurement/handler/request.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import type { Probe } from '../../probe/types.js';
import { probeValidator } from '../../lib/probe-validator.js';
import { MeasurementRequestMessage } from '../types.js';

export const listenMeasurementRequest = (probe: Probe) => (event: string, data: unknown) => {
if (event !== 'probe:measurement:request') {
return;
}

probeValidator.addValidIds(data.measurementId, data.testId, probe.uuid);
const message = data as MeasurementRequestMessage;
probeValidator.addValidIds(message.measurementId, message.testId, probe.uuid);
};
7 changes: 4 additions & 3 deletions src/measurement/runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import type { Probe } from '../probe/types.js';
import { getMetricsAgent, type MetricsAgent } from '../lib/metrics.js';
import type { MeasurementStore } from './store.js';
import { getMeasurementStore } from './store.js';
import type { MeasurementRequest, MeasurementResultMessage, MeasurementProgressMessage, UserRequest } from './types.js';
import type { MeasurementRequest, MeasurementResultMessage, MeasurementProgressMessage, UserRequest, MeasurementRequestMessage } from './types.js';
import { rateLimit } from '../lib/rate-limiter/rate-limiter-post.js';
import type { ExtendedContext } from '../types.js';

Expand Down Expand Up @@ -64,7 +64,7 @@ export class MeasurementRunner {
const maxInProgressTests = config.get<number>('measurement.maxInProgressTests');
onlineProbesMap.forEach((probe, index) => {
const inProgressUpdates = request.inProgressUpdates && inProgressTests++ < maxInProgressTests;
this.io.of(PROBES_NAMESPACE).to(probe.client).emit('probe:measurement:request', {
const requestMessage: MeasurementRequestMessage = {
measurementId,
testId: index.toString(),
measurement: {
Expand All @@ -73,7 +73,8 @@ export class MeasurementRunner {
target: request.target,
inProgressUpdates,
},
});
};
this.io.of(PROBES_NAMESPACE).to(probe.client).emit('probe:measurement:request', requestMessage);
});
}
}
Expand Down
10 changes: 10 additions & 0 deletions src/measurement/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,16 @@ export type MeasurementRecord = {
* Probe Messages
*/

export type MeasurementRequestMessage = {
testId: string;
measurementId: string;
measurement: MeasurementOptions & {
type: MeasurementRequest['type'];
target: MeasurementRequest['target'];
inProgressUpdates: MeasurementRequest['inProgressUpdates'];
}
}

export type MeasurementProgressMessage = {
testId: string;
measurementId: string;
Expand Down

0 comments on commit a988036

Please sign in to comment.