Re: Polished FileSystem API proposal

On Sat, Jul 13, 2013 at 1:27 AM, David Rajchenbach-Teller
<dteller@mozilla.com> wrote:
> Why both createFile, open{Read, Write, Append} and get? Is it to avoid a
> signature with dependent types?

I think you are asking why have createFile when it can be implemented
using openWrite or openAppend instead?

We believe that one of the most common operations is simply "store
data X as a new file with filename Y". Having a simple function,
createFile, to accomplish this seems beneficial.

Compare

// With having creatFile:
navigator.getFilesystem().then(function(root) {
  root.createFile("myfile.txt", { data: xhr.response });
});

// Only using openWrite
navigator.getFilesystem().then(function(root) {
  return root.openWrite("myfile.txt");
}).then(function(handle) {
  return Promise.every(
    handle.setSize(0),
    handle.write(xhr.response));
});

Does that answer the question?

/ Jonas


> Cheers,
>  David
>
> On 7/13/13 2:31 AM, Jonas Sicking wrote:
>>
>>   Promise<File> createFile(DOMString path, MakeFileOptions options);
>>   Promise<Directory> createDirectory(DOMString path);
>>
>>   Promise<(File or Directory)> get(DOMString path);
>>
>>   Promise<void> move((DOMString or File or Directory) entry,
>>                      (DOMString or Directory or DestinationDict) dest);
>>   Promise<void> copy((DOMString or File or Directory) entry,
>>                      (DOMString or Directory or DestinationDict) dest);
>>   Promise<boolean> remove((DOMString or File or Directory) path,
>>                        optional DeleteMode recursive = "nonrecursive");
>>
>>   Promise<FileHandle> openRead((DOMString or File) file);
>>   Promise<FileHandleWritable> openWrite((DOMString or File) file,
>>         optional CreateMode createMode = "createifneeded");
>>   Promise<FileHandleWritable> openAppend((DOMString or File) file,
>>         optional CreateMode createMode = "createifneeded");
>>
>>   EventStream<(File or Directory)> enumerate();
>>   EventStream<File> enumerateDeep();
>> };
>
>
> --
> David Rajchenbach-Teller, PhD
>  Performance Team, Mozilla

Received on Saturday, 13 July 2013 09:22:32 UTC