123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- // Type definitions for Apache Cordova File System plugin
- // Project: https://github.com/apache/cordova-plugin-file
- // Definitions by: Microsoft Open Technologies Inc <http://msopentech.com>
- // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
- //
- // Copyright (c) Microsoft Open Technologies, Inc.
- // Licensed under the MIT license.
-
- interface Window {
- /**
- * Requests a filesystem in which to store application data.
- * @param type Whether the filesystem requested should be persistent, as defined above. Use one of TEMPORARY or PERSISTENT.
- * @param size This is an indicator of how much storage space, in bytes, the application expects to need.
- * @param successCallback The callback that is called when the user agent provides a filesystem.
- * @param errorCallback A callback that is called when errors happen, or when the request to obtain the filesystem is denied.
- */
- requestFileSystem(
- type: LocalFileSystem,
- size: number,
- successCallback: (fileSystem: FileSystem) => void,
- errorCallback?: (fileError: FileError) => void): void;
- /**
- * Look up file system Entry referred to by local URL.
- * @param string url URL referring to a local file or directory
- * @param successCallback invoked with Entry object corresponding to URL
- * @param errorCallback invoked if error occurs retrieving file system entry
- */
- resolveLocalFileSystemURL(url: string,
- successCallback: (entry: Entry) => void,
- errorCallback?: (error: FileError) => void): void;
- /**
- * Look up file system Entry referred to by local URI.
- * @param string uri URI referring to a local file or directory
- * @param successCallback invoked with Entry object corresponding to URI
- * @param errorCallback invoked if error occurs retrieving file system entry
- */
- resolveLocalFileSystemURI(uri: string,
- successCallback: (entry: Entry) => void,
- errorCallback?: (error: FileError) => void): void;
- TEMPORARY: number;
- PERSISTENT: number;
- }
-
- /** This interface represents a file system. */
- 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.
- */
- 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 <video> or <audio> tag.
- * If that is not possible, construct a cdvfile:// URL.
- * @return string URL
- */
- toURL(): string;
- /**
- * Return a URL that can be passed across the bridge to identify this entry.
- * @return string URL that can be passed across the bridge to identify this entry
- */
- toInternalURL(): string;
- /**
- * Deletes a file or directory. It is an error to attempt to delete a directory that is not empty. It is an error to attempt to delete the root directory of a filesystem.
- * @param successCallback A callback that is called on success.
- * @param errorCallback A callback that is called when errors happen.
- */
- remove(successCallback: () => void,
- errorCallback?: (error: FileError) => void): void;
- /**
- * Look up the parent DirectoryEntry containing this Entry. If this Entry is the root of its filesystem, its parent is itself.
- * @param successCallback A callback that is called with the time of the last modification.
- * @param errorCallback A callback that is called when errors happen.
- */
- getParent(successCallback: (entry: Entry) => void,
- errorCallback?: (error: FileError) => void): void;
- }
-
- /** This interface supplies information about the state of a file or directory. */
- interface Metadata {
- /** This is the time at which the file or directory was last modified. */
- modificationTime: Date;
- /** The size of the file, in bytes. This must return 0 for directories. */
- size: number;
- }
-
- /** This interface represents a directory on a file system. */
- interface DirectoryEntry extends Entry {
- /**
- * Creates a new DirectoryReader to read Entries from this Directory.
- */
- createReader(): DirectoryReader;
- /**
- * Creates or looks up a file.
- * @param path Either an absolute path or a relative path from this DirectoryEntry
- * to the file to be looked up or created.
- * It is an error to attempt to create a file whose immediate parent does not yet exist.
- * @param options If create and exclusive are both true, and the path already exists, getFile must fail.
- * If create is true, the path doesn't exist, and no other error occurs, getFile must create it as a zero-length file and return a corresponding FileEntry.
- * If create is not true and the path doesn't exist, getFile must fail.
- * If create is not true and the path exists, but is a directory, getFile must fail.
- * Otherwise, if no other error occurs, getFile must return a FileEntry corresponding to path.
- * @param successCallback A callback that is called to return the File selected or created.
- * @param errorCallback A callback that is called when errors happen.
- */
- getFile(path: string, options?: Flags,
- successCallback?: (entry: FileEntry) => void,
- errorCallback?: (error: FileError) => void): void;
- /**
- * Creates or looks up a directory.
- * @param path Either an absolute path or a relative path from this DirectoryEntry
- * to the directory to be looked up or created.
- * It is an error to attempt to create a directory whose immediate parent does not yet exist.
- * @param options If create and exclusive are both true and the path already exists, getDirectory must fail.
- * If create is true, the path doesn't exist, and no other error occurs, getDirectory must create and return a corresponding DirectoryEntry.
- * If create is not true and the path doesn't exist, getDirectory must fail.
- * If create is not true and the path exists, but is a file, getDirectory must fail.
- * Otherwise, if no other error occurs, getDirectory must return a DirectoryEntry corresponding to path.
- * @param successCallback A callback that is called to return the Directory selected or created.
- * @param errorCallback A callback that is called when errors happen.
- */
- getDirectory(path: string, options?: Flags,
- successCallback?: (entry: DirectoryEntry) => void,
- errorCallback?: (error: FileError) => void): void;
- /**
- * Deletes a directory and all of its contents, if any. In the event of an error (e.g. trying
- * to delete a directory that contains a file that cannot be removed), some of the contents
- * of the directory may be deleted. It is an error to attempt to delete the root directory of a filesystem.
- * @param successCallback A callback that is called on success.
- * @param errorCallback A callback that is called when errors happen.
- */
- removeRecursively(successCallback: () => void,
- errorCallback?: (error: FileError) => void): void;
- }
-
- /**
- * This dictionary is used to supply arguments to methods
- * that look up or create files or directories.
- */
- interface Flags {
- /** Used to indicate that the user wants to create a file or directory if it was not previously there. */
- create?: boolean;
- /** By itself, exclusive must have no effect. Used with create, it must cause getFile and getDirectory to fail if the target path already exists. */
- exclusive?: boolean;
- }
-
- /**
- * This interface lets a user list files and directories in a directory. If there are
- * no additions to or deletions from a directory between the first and last call to
- * readEntries, and no errors occur, then:
- * A series of calls to readEntries must return each entry in the directory exactly once.
- * Once all entries have been returned, the next call to readEntries must produce an empty array.
- * If not all entries have been returned, the array produced by readEntries must not be empty.
- * The entries produced by readEntries must not include the directory itself ["."] or its parent [".."].
- */
- interface DirectoryReader {
- /**
- * Read the next block of entries from this directory.
- * @param successCallback Called once per successful call to readEntries to deliver the next
- * previously-unreported set of Entries in the associated Directory.
- * If all Entries have already been returned from previous invocations
- * of readEntries, successCallback must be called with a zero-length array as an argument.
- * @param errorCallback A callback indicating that there was an error reading from the Directory.
- */
- readEntries(
- successCallback: (entries: Entry[]) => void,
- errorCallback?: (error: FileError) => void): void;
- }
-
- /** This interface represents a file on a file system. */
- interface FileEntry extends Entry {
- /**
- * Creates a new FileWriter associated with the file that this FileEntry represents.
- * @param successCallback A callback that is called with the new FileWriter.
- * @param errorCallback A callback that is called when errors happen.
- */
- createWriter(successCallback: (
- writer: FileWriter) => void,
- errorCallback?: (error: FileError) => void): void;
- /**
- * Returns a File that represents the current state of the file that this FileEntry represents.
- * @param successCallback A callback that is called with the File.
- * @param errorCallback A callback that is called when errors happen.
- */
- file(successCallback: (file: File) => void,
- errorCallback?: (error: FileError) => void): void;
- }
-
- /**
- * This interface provides methods to monitor the asynchronous writing of blobs
- * to disk using progress events and event handler attributes.
- */
- interface FileSaver extends EventTarget {
- /** Terminate file operation */
- abort(): void;
- /**
- * The FileSaver object can be in one of 3 states. The readyState attribute, on getting,
- * must return the current state, which must be one of the following values:
- * INIT
- * WRITING
- * DONE
- */
- readyState: number;
- /** Handler for writestart events. */
- onwritestart: (event: ProgressEvent) => void;
- /** Handler for progress events. */
- onprogress: (event: ProgressEvent) => void;
- /** Handler for write events. */
- onwrite: (event: ProgressEvent) => void;
- /** Handler for abort events. */
- onabort: (event: ProgressEvent) => void;
- /** Handler for error events. */
- onerror: (event: ProgressEvent) => void;
- /** Handler for writeend events. */
- onwriteend: (event: ProgressEvent) => void;
- /** The last error that occurred on the FileSaver. */
- error: Error;
- }
-
- /**
- * This interface expands on the FileSaver interface to allow for multiple write
- * actions, rather than just saving a single Blob.
- */
- interface FileWriter extends FileSaver {
- /**
- * The byte offset at which the next write to the file will occur. This always less or equal than length.
- * A newly-created FileWriter will have position set to 0.
- */
- position: number;
- /**
- * The length of the file. If the user does not have read access to the file,
- * this will be the highest byte offset at which the user has written.
- */
- length: number;
- /**
- * Write the supplied data to the file at position.
- * @param {Blob|string} data The blob to write.
- */
- write(data: Blob|string): void;
- /**
- * The file position at which the next write will occur.
- * @param offset If nonnegative, an absolute byte offset into the file.
- * If negative, an offset back from the end of the file.
- */
- seek(offset: number): void;
- /**
- * Changes the length of the file to that specified. If shortening the file, data beyond the new length
- * will be discarded. If extending the file, the existing data will be zero-padded up to the new length.
- * @param size The size to which the length of the file is to be adjusted, measured in bytes.
- */
- truncate(size: number): void;
- }
-
- /* FileWriter states */
- declare var FileWriter: {
- INIT: number;
- WRITING: number;
- DONE: number
- };
-
- interface FileError {
- /** Error code */
- code: number;
- }
-
- declare var FileError: {
- new (code: number): FileError;
- NOT_FOUND_ERR: number;
- SECURITY_ERR: number;
- ABORT_ERR: number;
- NOT_READABLE_ERR: number;
- ENCODING_ERR: number;
- NO_MODIFICATION_ALLOWED_ERR: number;
- INVALID_STATE_ERR: number;
- SYNTAX_ERR: number;
- INVALID_MODIFICATION_ERR: number;
- QUOTA_EXCEEDED_ERR: number;
- TYPE_MISMATCH_ERR: number;
- PATH_EXISTS_ERR: number;
- };
-
- /*
- * Constants defined in fileSystemPaths
- */
- interface Cordova {
- file: {
- /* Read-only directory where the application is installed. */
- applicationDirectory: string;
- /* Root of app's private writable storage */
- applicationStorageDirectory: string;
- /* Where to put app-specific data files. */
- dataDirectory: string;
- /* Cached files that should survive app restarts. Apps should not rely on the OS to delete files in here. */
- cacheDirectory: string;
- /* Android: the application space on external storage. */
- externalApplicationStorageDirectory: string;
- /* Android: Where to put app-specific data files on external storage. */
- externalDataDirectory: string;
- /* Android: the application cache on external storage. */
- externalCacheDirectory: string;
- /* Android: the external storage (SD card) root. */
- externalRootDirectory: string;
- /* iOS: Temp directory that the OS can clear at will. */
- tempDirectory: string;
- /* iOS: Holds app-specific files that should be synced (e.g. to iCloud). */
- syncedDataDirectory: string;
- /* iOS: Files private to the app, but that are meaningful to other applciations (e.g. Office files) */
- documentsDirectory: string;
- /* BlackBerry10: Files globally available to all apps */
- sharedDirectory: string
- }
- }
-
-
- declare enum LocalFileSystem {
- PERSISTENT=1,
- TEMPORARY=0
- }
|