docs: function processDirectory(directory: string) {
        // If we were rejected then we should not continue.
        if (rejected === true) {
          return;
        }
        // We are now waiting on this asynchronous task.
        waiting++;
        // Read the directory...
        fs.readdir(directory, (error, fileNames) => {
          if (error) {
            return reject(error);
          }
          // Process every file name that we got from reading the directory.
          for (let i = 0; i < fileNames.length; i++) {
            processFilePath(directory, fileNames[i]);
          }
          // We are done with this async task.
          done();
        });
      }