zipfile – JSZip / JSZipUtils – Loop through images to add to zip file

I have a download function that is used to produce a zip file. This works if I don’t include the albums.forEach function. Visual Code is producing an error on the line this.urlToPromise(images.album_photo_url) which I’m unable to figure out how to resolve. Ultimately, the aim here is that the forEach function produces a bunch of URLs of images I want to add to the zip file.

Is there anything alarmingly obvious that I’m missing with my code below?

No overload matches this call.
Overload 1 of 4, ‘(path: string, data: null, options?: JSZipFileOptions & { dir: true; }): JSZip’, gave the following error.
Argument of type ‘Promise’ is not assignable to parameter of type ‘null’.
Overload 2 of 4, ‘(path: string, data: string | number() | ArrayBuffer | Uint8Array | Blob | ReadableStream | Promise, options?: JSZipFileOptions): JSZip’, gave the following error.
Argument of type ‘Promise’ is not assignable to parameter of type ‘string | number() | ArrayBuffer | Uint8Array | Blob | ReadableStream | Promise’.
Type ‘Promise’ is not assignable to type ‘Promise’.
Type ‘unknown’ is not assignable to type ‘InputFileFormat’.
Type ‘{}’ is missing the following properties from type ‘ReadableStream’: readable, read, setEncoding, pause, and 22 more.

 download() {

    const csvFile = new File((this.string), 'file.csv', {
      type: 'text/plain;charset=utf-8'
    });

    var zip = new JSZip();

    var title = this.title.replace(///g, '_') + '.csv';

    zip.file(projectTitle, csvFile);

    this.albums.forEach(albums => {
      albums.images.forEach(images => {
        zip.file(images.title, this.urlToPromise(images.album_photo_url), { binary: true });
      })

    });
  
    zip.generateAsync({ type: "blob" }).then((blob) => {
      saveAs(blob, "test.zip");
    });

  }


  urlToPromise(url) {
    return new Promise((resolve, reject) => {
      JSZipUtils.getBinaryContent(url, (err, data) => {
        if (err) {
          reject(err);
        } else {
          resolve(data);
        }
      });
    });
  }