Skip to content

Commit b57a95a

Browse files
committed
slight refactor
1 parent 6dd1af8 commit b57a95a

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

src/metrics.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,11 @@ export class Metrics {
6464
public async getNodeMetrics(): Promise<NodeMetricsList> {
6565
const path = '/apis/metrics.k8s.io/v1beta1/nodes';
6666

67-
const cluster = this.config.getCurrentCluster();
68-
if (!cluster) {
69-
throw new Error('No currently active cluster');
70-
}
67+
const requestOptions = this.requestOptionsFromPath(path);
7168

72-
const requestOptions: request.Options = {
73-
method: 'GET',
74-
uri: cluster.server + path,
75-
};
7669
await this.config.applyToRequest(requestOptions);
7770

78-
return this.handleResponse<NodeMetricsList>(requestOptions, JSON.parse);
71+
return this.handleResponse<NodeMetricsList>(requestOptions);
7972
}
8073

8174
public async getPodMetrics(namespace?: string): Promise<PodMetricsList> {
@@ -87,21 +80,26 @@ export class Metrics {
8780
path = '/apis/metrics.k8s.io/v1beta1/pods';
8881
}
8982

83+
const requestOptions = this.requestOptionsFromPath(path);
84+
85+
await this.config.applyToRequest(requestOptions);
86+
87+
return this.handleResponse<PodMetricsList>(requestOptions);
88+
}
89+
90+
private requestOptionsFromPath(path: string): request.Options {
9091
const cluster = this.config.getCurrentCluster();
9192
if (!cluster) {
9293
throw new Error('No currently active cluster');
9394
}
9495

95-
const requestOptions: request.Options = {
96+
return {
9697
method: 'GET',
9798
uri: cluster.server + path,
9899
};
99-
await this.config.applyToRequest(requestOptions);
100-
101-
return this.handleResponse<PodMetricsList>(requestOptions, JSON.parse);
102100
}
103101

104-
private handleResponse<T>(requestOptions: request.Options, deserialize: (body: any) => T): Promise<T> {
102+
private handleResponse<T>(requestOptions: request.Options): Promise<T> {
105103
return new Promise((resolve, reject) => {
106104
const req = request(requestOptions, (error, response, body) => {
107105
if (error) {
@@ -114,7 +112,7 @@ export class Metrics {
114112
reject(new HttpError(response, body, response.statusCode));
115113
}
116114
} else {
117-
resolve(deserialize(body));
115+
resolve(JSON.parse(body) as T);
118116
}
119117
});
120118
});

0 commit comments

Comments
 (0)