diff --git a/src/index.ts b/src/index.ts index 08af681713..804ca43a45 100644 --- a/src/index.ts +++ b/src/index.ts @@ -93,7 +93,11 @@ export * from './plugins/datepicker'; export * from './plugins/device'; export * from './plugins/devicemotion'; export * from './plugins/deviceorientation'; +<<<<<<< HEAD +export * from './plugins/file'; +======= export * from './plugins/facebook'; +>>>>>>> master export * from './plugins/filetransfer'; export * from './plugins/geolocation'; export * from './plugins/googlemaps'; @@ -137,7 +141,11 @@ export { Dialogs, Diagnostic, EmailComposer, +<<<<<<< HEAD + Facebook, +======= File, +>>>>>>> master Flashlight, Globalization, GooglePlus, diff --git a/src/plugins/file.ts b/src/plugins/file.ts index 1b18704afe..4ec1f1e64c 100644 --- a/src/plugins/file.ts +++ b/src/plugins/file.ts @@ -1,7 +1,340 @@ -import { Cordova, Plugin } from './plugin'; +import {Plugin, Cordova} from './plugin'; +declare var window: any; +declare var cordova: any; + +/** This interface represents a file system. */ +export interface FileSystem { + /* The name of the file system, unique across the list of exposed file systems. */ + name: string; + /** The root directory of the file system. */ + root: DirectoryEntry; +} + +/** + * An abstract interface representing entries in a file system, + * each of which may be a File or DirectoryEntry. + */ +export interface Entry { + /** Entry is a file. */ + isFile: boolean; + /** Entry is a directory. */ + isDirectory: boolean; + /** The name of the entry, excluding the path leading to it. */ + name: string; + /** The full absolute path from the root to the entry. */ + fullPath: string; + /** The file system on which the entry resides. */ + fileSystem: FileSystem; + nativeURL: string; + /** + * Look up metadata about this entry. + * @param successCallback A callback that is called with the time of the last modification. + * @param errorCallback A callback that is called when errors happen. + */ + getMetadata(successCallback: (metadata: Metadata) => void, + errorCallback?: (error: FileError) => void): void; + /** + * Move an entry to a different location on the file system. It is an error to try to: + * move a directory inside itself or to any child at any depth;move an entry into its parent if a name different from its current one isn't provided; + * move a file to a path occupied by a directory; + * move a directory to a path occupied by a file; + * move any element to a path occupied by a directory which is not empty. + * A move of a file on top of an existing file must attempt to delete and replace that file. + * A move of a directory on top of an existing empty directory must attempt to delete and replace that directory. + * @param parent The directory to which to move the entry. + * @param newName The new name of the entry. Defaults to the Entry's current name if unspecified. + * @param successCallback A callback that is called with the Entry for the new location. + * @param errorCallback A callback that is called when errors happen. + */ + moveTo(parent: DirectoryEntry, + newName?: string, + successCallback?: (entry: Entry) => void, + errorCallback?: (error: FileError) => void): void; + /** + * Copy an entry to a different location on the file system. It is an error to try to: + * copy a directory inside itself or to any child at any depth; + * copy an entry into its parent if a name different from its current one isn't provided; + * copy a file to a path occupied by a directory; + * copy a directory to a path occupied by a file; + * copy any element to a path occupied by a directory which is not empty. + * A copy of a file on top of an existing file must attempt to delete and replace that file. + * A copy of a directory on top of an existing empty directory must attempt to delete and replace that directory. + * Directory copies are always recursive--that is, they copy all contents of the directory. + * @param parent The directory to which to move the entry. + * @param newName The new name of the entry. Defaults to the Entry's current name if unspecified. + * @param successCallback A callback that is called with the Entry for the new object. + * @param errorCallback A callback that is called when errors happen. + */ + copyTo(parent: DirectoryEntry, + newName?: string, + successCallback?: (entry: Entry) => void, + errorCallback?: (error: FileError) => void): void; + /** + * Returns a URL that can be used as the src attribute of a