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 🚀');
}
});
}