function exportToDesigns()

in src/export.js [260:311]


  function exportToDesigns(projectPath, issueId) {
    const document = sketch.fromNative(context.document);
    let v = new Array();
    let m = {};
    let fd = new FormData();
    document.selectedLayers.forEach((layer, index) => {
      m[index] = ['variables.somefile.' + index];
      v.push(null);
      let file = sketch.export(layer, { formats: 'png', output: false });
      fd.append(index, {
        fileName: layer.name + '.png',
        mimeType: 'image/png',
        data: file,
      });
    });
    fd.append('map', JSON.stringify(m));
    let o = {
      query: `mutation uploadDesign($somefile: [Upload!]!) {
      designManagementUpload(input: {projectPath: "${projectPath}", iid: ${issueId}, files: $somefile}) {
        designs {
          id
          filename
        }
      }
    }`,
      variables: {
        somefile: v,
      },
    };
    fd.append('operations', JSON.stringify(o));

    return fetch(GITLAB_GRAPHQL_BASE_URL, {
      headers: {
        Accept: 'application/json',
        Authorization: 'Bearer ' + getAccessToken(),
        'Content-type': 'multipart/form-data',
      },
      body: fd,
      method: 'POST',
    })
      .then((result) => {
        return result.json();
      })
      .then((result) => {
        win.destroy();
        if (document.selectedLayers.length > 1) {
          sketch.UI.message('Designs uploaded 🚀');
        } else {
          sketch.UI.message('Design uploaded 🚀');
        }
      });
  }