mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-29 01:45:49 +08:00
Added filesystem-tests.d.ts
This commit is contained in:
49
filesystem/filesystem-tests.ts
Normal file
49
filesystem/filesystem-tests.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
/// <reference path="filesystem.d.ts" />
|
||||
// http://www.w3.org/TR/file-system-api/
|
||||
|
||||
// 2. Introduction
|
||||
declare function getAsText(file:File): void;
|
||||
declare function writeDataToLogFile(fileWriter:FileWriterSync): void;
|
||||
|
||||
function useAsyncFS(fs:FileSystem):void {
|
||||
// see getAsText example in [FILE-API-ED].
|
||||
fs.root.getFile("already_there.txt", null, function (f:FileEntry): void{
|
||||
|
||||
// In the example of the specification, there is a following code:
|
||||
//
|
||||
// getAsText(f.file());
|
||||
//
|
||||
// It seems wrong because f is ASYNCRONOUS file system.
|
||||
f.file(getAsText);
|
||||
|
||||
});
|
||||
|
||||
// But now we can also write to the file; see [FILE-WRITER-ED].
|
||||
fs.root.getFile("logFile", {create: true}, function (f:FileEntry): void{
|
||||
f.createWriter(writeDataToLogFile);
|
||||
});
|
||||
}
|
||||
window.requestFileSystem(window.TEMPORARY, 1024 * 1024, function(fs:FileSystem): void{
|
||||
useAsyncFS(fs);
|
||||
});
|
||||
|
||||
// In a worker:
|
||||
|
||||
var tempFS:FileSystemSync = window.requestFileSystemSync(window.TEMPORARY, 1024 * 1024);
|
||||
var logFile:FileEntrySync = tempFS.root.getFile("logFile", {create: true});
|
||||
var writer:FileWriterSync = logFile.createWriter();
|
||||
writer.seek(writer.length);
|
||||
writeDataToLogFile(writer);
|
||||
|
||||
|
||||
// 5.2 The Flags dictionary
|
||||
var fsSync:FileSystemSync = window.requestFileSystemSync(window.TEMPORARY, 1024 * 1024);
|
||||
// Get the data directory, creating it if it doesn't exist.
|
||||
var dataDir:DirectoryEntrySync = fsSync.root.getDirectory("data", {create: true});
|
||||
|
||||
// Create the lock file, if and only if it doesn't exist.
|
||||
try {
|
||||
var lockFile:FileEntrySync = dataDir.getFile("lockfile.txt", {create: true, exclusive: true});
|
||||
} catch (ex) {
|
||||
// It already exists, or something else went wrong.
|
||||
}
|
||||
9
filesystem/filesystem.d.ts
vendored
9
filesystem/filesystem.d.ts
vendored
@@ -1,6 +1,9 @@
|
||||
// Type Definitions for File API: Directories and System (File System API)
|
||||
// Specification: http://www.w3.org/TR/file-system-api/
|
||||
// Project: http://www.w3.org/TR/file-system-api/
|
||||
// Definitions by: Kon <http://phyzkit.net/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="filewriter.d.ts" />
|
||||
|
||||
interface LocalFileSystem {
|
||||
|
||||
@@ -8,7 +11,7 @@ interface LocalFileSystem {
|
||||
* Used for storage with no guarantee of persistence.
|
||||
*/
|
||||
TEMPORARY:number;
|
||||
|
||||
|
||||
/**
|
||||
* Used for storage that should not be removed by the user agent without application or user permission.
|
||||
*/
|
||||
@@ -32,7 +35,7 @@ interface LocalFileSystem {
|
||||
resolveLocalFileSystemURL(url:string, successCallback:EntryCallback, errorCallback?:ErrorCallback):void;
|
||||
|
||||
/**
|
||||
* see resolveLocalFileSystemURL.
|
||||
* see requestFileSystem.
|
||||
*/
|
||||
webkitRequestFileSystem(type:number, size:number, successCallback:FileSystemCallback, errorCallback?:ErrorCallback):void;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user