Skip to content

Commit da42bed

Browse files
fix(ts): improve return types for response metadata (#666)
1 parent d2bbcf3 commit da42bed

File tree

11 files changed

+109
-130
lines changed

11 files changed

+109
-130
lines changed

package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@
3232
"scripts": {
3333
"predocs": "npm run compile",
3434
"docs": "jsdoc -c .jsdoc.js",
35-
"system-test": "mocha build/system-test --timeout 600000 && npm run conformance-test",
35+
"system-test": "mocha build/system-test --timeout 600000",
3636
"conformance-test": "mocha build/conformance-test",
3737
"preconformance-test": "npm run compile",
38-
"system-test": "mocha build/system-test --timeout 600000",
3938
"presystem-test": "npm run compile",
4039
"test": "nyc mocha build/test",
4140
"pretest": "npm run compile",
@@ -69,7 +68,6 @@
6968
"pumpify": "^1.5.1",
7069
"snakeize": "^0.1.0",
7170
"stream-events": "^1.0.1",
72-
"teeny-request": "^3.11.3",
7371
"through2": "^3.0.0",
7472
"xdg-basedir": "^3.0.0"
7573
},
@@ -89,7 +87,6 @@
8987
"@types/node-fetch": "^2.1.3",
9088
"@types/proxyquire": "^1.3.28",
9189
"@types/pumpify": "^1.4.1",
92-
"@types/request": "^2.47.1",
9390
"@types/sinon": "^7.0.10",
9491
"@types/through2": "^2.0.33",
9592
"@types/tmp": "0.1.0",

src/acl.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {BodyResponseCallback, DecorateRequestOptions} from '@google-cloud/common';
17+
import {BodyResponseCallback, DecorateRequestOptions, Metadata} from '@google-cloud/common';
1818
import {promisifyAll} from '@google-cloud/promisify';
1919
import arrify = require('arrify');
20-
import * as r from 'request';
2120

2221
export interface AclOptions {
2322
pathPrefix: string;
@@ -26,10 +25,10 @@ export interface AclOptions {
2625
}
2726

2827
export type GetAclResponse =
29-
[AccessControlObject | AccessControlObject[], r.Response];
28+
[AccessControlObject | AccessControlObject[], Metadata];
3029
export interface GetAclCallback {
3130
(err: Error|null, acl?: AccessControlObject|AccessControlObject[]|null,
32-
apiResponse?: r.Response): void;
31+
apiResponse?: Metadata): void;
3332
}
3433
export interface GetAclOptions {
3534
entity: string;
@@ -43,10 +42,10 @@ export interface UpdateAclOptions {
4342
generation?: number;
4443
userProject?: string;
4544
}
46-
export type UpdateAclResponse = [AccessControlObject, r.Response];
45+
export type UpdateAclResponse = [AccessControlObject, Metadata];
4746
export interface UpdateAclCallback {
4847
(err: Error|null, acl?: AccessControlObject|null,
49-
apiResponse?: r.Response): void;
48+
apiResponse?: Metadata): void;
5049
}
5150

5251
export interface AddAclOptions {
@@ -55,14 +54,14 @@ export interface AddAclOptions {
5554
generation?: number;
5655
userProject?: string;
5756
}
58-
export type AddAclResponse = [AccessControlObject, r.Response];
57+
export type AddAclResponse = [AccessControlObject, Metadata];
5958
export interface AddAclCallback {
6059
(err: Error|null, acl?: AccessControlObject|null,
61-
apiResponse?: r.Response): void;
60+
apiResponse?: Metadata): void;
6261
}
63-
export type RemoveAclResponse = [r.Response];
62+
export type RemoveAclResponse = [Metadata];
6463
export interface RemoveAclCallback {
65-
(err: Error|null, apiResponse?: r.Response): void;
64+
(err: Error|null, apiResponse?: Metadata): void;
6665
}
6766
export interface RemoveAclOptions {
6867
entity: string;

src/bucket.ts

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ import * as mime from 'mime-types';
2525
import * as path from 'path';
2626

2727
const snakeize = require('snakeize');
28-
import * as request from 'request'; // Only for type declarations.
29-
import {teenyRequest} from 'teeny-request';
3028

3129
import {Acl, AddAclCallback} from './acl';
3230
import {Channel} from './channel';
@@ -55,7 +53,7 @@ interface BucketOptions {
5553

5654
export interface GetFilesCallback {
5755
(err: Error|null, files?: File[], nextQuery?: {},
58-
apiResponse?: request.Response): void;
56+
apiResponse?: Metadata): void;
5957
}
6058

6159
interface WatchAllOptions {
@@ -96,10 +94,10 @@ export interface CombineOptions {
9694
}
9795

9896
export interface CombineCallback {
99-
(err: Error|null, newFile: File|null, apiResponse: request.Response): void;
97+
(err: Error|null, newFile: File|null, apiResponse: Metadata): void;
10098
}
10199

102-
export type CombineResponse = [File, request.Response];
100+
export type CombineResponse = [File, Metadata];
103101

104102
export interface CreateChannelConfig extends WatchAllOptions {
105103
address: string;
@@ -109,10 +107,10 @@ export interface CreateChannelOptions {
109107
userProject?: string;
110108
}
111109

112-
export type CreateChannelResponse = [Channel, request.Response];
110+
export type CreateChannelResponse = [Channel, Metadata];
113111

114112
export interface CreateChannelCallback {
115-
(err: Error|null, channel: Channel|null, apiResponse: request.Response): void;
113+
(err: Error|null, channel: Channel|null, apiResponse: Metadata): void;
116114
}
117115

118116
export interface CreateNotificationOptions {
@@ -125,19 +123,19 @@ export interface CreateNotificationOptions {
125123

126124
export interface CreateNotificationCallback {
127125
(err: Error|null, notification: Notification|null,
128-
apiResponse: request.Response): void;
126+
apiResponse: Metadata): void;
129127
}
130128

131-
export type CreateNotificationResponse = [Notification, request.Response];
129+
export type CreateNotificationResponse = [Notification, Metadata];
132130

133131
export interface DeleteBucketOptions {
134132
userProject?: string;
135133
}
136134

137-
export type DeleteBucketResponse = [request.Response];
135+
export type DeleteBucketResponse = [Metadata];
138136

139137
export interface DeleteBucketCallback extends DeleteCallback {
140-
(err: Error|null, apiResponse: request.Response): void;
138+
(err: Error|null, apiResponse: Metadata): void;
141139
}
142140

143141
export interface DeleteFilesOptions extends GetFilesOptions {
@@ -148,20 +146,20 @@ export interface DeleteFilesCallback {
148146
(err: Error|Error[]|null, apiResponse?: object): void;
149147
}
150148

151-
export type DeleteLabelsResponse = [request.Response];
149+
export type DeleteLabelsResponse = [Metadata];
152150

153151
export interface DeleteLabelsCallback extends SetLabelsCallback {}
154152

155-
export type DisableRequesterPaysResponse = [request.Response];
153+
export type DisableRequesterPaysResponse = [Metadata];
156154

157155
export interface DisableRequesterPaysCallback {
158156
(err?: Error|null, apiResponse?: object): void;
159157
}
160158

161-
export type EnableRequesterPaysResponse = [request.Response];
159+
export type EnableRequesterPaysResponse = [Metadata];
162160

163161
export interface EnableRequesterPaysCallback {
164-
(err?: Error|null, apiResponse?: request.Response): void;
162+
(err?: Error|null, apiResponse?: Metadata): void;
165163
}
166164

167165
export interface BucketExistsOptions extends GetConfig {
@@ -176,28 +174,26 @@ export interface GetBucketOptions extends GetConfig {
176174
userProject?: string;
177175
}
178176

179-
export type GetBucketResponse = [Bucket, request.Response];
177+
export type GetBucketResponse = [Bucket, Metadata];
180178

181179
export interface GetBucketCallback {
182-
(err: ApiError|null, bucket: Bucket|null,
183-
apiResponse: request.Response): void;
180+
(err: ApiError|null, bucket: Bucket|null, apiResponse: Metadata): void;
184181
}
185182

186183
export interface GetLabelsOptions {
187184
userProject?: string;
188185
}
189186

190-
export type GetLabelsResponse = [request.Response];
187+
export type GetLabelsResponse = [Metadata];
191188

192189
export interface GetLabelsCallback {
193190
(err: Error|null, labels: object|null): void;
194191
}
195192

196-
export type GetBucketMetadataResponse = [Metadata, request.Response];
193+
export type GetBucketMetadataResponse = [Metadata, Metadata];
197194

198195
export interface GetBucketMetadataCallback {
199-
(err: ApiError|null, metadata: Metadata|null,
200-
apiResponse: request.Response): void;
196+
(err: ApiError|null, metadata: Metadata|null, apiResponse: Metadata): void;
201197
}
202198

203199
export interface GetBucketMetadataOptions {
@@ -210,10 +206,10 @@ export interface GetNotificationsOptions {
210206

211207
export interface GetNotificationsCallback {
212208
(err: Error|null, notifications: Notification[]|null,
213-
apiResponse: request.Response): void;
209+
apiResponse: Metadata): void;
214210
}
215211

216-
export type GetNotificationsResponse = [Notification[], request.Response];
212+
export type GetNotificationsResponse = [Notification[], Metadata];
217213

218214
export interface MakeBucketPrivateOptions {
219215
includeFiles?: boolean;
@@ -246,17 +242,17 @@ export interface SetBucketMetadataOptions {
246242
userProject?: string;
247243
}
248244

249-
export type SetBucketMetadataResponse = [request.Response];
245+
export type SetBucketMetadataResponse = [Metadata];
250246

251247
export interface SetBucketMetadataCallback {
252248
(err?: Error|null, metadata?: Metadata): void;
253249
}
254250

255251
export interface BucketLockCallback {
256-
(err?: Error|null, apiResponse?: request.Response): void;
252+
(err?: Error|null, apiResponse?: Metadata): void;
257253
}
258254

259-
export type BucketLockResponse = [request.Response];
255+
export type BucketLockResponse = [Metadata];
260256

261257
export type Labels = {
262258
[key: string]: string;
@@ -266,7 +262,7 @@ export interface SetLabelsOptions {
266262
userProject?: string;
267263
}
268264

269-
export type SetLabelsResponse = [request.Response];
265+
export type SetLabelsResponse = [Metadata];
270266

271267
export interface SetLabelsCallback {
272268
(err?: Error|null, metadata?: Metadata): void;
@@ -280,10 +276,10 @@ export interface SetBucketStorageClassCallback {
280276
(err?: Error|null): void;
281277
}
282278

283-
export type UploadResponse = [File, request.Response];
279+
export type UploadResponse = [File, Metadata];
284280

285281
export interface UploadCallback {
286-
(err: Error|null, file?: File|null, apiResponse?: request.Response): void;
282+
(err: Error|null, file?: File|null, apiResponse?: Metadata): void;
287283
}
288284

289285
export interface UploadOptions extends CreateResumableUploadOptions,
@@ -2517,8 +2513,7 @@ class Bucket extends ServiceObject {
25172513
callback!);
25182514
}
25192515

2520-
request(reqOpts: DecorateRequestOptions):
2521-
Promise<[ResponseBody, request.Response]>;
2516+
request(reqOpts: DecorateRequestOptions): Promise<[ResponseBody, Metadata]>;
25222517
request(reqOpts: DecorateRequestOptions, callback: BodyResponseCallback):
25232518
void;
25242519
/**
@@ -2530,7 +2525,7 @@ class Bucket extends ServiceObject {
25302525
* @param {function} callback - The callback function.
25312526
*/
25322527
request(reqOpts: DecorateRequestOptions, callback?: BodyResponseCallback):
2533-
void|Promise<[ResponseBody, request.Response]> {
2528+
void|Promise<[ResponseBody, Metadata]> {
25342529
if (this.userProject && (!reqOpts.qs || !reqOpts.qs.userProject)) {
25352530
reqOpts.qs = extend(reqOpts.qs, {userProject: this.userProject});
25362531
}

src/channel.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,13 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {ServiceObject, util} from '@google-cloud/common';
17+
import {Metadata, ServiceObject, util} from '@google-cloud/common';
1818
import {promisifyAll} from '@google-cloud/promisify';
19-
import * as request from 'request'; // Only for type declarations.
20-
import {Response} from 'request';
21-
import {teenyRequest} from 'teeny-request';
2219

2320
import {Storage} from './storage';
2421

2522
export interface StopCallback {
26-
(err: Error|null, apiResponse?: request.Response): void;
23+
(err: Error|null, apiResponse?: Metadata): void;
2724
}
2825

2926

@@ -67,7 +64,7 @@ class Channel extends ServiceObject {
6764
metadata.resourceId = resourceId;
6865
}
6966

70-
stop(): Promise<Response>;
67+
stop(): Promise<Metadata>;
7168
stop(callback: StopCallback): void;
7269
/**
7370
* @typedef {array} StopResponse
@@ -101,7 +98,7 @@ class Channel extends ServiceObject {
10198
* const apiResponse = data[0];
10299
* });
103100
*/
104-
stop(callback?: StopCallback): Promise<Response>|void {
101+
stop(callback?: StopCallback): Promise<Metadata>|void {
105102
callback = callback || util.noop;
106103
this.request(
107104
{

0 commit comments

Comments
 (0)