見出し画像

Deno v1.3.0にFileReader APIが追加された

Deno v1.2.3まではBlobやFileといったAPIが用意されていたのだが、如何せんFileReaderが実装されていなかったため用途が限られていた。

しかしながら、先日リリースされたv1.3.0にめでたくFileReaderが実装されたとのことで、早速試してみた。

まずはDenoをv1.3.0にアップグレードする前に、ハンギングレッグレイズをして腹筋を追い込んでおく。これはDenoの公式ドキュメントには書かれていない必須作業である。

腹筋を追い込んだら、Denoをv1.3.0にアップグレードする。

deno upgrade --version 1.3.0

filereader.tsを作成し、以下のように記述。

fileReaderLoadBlob();
fileReaderLoadFile();
async function fileReaderLoadBlob(): Promise<void> {
   await new Promise<void>((resolve) => {
       const fr = new FileReader();
       const b1 = new Blob(["Hello Blob"]);

       fr.onloadend = (ev): void => {
           console.log(fr.result);
           resolve();
       };

       fr.readAsText(b1);
   });
}

async function fileReaderLoadFile(): Promise<void> {
   await new Promise<void>((resolve) => {
       const fr = new FileReader();
       const f1 = new File(["Hello File"], "temp.txt")

       fr.onloadend = (ev): void => {
           console.log(fr.result);
           resolve();
       };

       fr.readAsText(f1);
   });
}

早速実行してみる。

deno run filereader.ts

実行結果

Hello Blob
Hello File

おお!ついに読み込みに成功した。これでファイルの操作が格段に向上する、かもしれない。

実態としてはこちらのcommitが参考になるだろう。

まだまだNodejsには機能面で劣る部分があるが、簡単なアプリであれば、すでにDenoで十分機能を満たすことができるかもしれない。

数か月後には、ファーストチョイスに挙がってくる可能性を秘めているプラットフォームなだけに、今後も注視していく。

現場からは以上です。

この記事が気に入ったらサポートをしてみませんか?