mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
Map inspector requests by id so single requests can be reset at a time (#26770)
This commit is contained in:
parent
9d1e4389d5
commit
bba451a5cb
2 changed files with 19 additions and 4 deletions
|
@ -18,6 +18,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
|
import _ from 'lodash';
|
||||||
|
import uuid from 'uuid/v4';
|
||||||
import { RequestResponder } from './request_responder';
|
import { RequestResponder } from './request_responder';
|
||||||
import { Request, RequestParams, RequestStatus } from './types';
|
import { Request, RequestParams, RequestStatus } from './types';
|
||||||
|
|
||||||
|
@ -29,7 +31,12 @@ import { Request, RequestParams, RequestStatus } from './types';
|
||||||
* @extends EventEmitter
|
* @extends EventEmitter
|
||||||
*/
|
*/
|
||||||
class RequestAdapter extends EventEmitter {
|
class RequestAdapter extends EventEmitter {
|
||||||
private requests: Request[] = [];
|
private requests: Map<string, Request>;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
this.requests = new Map();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start logging a new request into this request adapter. The new request will
|
* Start logging a new request into this request adapter. The new request will
|
||||||
|
@ -47,19 +54,25 @@ class RequestAdapter extends EventEmitter {
|
||||||
name,
|
name,
|
||||||
startTime: Date.now(),
|
startTime: Date.now(),
|
||||||
status: RequestStatus.PENDING,
|
status: RequestStatus.PENDING,
|
||||||
|
id: _.get(params, 'id', uuid()),
|
||||||
};
|
};
|
||||||
this.requests.push(req);
|
this.requests.set(req.id, req);
|
||||||
this._onChange();
|
this._onChange();
|
||||||
return new RequestResponder(req, () => this._onChange());
|
return new RequestResponder(req, () => this._onChange());
|
||||||
}
|
}
|
||||||
|
|
||||||
public reset(): void {
|
public reset(): void {
|
||||||
this.requests = [];
|
this.requests = new Map();
|
||||||
|
this._onChange();
|
||||||
|
}
|
||||||
|
|
||||||
|
public resetRequest(id: string): void {
|
||||||
|
this.requests.delete(id);
|
||||||
this._onChange();
|
this._onChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
public getRequests(): Request[] {
|
public getRequests(): Request[] {
|
||||||
return this.requests;
|
return Array.from(this.requests.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onChange(): void {
|
private _onChange(): void {
|
||||||
|
|
|
@ -36,6 +36,7 @@ export enum RequestStatus {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Request extends RequestParams {
|
export interface Request extends RequestParams {
|
||||||
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
json?: object;
|
json?: object;
|
||||||
response?: Response;
|
response?: Response;
|
||||||
|
@ -46,6 +47,7 @@ export interface Request extends RequestParams {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface RequestParams {
|
export interface RequestParams {
|
||||||
|
id?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue