UNPKG

nativescript-plugin-firebase-ssi

Version:
163 lines (142 loc) 4.38 kB
export interface ProgressStatus { fractionCompleted: Number; percentageCompleted: Number; } interface SettableMetadata { cacheControl?: string | null; contentDisposition?: string | null; contentEncoding?: string | null; contentLanguage?: string | null; contentType?: string | null; customMetadata?: { [key: string]: string; }; } interface UploadMetadata extends SettableMetadata { // md5Hash?: string | null; } /** * Use either the 'localFile' or 'localFullPath' param to upload a file. */ export interface UploadFileOptions { /** * If you didn't pass 'storageBucket' during init() you will need to do it now. * Takes the form of 'gs://n-plugin-test.appspot.com' and can be found in the Firebase console. */ bucket?: string; /** * The full path of the file in your Firebase storage (folders will be created) * Example: 'uploads/images/telerik-logo-uploaded.png' */ remoteFullPath: string; /** * Option 1: a file-system module File object * Example: * var fs = require("file-system"); * fs.File.fromPath("path-to-the-file") */ localFile?: any; /** * Option 2: a full file path (ignored if 'localFile' is set) */ localFullPath?: string; /** * You can get updates during upload by passing a function, example: * * onProgress: function(status) { * console.log("Uploaded fraction: " + status.fractionCompleted); * console.log("Percentage complete: " + status.percentageCompleted); * } */ onProgress?: (data: ProgressStatus) => void; /** * */ metadata?: UploadMetadata; } export interface UploadFileResult { name: string; contentType: string; created: Date; updated: Date; bucket: string; size: number; } export interface DownloadFileOptions { /** * If you didn't pass 'storageBucket' during init() you will need to do it now. * Takes the form of 'gs://n-plugin-test.appspot.com' and can be found in the Firebase console. */ bucket?: string; /** * The full path of an existing file in your Firebase storage * Example: 'uploads/images/telerik-logo-uploaded.png' */ remoteFullPath: string; /** * Option 1: a file-system module File object * Example: * var fs = require("file-system"); * fs.File.fromPath("path-to-the-file") */ localFile?: any; /** * Option 2: a full file path (ignored if 'localFile' is set) */ localFullPath?: string; } export interface GetDownloadUrlOptions { /** * If you didn't pass 'storageBucket' during init() you will need to do it now. * Takes the form of 'gs://n-plugin-test.appspot.com' and can be found in the Firebase console. */ bucket?: string; /** * The full path of an existing file in your Firebase storage * Example: 'uploads/images/telerik-logo-uploaded.png' */ remoteFullPath: string; } export interface DeleteFileOptions { /** * If you didn't pass 'storageBucket' during init() you will need to do it now. * Takes the form of 'gs://n-plugin-test.appspot.com' and can be found in the Firebase console. */ bucket?: string; /** * The full path of an existing file in your Firebase storage * Example: 'uploads/images/telerik-logo-uploaded.png' */ remoteFullPath: string; } // TODO add properties/methods export interface Reference { ios?: any; android?: any; bucket: string; name: string; fullPath: string; listAll: () => Promise<ListResult>; } export interface ListOptions { /** * If you didn't pass 'storageBucket' during init() you will need to do it now. * Takes the form of 'gs://n-plugin-test.appspot.com' and can be found in the Firebase console. */ bucket?: string; /** * The path of an existing folder in Firebase storage. * Example: 'files/2019' */ remoteFullPath: string; } export interface ListResult { ios?: any; android?: any; prefixes: Array<Reference>; items: Array<Reference>; nextPageToken?: string; } export declare function uploadFile(options: UploadFileOptions): Promise<UploadFileResult>; export declare function downloadFile(options: DownloadFileOptions): Promise<string>; export declare function getDownloadUrl(options: GetDownloadUrlOptions): Promise<string>; export declare function deleteFile(options: DeleteFileOptions): Promise<void>; export declare function listAll(options: ListOptions): Promise<ListResult>;