Skip to content

Commit b0612cc

Browse files
committed
Address PR comments
1 parent 8563ded commit b0612cc

File tree

6 files changed

+31
-40
lines changed

6 files changed

+31
-40
lines changed

packages/storage/src/implementation/metadata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ export function downloadUrlFromResourceString(
187187
}
188188

189189
export function toResourceString(
190-
metadata: Record<string, unknown>,
190+
metadata: Partial<Metadata>,
191191
mappings: Mappings
192192
): string {
193193
const resource: {

packages/storage/src/implementation/requests.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ export function getDownloadUrl(
215215
export function updateMetadata(
216216
service: StorageService,
217217
location: Location,
218-
metadata: Record<string, unknown>,
218+
metadata: Partial<Metadata>,
219219
mappings: Mappings
220220
): RequestInfo<Metadata> {
221221
const urlPart = location.fullServerUrl();

packages/storage/src/reference.ts

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,25 @@ export function uploadBytes(
138138
metadata?: Metadata
139139
): Promise<UploadResult> {
140140
ref._throwIfRoot('uploadBytes');
141-
return _nonResumableUpload(ref, data, metadata);
141+
return ref.storage
142+
.getAuthToken()
143+
.then(authToken => {
144+
const requestInfo = multipartUpload(
145+
ref.storage,
146+
ref._location,
147+
getMappings(),
148+
new FbsBlob(data, true),
149+
metadata
150+
);
151+
const multipartRequest = ref.storage.makeRequest(requestInfo, authToken);
152+
return multipartRequest.getPromise();
153+
})
154+
.then(finalMetadata => {
155+
return {
156+
metadata: finalMetadata,
157+
ref
158+
};
159+
});
142160
}
143161

144162
/**
@@ -148,7 +166,7 @@ export function uploadBytes(
148166
* @param ref - StorageReference where data should be uploaded.
149167
* @param data - The data to upload.
150168
* @param metadata - Metadata for the newly uploaded data.
151-
* @returns An UploadTaskSnapshot
169+
* @returns An UploadTask
152170
*/
153171
export function uploadBytesResumable(
154172
ref: StorageReference,
@@ -181,31 +199,7 @@ export function uploadString(
181199
if (metadataClone['contentType'] == null && data.contentType != null) {
182200
metadataClone['contentType'] = data.contentType!;
183201
}
184-
return _nonResumableUpload(ref, data.data, metadataClone);
185-
}
186-
187-
/**
188-
* Shared code for nonresumable upload, used by uploadString and uploadBytes.
189-
*/
190-
export async function _nonResumableUpload(
191-
ref: StorageReference,
192-
data: Uint8Array | Blob | ArrayBuffer,
193-
metadata?: Metadata
194-
): Promise<UploadResult> {
195-
const authToken = await ref.storage.getAuthToken();
196-
const requestInfo = multipartUpload(
197-
ref.storage,
198-
ref._location,
199-
getMappings(),
200-
new FbsBlob(data, true),
201-
metadata
202-
);
203-
const multipartRequest = ref.storage.makeRequest(requestInfo, authToken);
204-
const finalMetadata = await multipartRequest.getPromise();
205-
return {
206-
metadata: finalMetadata,
207-
ref
208-
};
202+
return uploadBytes(ref, data.data, metadataClone);
209203
}
210204

211205
/**
@@ -338,7 +332,7 @@ export async function getMetadata(ref: StorageReference): Promise<Metadata> {
338332
*/
339333
export async function updateMetadata(
340334
ref: StorageReference,
341-
metadata: Record<string, unknown>
335+
metadata: Partial<Metadata>
342336
): Promise<Metadata> {
343337
ref._throwIfRoot('updateMetadata');
344338
const authToken = await ref.storage.getAuthToken();

packages/storage/test/integration/integration.exp.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ describe('FirebaseStorage Exp', () => {
146146
await uploadString(referenceA, '');
147147
await uploadString(referenceB, '');
148148
await uploadString(referenceCD, '');
149-
const listResult = await listAll(await ref(storage, 'public/exp-list'));
149+
const listResult = await listAll(ref(storage, 'public/exp-list'));
150150
expect(listResult.items.map(v => v.name)).to.have.members(['a', 'b']);
151151
expect(listResult.prefixes.map(v => v.name)).to.have.members(['c']);
152152
});

packages/storage/test/unit/reference.exp.test.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ import {
2828
getMetadata,
2929
updateMetadata,
3030
getDownloadURL,
31-
uploadBytes,
32-
_nonResumableUpload
31+
uploadBytes
3332
} from '../../src/reference';
3433
import { StorageService, ref } from '../../src/service';
3534
import * as testShared from './testshared';
@@ -296,16 +295,13 @@ describe('Firebase Storage > Reference', () => {
296295
contentType: 'lol/wut'
297296
} as Metadata);
298297
});
299-
});
300-
301-
describe('nonResumableUpload', () => {
302298
it('uploads without error', async () => {
303299
const storageService = storageServiceWithHandler(fakeServerHandler({}));
304300
const root = ref(storageService, 'gs://test-bucket/');
305301
const childRef = ref(root, 'child');
306302
const blob = new Blob(['a']);
307-
const snapshot = await _nonResumableUpload(childRef, blob);
308-
expect(snapshot.ref).to.equal(childRef);
303+
const result = await uploadBytes(childRef, blob);
304+
expect(result.ref).to.equal(childRef);
309305
});
310306
});
311307

packages/storage/test/unit/testshared.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
ComponentType
3434
} from '@firebase/component';
3535
import { StorageService } from '../../src/service';
36+
import { Metadata } from '../../src/metadata';
3637

3738
export const authToken = 'totally-legit-auth-token';
3839
export const bucket = 'mybucket';
@@ -164,7 +165,7 @@ export function assertObjectIncludes(
164165
}
165166
}
166167

167-
const defaultFakeMetadata = { 'downloadTokens': 'a,b' };
168+
const defaultFakeMetadata: Partial<Metadata> = { 'downloadTokens': ['a', 'b'] };
168169

169170
interface Response {
170171
status: number;
@@ -200,7 +201,7 @@ export function storageServiceWithHandler(
200201
}
201202

202203
export function fakeServerHandler(
203-
fakeMetadata: Record<string, unknown> = defaultFakeMetadata
204+
fakeMetadata: Partial<Metadata> = defaultFakeMetadata
204205
): RequestHandler {
205206
const stats: {
206207
[num: number]: {

0 commit comments

Comments
 (0)