Added filesystem-tests.d.ts

This commit is contained in:
Kon
2013-02-22 09:03:09 +09:00
parent 72ac9f1b6b
commit b8b9da614c
2 changed files with 55 additions and 3 deletions

View 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.
}

View File

@@ -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;
}