From 8c13381cd2ae0708fc503c19478652f2432b04c1 Mon Sep 17 00:00:00 2001 From: Nikita Matrosov Date: Thu, 19 Jan 2017 16:07:53 +0300 Subject: [PATCH] CB-12369: Add plugin typings from DefinitelyTyped This closes #173 --- package.json | 1 + types/index.d.ts | 136 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 types/index.d.ts diff --git a/package.json b/package.json index 2598cc1..c18d540 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "cordova-plugin-file-transfer", "version": "1.6.2-dev", "description": "Cordova File Transfer Plugin", + "types": "./types/index.d.ts", "cordova": { "id": "cordova-plugin-file-transfer", "platforms": [ diff --git a/types/index.d.ts b/types/index.d.ts new file mode 100644 index 0000000..ad8d994 --- /dev/null +++ b/types/index.d.ts @@ -0,0 +1,136 @@ +// Type definitions for Apache Cordova FileTransfer plugin +// Project: https://github.com/apache/cordova-plugin-file-transfer +// Definitions by: Microsoft Open Technologies Inc. +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// +// Copyright (c) Microsoft Open Technologies Inc +// Licensed under the MIT license + +/// + +/** + * The FileTransfer object provides a way to upload files using an HTTP multi-part POST request, + * and to download files as well. + */ +interface FileTransfer { + /** Called with a ProgressEvent whenever a new chunk of data is transferred. */ + onprogress: (event: ProgressEvent) => void; + /** + * Sends a file to a server. + * @param fileURL Filesystem URL representing the file on the device. For backwards compatibility, + * this can also be the full path of the file on the device. + * @param server URL of the server to receive the file, as encoded by encodeURI(). + * @param successCallback A callback that is passed a FileUploadResult object. + * @param errorCallback A callback that executes if an error occurs retrieving the FileUploadResult. + * Invoked with a FileTransferError object. + * @param options Optional parameters. + * @param trustAllHosts Optional parameter, defaults to false. If set to true, it accepts all security certificates. + * This is useful since Android rejects self-signed security certificates. + * Not recommended for production use. Supported on Android and iOS. + */ + upload( + fileURL: string, + server: string, + successCallback: (result: FileUploadResult) => void, + errorCallback: (error: FileTransferError) => void, + options?: FileUploadOptions, + trustAllHosts?: boolean): void; + /** + * downloads a file from server. + * @param source URL of the server to download the file, as encoded by encodeURI(). + * @param target Filesystem url representing the file on the device. For backwards compatibility, + * this can also be the full path of the file on the device. + * @param successCallback A callback that is passed a FileEntry object. (Function) + * @param errorCallback A callback that executes if an error occurs when retrieving the fileEntry. + * Invoked with a FileTransferError object. + * @param options Optional parameters. + * @param trustAllHosts Optional parameter, defaults to false. If set to true, it accepts all security certificates. + * This is useful since Android rejects self-signed security certificates. + * Not recommended for production use. Supported on Android and iOS. + */ + download( + source: string, + target: string, + successCallback: (fileEntry: FileEntry) => void, + errorCallback: (error: FileTransferError) => void, + trustAllHosts?: boolean, + options?: FileDownloadOptions): void; + /** + * Aborts an in-progress transfer. The onerror callback is passed a FileTransferError object + * which has an error code of FileTransferError.ABORT_ERR. + */ + abort(): void; +} + +declare var FileTransfer: { + new (): FileTransfer; +}; + +/** A FileUploadResult object is passed to the success callback of the FileTransfer object's upload() method. */ +interface FileUploadResult { + /** The number of bytes sent to the server as part of the upload. */ + bytesSent: number; + /** The HTTP response code returned by the server. */ + responseCode: number; + /** The HTTP response returned by the server. */ + response: string; + /** The HTTP response headers by the server. Currently supported on iOS only.*/ + headers: any; +} + +/** Optional parameters for upload method. */ +interface FileUploadOptions { + /** The name of the form element. Defaults to file. */ + fileKey?: string; + /** The file name to use when saving the file on the server. Defaults to image.jpg. */ + fileName?: string; + /** The HTTP method to use - either `PUT` or `POST`. Defaults to `POST`. */ + httpMethod?: string; + /** The mime type of the data to upload. Defaults to image/jpeg. */ + mimeType?: string; + /** A set of optional key/value pairs to pass in the HTTP request. */ + params?: Object; + /** Whether to upload the data in chunked streaming mode. Defaults to true. */ + chunkedMode?: boolean; + /** A map of header name/header values. Use an array to specify more than one value. */ + headers?: Object; +} + +/** Optional parameters for download method. */ +interface FileDownloadOptions { + /** A map of header name/header values. */ + headers?: {}; +} + +/** A FileTransferError object is passed to an error callback when an error occurs. */ +interface FileTransferError { + /** + * One of the predefined error codes listed below. + * FileTransferError.FILE_NOT_FOUND_ERR + * FileTransferError.INVALID_URL_ERR + * FileTransferError.CONNECTION_ERR + * FileTransferError.ABORT_ERR + * FileTransferError.NOT_MODIFIED_ERR + */ + code: number; + /** URL to the source. */ + source: string; + /** URL to the target. */ + target: string; + /** HTTP status code. This attribute is only available when a response code is received from the HTTP connection. */ + http_status: number; + /* Response body. This attribute is only available when a response is received from the HTTP connection. */ + body: string; + /* Exception that is thrown by native code */ + exception: any; +} + +declare var FileTransferError: { + /** Constructor for FileTransferError object */ + new (code?: number, source?: string, target?: string, status?: number, body?: any, exception?: any): FileTransferError; + FILE_NOT_FOUND_ERR: number; + INVALID_URL_ERR: number; + CONNECTION_ERR: number; + ABORT_ERR: number; + NOT_MODIFIED_ERR: number; +} \ No newline at end of file