Perfecting Directory Size

I've been excited to write javascript code in deno, a runtime that promised a well thought out and stable standard library. I looked forward to updating my code to match their version 1.0 announced with some fanfare. This turned out to be more work than I expected.

My application crawls the wiki federation which can take half a day but then updates in 15 minutes by incrementally updating the previous results.

The startup logic asks two questions: do I have data from previous runs, and, what sites were included then? I sought help coding this from three friends. We got the code working again after this and similar changes.

async function preload(root:site) {
   visit = 0
   skip = 0
-  let files = await Deno.readdir('data')
-  if (files.length > 0) {
-    scrape(files.map(i=>i.name))
-  } else {
+  let files = Deno.readDir('data')
+  let some = false
+  for await (let each of files) {
+    some = true
+    scrape([each.name])
+  }
+  if (!some) {
     scrape([root])
   }
 }