Skip to content

Remove storage-types/exp #4507

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 103 additions & 27 deletions common/api-review/storage.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,34 @@

```ts

import { FirebaseApp } from '@firebase/app-types';
import { FirebaseStorageError } from '@firebase/storage-types/exp';
import { FullMetadata } from '@firebase/storage-types/exp';
import { ListOptions } from '@firebase/storage-types/exp';
import { ListResult } from '@firebase/storage-types/exp';
import { SettableMetadata } from '@firebase/storage-types/exp';
import { StorageObserver } from '@firebase/storage-types/exp';
import { StorageReference } from '@firebase/storage-types/exp';
import { StorageService } from '@firebase/storage-types/exp';
import { TaskEvent } from '@firebase/storage-types/exp';
import { TaskState } from '@firebase/storage-types/exp';
import { UploadMetadata } from '@firebase/storage-types/exp';
import { UploadResult } from '@firebase/storage-types/exp';
import { UploadTask } from '@firebase/storage-types/exp';
import { CompleteFn } from '@firebase/util';
import { FirebaseApp } from '@firebase/app';
import { FirebaseError } from '@firebase/util';
import { NextFn } from '@firebase/util';
import { Subscribe } from '@firebase/util';
import { Unsubscribe } from '@firebase/util';

// @public
export function deleteObject(ref: StorageReference): Promise<void>;

export { FirebaseStorageError }
// @public
export interface FirebaseStorageError extends FirebaseError {
serverResponse: string | null;
}

export { FullMetadata }
// @public
export interface FullMetadata extends UploadMetadata {
bucket: string;
downloadTokens: string[] | undefined;
fullPath: string;
generation: string;
metageneration: string;
name: string;
ref?: StorageReference | undefined;
size: number;
timeCreated: string;
updated: string;
}

// @public
export function getDownloadURL(ref: StorageReference): Promise<string>;
Expand All @@ -41,23 +48,64 @@ export function list(ref: StorageReference, options?: ListOptions): Promise<List
// @public
export function listAll(ref: StorageReference): Promise<ListResult>;

export { ListOptions }
// @public
export interface ListOptions {
maxResults?: number | null;
pageToken?: string | null;
}

export { ListResult }
// @public
export interface ListResult {
items: StorageReference[];
nextPageToken?: string;
prefixes: StorageReference[];
}

// @public
export function ref(storage: StorageService, url?: string): StorageReference;

// @public
export function ref(storageOrRef: StorageService | StorageReference, path?: string): StorageReference;

export { SettableMetadata }
// @public
export interface SettableMetadata {
cacheControl?: string | undefined;
contentDisposition?: string | undefined;
contentEncoding?: string | undefined;
contentLanguage?: string | undefined;
contentType?: string | undefined;
customMetadata?: {
[key: string]: string;
} | undefined;
}

export { StorageObserver }
// @public
export interface StorageObserver<T> {
// (undocumented)
complete?: CompleteFn | null;
// (undocumented)
error?: (error: FirebaseStorageError) => void | null;
// (undocumented)
next?: NextFn<T> | null;
}

export { StorageReference }
// @public
export interface StorageReference {
bucket: string;
fullPath: string;
name: string;
parent: StorageReference | null;
root: StorageReference;
storage: StorageService;
toString(): string;
}

export { StorageService }
// @public
export interface StorageService {
readonly app: FirebaseApp;
maxOperationRetryTime: number;
maxUploadRetryTime: number;
}

// @public
export type StringFormat = string;
Expand All @@ -70,9 +118,11 @@ export const StringFormat: {
DATA_URL: string;
};

export { TaskEvent }
// @public
export type TaskEvent = 'state_changed';

export { TaskState }
// @public
export type TaskState = 'running' | 'paused' | 'success' | 'canceled' | 'error';

// @public
export function updateMetadata(ref: StorageReference, metadata: SettableMetadata): Promise<FullMetadata>;
Expand All @@ -83,14 +133,40 @@ export function uploadBytes(ref: StorageReference, data: Blob | Uint8Array | Arr
// @public
export function uploadBytesResumable(ref: StorageReference, data: Blob | Uint8Array | ArrayBuffer, metadata?: UploadMetadata): UploadTask;

export { UploadMetadata }
// @public
export interface UploadMetadata extends SettableMetadata {
md5Hash?: string | undefined;
}

export { UploadResult }
// @public
export interface UploadResult {
readonly metadata: FullMetadata;
readonly ref: StorageReference;
}

// @public
export function uploadString(ref: StorageReference, value: string, format?: string, metadata?: UploadMetadata): Promise<UploadResult>;

export { UploadTask }
// @public
export interface UploadTask {
cancel(): boolean;
catch(onRejected: (error: FirebaseStorageError) => unknown): Promise<unknown>;
on(event: TaskEvent, nextOrObserver?: StorageObserver<UploadTaskSnapshot> | null | ((snapshot: UploadTaskSnapshot) => unknown), error?: ((a: FirebaseStorageError) => unknown) | null, complete?: Unsubscribe | null): Unsubscribe | Subscribe<UploadTaskSnapshot>;
pause(): boolean;
resume(): boolean;
snapshot: UploadTaskSnapshot;
then(onFulfilled?: ((snapshot: UploadTaskSnapshot) => unknown) | null, onRejected?: ((error: FirebaseStorageError) => unknown) | null): Promise<unknown>;
}

// @public
export interface UploadTaskSnapshot {
bytesTransferred: number;
metadata: FullMetadata;
ref: StorageReference;
state: TaskState;
task: UploadTask;
totalBytes: number;
}


// (No @packageDocumentation comment for this package)
Expand Down
22 changes: 2 additions & 20 deletions packages/storage/exp/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,10 @@ import {
ListOptions,
ListResult,
UploadTask,
FirebaseStorageError,
TaskEvent,
TaskState,
StorageObserver,
SettableMetadata,
UploadMetadata,
FullMetadata
} from '@firebase/storage-types/exp';
} from './public-types';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can directly export them instead of import, then export since ./public-types is part of the project, so we won't have the typings in the js file issues.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also can we just export every thing from ./public-types. All types in ./public-types are supposed to be public/exported.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. A number of these types are used in this file so I kept those imports.

import { Metadata as MetadataInternal } from '../src/metadata';
import {
uploadBytes as uploadBytesInternal,
Expand All @@ -70,21 +66,7 @@ import {
/**
* Public types.
*/
export {
StorageReference,
StorageService,
UploadMetadata,
SettableMetadata,
FullMetadata,
UploadResult,
ListOptions,
ListResult,
UploadTask,
FirebaseStorageError,
TaskEvent,
TaskState,
StorageObserver
};
export * from './public-types';

/**
* Uploads data to this object's location.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,15 @@
* limitations under the License.
*/

import { FirebaseApp, _FirebaseService } from '@firebase/app-types-exp';
import { CompleteFn, FirebaseError, NextFn, Unsubscribe } from '@firebase/util';
// eslint-disable-next-line import/no-extraneous-dependencies
import { FirebaseApp } from '@firebase/app-exp';
import {
CompleteFn,
FirebaseError,
NextFn,
Subscribe,
Unsubscribe
} from '@firebase/util';

/**
* A Firebase Storage instance.
Expand Down Expand Up @@ -245,7 +252,7 @@ export type TaskState = 'running' | 'paused' | 'success' | 'canceled' | 'error';
* An error returned by the Firebase Storage SDK.
* @public
*/
interface FirebaseStorageError extends FirebaseError {
export interface FirebaseStorageError extends FirebaseError {
/**
* A server response message for the error, if applicable.
*/
Expand Down Expand Up @@ -276,7 +283,7 @@ export interface UploadTask {
/**
* Equivalent to calling `then(null, onRejected)`.
*/
catch(onRejected: (error: FirebaseStorageError) => any): Promise<any>;
catch(onRejected: (error: FirebaseStorageError) => unknown): Promise<unknown>;
/**
* Listens for events on this task.
*
Expand Down Expand Up @@ -391,10 +398,10 @@ export interface UploadTask {
nextOrObserver?:
| StorageObserver<UploadTaskSnapshot>
| null
| ((snapshot: UploadTaskSnapshot) => any),
error?: ((a: FirebaseStorageError) => any) | null,
| ((snapshot: UploadTaskSnapshot) => unknown),
error?: ((a: FirebaseStorageError) => unknown) | null,
complete?: Unsubscribe | null
): Function;
): Unsubscribe | Subscribe<UploadTaskSnapshot>;

/**
* Pauses a currently running task. Has no effect on a paused or failed task.
Expand All @@ -419,9 +426,9 @@ export interface UploadTask {
* @param onRejected - The rejection callback.
*/
then(
onFulfilled?: ((snapshot: UploadTaskSnapshot) => any) | null,
onRejected?: ((error: FirebaseStorageError) => any) | null
): Promise<any>;
onFulfilled?: ((snapshot: UploadTaskSnapshot) => unknown) | null,
onRejected?: ((error: FirebaseStorageError) => unknown) | null
): Promise<unknown>;
}

/**
Expand Down
2 changes: 1 addition & 1 deletion packages/storage/src/metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* limitations under the License.
*/

import { FullMetadata } from '@firebase/storage-types/exp';
import { FullMetadata } from '../exp/public-types';

/**
* @fileoverview Documentation for the metadata format.
Expand Down
2 changes: 1 addition & 1 deletion packages/storage/src/reference.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import {
deleteObject as requestsDeleteObject,
multipartUpload
} from './implementation/requests';
import { ListOptions } from '@firebase/storage-types/exp';
import { ListOptions } from '../exp/public-types';
import { StringFormat, dataFromString } from './implementation/string';
import { Metadata } from './metadata';
import { StorageService } from './service';
Expand Down
2 changes: 1 addition & 1 deletion packages/storage/test/integration/integration.exp.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import {

import { use, expect } from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
import * as types from '@firebase/storage-types/exp';
import * as types from '../../exp/public-types';

use(chaiAsPromised);

Expand Down
8 changes: 0 additions & 8 deletions scripts/exp/prepare-storage-for-exp-release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,7 @@ export async function prepare() {
// Update package.json
const packageJson = await readPackageJson(packagePath);
const expPackageJson = await readPackageJson(`${packagePath}/exp`);
const typesPackageJson = await readPackageJson(`${packagePath}-types`);
packageJson.version = '0.0.900';
typesPackageJson.version = '0.0.900';
typesPackageJson.files = `['exp/index.d.ts']`;

packageJson.peerDependencies = {
'@firebase/app-exp': '0.x'
Expand All @@ -62,9 +59,4 @@ export async function prepare() {
`${JSON.stringify(packageJson, null, 2)}\n`,
{ encoding: 'utf-8' }
);
await writeFile(
`${packagePath}-types/package.json`,
`${JSON.stringify(typesPackageJson, null, 2)}\n`,
{ encoding: 'utf-8' }
);
}
1 change: 0 additions & 1 deletion scripts/exp/release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ async function publishExpPackages({ dryRun }: { dryRun: boolean }) {

packagePaths.push(`${projectRoot}/packages/firestore`);
packagePaths.push(`${projectRoot}/packages/storage`);
packagePaths.push(`${projectRoot}/packages/storage-types`);
packagePaths.push(`${projectRoot}/packages/database`);

/**
Expand Down