Skip to content

Commit 31538a9

Browse files
committed
Inject SDK_VERSION into request
1 parent c0f85bd commit 31538a9

File tree

9 files changed

+1046
-200
lines changed

9 files changed

+1046
-200
lines changed

common/api-review/storage.api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
55
```ts
66

7-
import { FirebaseApp } from '@firebase/app-types';
7+
import { FirebaseApp } from '@firebase/app-types-exp';
88
import { FirebaseAuthInternalName } from '@firebase/auth-interop-types';
99
import { FirebaseError } from '@firebase/util';
10-
import { _FirebaseService } from '@firebase/app-types';
10+
import { _FirebaseService } from '@firebase/app-types-exp';
1111
import { Provider } from '@firebase/component';
1212
import * as types from '@firebase/storage-types';
1313

packages/storage/compat/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,13 @@ function factory(
5151
// of creating a new one.
5252
const storageServiceCompat: StorageServiceCompat = new StorageServiceCompat(
5353
app,
54-
new StorageService(app, authProvider, new XhrIoPool(), url)
54+
new StorageService(
55+
app,
56+
authProvider,
57+
new XhrIoPool(),
58+
url,
59+
firebase.SDK_VERSION
60+
)
5561
);
5662
return storageServiceCompat;
5763
}

packages/storage/exp/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
import {
1919
_registerComponent,
2020
registerVersion,
21-
_getProvider
21+
_getProvider,
22+
SDK_VERSION
2223
// eslint-disable-next-line import/no-extraneous-dependencies
2324
} from '@firebase/app-exp';
2425

@@ -76,7 +77,8 @@ function factory(container: ComponentContainer, url?: string): StorageService {
7677
app,
7778
authProvider,
7879
new XhrIoPool(),
79-
url
80+
url,
81+
SDK_VERSION
8082
) as unknown) as StorageService;
8183
}
8284

packages/storage/index.ts

Lines changed: 0 additions & 106 deletions
This file was deleted.

packages/storage/rollup.config.js

Lines changed: 0 additions & 76 deletions
This file was deleted.

packages/storage/src/implementation/request.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ import * as type from './type';
3333
import * as UrlUtils from './url';
3434
import { Headers, XhrIo, ErrorCode } from './xhrio';
3535
import { XhrIoPool } from './xhriopool';
36-
// Firebase SDK version
37-
import { version } from '../../../../package.json';
3836

3937
export interface Request<T> {
4038
getPromise(): Promise<T>;
@@ -268,8 +266,12 @@ export function addAuthHeader_(
268266
}
269267
}
270268

271-
export function addVersionHeader_(headers: Headers): void {
272-
headers['X-Firebase-Storage-Version'] = 'webjs/' + (version ?? 'AppManager');
269+
export function addVersionHeader_(
270+
headers: Headers,
271+
firebaseVersion?: string
272+
): void {
273+
headers['X-Firebase-Storage-Version'] =
274+
'webjs/' + (firebaseVersion ?? 'AppManager');
273275
}
274276

275277
export function addGmpidHeader_(headers: Headers, appId: string | null): void {
@@ -282,14 +284,15 @@ export function makeRequest<T>(
282284
requestInfo: RequestInfo<T>,
283285
appId: string | null,
284286
authToken: string | null,
285-
pool: XhrIoPool
287+
pool: XhrIoPool,
288+
firebaseVersion?: string
286289
): Request<T> {
287290
const queryPart = UrlUtils.makeQueryString(requestInfo.urlParams);
288291
const url = requestInfo.url + queryPart;
289292
const headers = Object.assign({}, requestInfo.headers);
290293
addGmpidHeader_(headers, appId);
291294
addAuthHeader_(headers, authToken);
292-
addVersionHeader_(headers);
295+
addVersionHeader_(headers, firebaseVersion);
293296
return new NetworkRequest<T>(
294297
url,
295298
requestInfo.method,

packages/storage/src/service.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,11 @@ export class StorageService implements _FirebaseService {
151151
/**
152152
* @internal
153153
*/
154-
readonly _url?: string
154+
readonly _url?: string,
155+
/**
156+
* @internal
157+
*/
158+
readonly _firebaseVersion?: string
155159
) {
156160
this._maxOperationRetryTime = constants.DEFAULT_MAX_OPERATION_RETRY_TIME;
157161
this._maxUploadRetryTime = constants.DEFAULT_MAX_UPLOAD_RETRY_TIME;
@@ -235,7 +239,8 @@ export class StorageService implements _FirebaseService {
235239
requestInfo,
236240
this._appId,
237241
authToken,
238-
this._pool
242+
this._pool,
243+
this._firebaseVersion
239244
);
240245
this._requests.add(request);
241246
// Request removes itself from set when complete.

packages/storage/test/unit/request.test.ts

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ import { RequestInfo } from '../../src/implementation/requestinfo';
2121
import { XhrIo } from '../../src/implementation/xhrio';
2222
import { makePool } from './testshared';
2323
import { TestingXhrIo } from './xhrio';
24-
import { version } from '../../../../package.json';
24+
25+
const TEST_VERSION = '1.2.3';
2526

2627
describe('Firebase Storage > Request', () => {
2728
const versionHeaderName = 'X-Firebase-Storage-Version';
28-
const versionHeaderValue = 'webjs/' + version;
29+
const versionHeaderValue = 'webjs/' + TEST_VERSION;
2930
const timeout = 60 * 1000;
3031

3132
it('Simple success request works', () => {
@@ -58,7 +59,13 @@ describe('Firebase Storage > Request', () => {
5859
requestInfo.headers[requestHeader] = requestValue;
5960
requestInfo.successCodes = [200, 234];
6061

61-
return makeRequest(requestInfo, null, null, makePool(spiedSend))
62+
return makeRequest(
63+
requestInfo,
64+
null,
65+
null,
66+
makePool(spiedSend),
67+
TEST_VERSION
68+
)
6269
.getPromise()
6370
.then(
6471
result => {
@@ -196,7 +203,8 @@ describe('Firebase Storage > Request', () => {
196203
requestInfo,
197204
/* appId= */ null,
198205
authToken,
199-
makePool(spiedSend)
206+
makePool(spiedSend),
207+
TEST_VERSION
200208
);
201209
return request.getPromise().then(
202210
() => {
@@ -231,7 +239,13 @@ describe('Firebase Storage > Request', () => {
231239
handler,
232240
timeout
233241
);
234-
const request = makeRequest(requestInfo, appId, null, makePool(spiedSend));
242+
const request = makeRequest(
243+
requestInfo,
244+
appId,
245+
null,
246+
makePool(spiedSend),
247+
TEST_VERSION
248+
);
235249
return request.getPromise().then(
236250
() => {
237251
assert.isTrue(spiedSend.calledOnce);

0 commit comments

Comments
 (0)