static request (url, file, cb) {
    const headers = {};
    if (file) {
      if (fs.existsSync(file)) {
        const stat = fs.statSync(file);

        // Don't download again if file is less then 1 minutes old
        if (Date.now() - stat.mtime.getTime() < 60000) {
          return setImmediate(cb, 304);
        }
        headers['If-Modified-Since'] = stat.mtime.toUTCString();
      }
    }
    axios({
      method: 'GET',
      url,
      responseType: 'stream',
      headers
    }).then((response) => {
      response.data.pipe(fs.createWriteStream(file)).on('close', () => {
        setTimeout(cb, 100, 200);
      });
    }).catch((err) => {
      if (err?.response?.status !== 304) {
        console.log(err);
      }
      setTimeout(cb, 100, err?.response?.status ?? 404);
    });
  }
Download a url and save to a file, if we already have the file and less than a minute old use that file.

@param {string} url - The URL to download
@param {string} file - The file to save the results to
@param {function} cb - (statusCode) The stats code result from the download