{
const z = zip();
for (const extract of _EXTRACTS_FINAL) {
const directory = DIRECTORY_FOR({ extract });
EXPORT_AS_TEXT({ extract, property: 'text', filename: `${directory}/OriginalPrompt.txt` });
EXPORT_AS_TEXT({ extract, property: 'prompt', filename: `${directory}/Prompt.txt` });
EXPORT_AS_TEXT({ extract, property: 'date', filename: `${directory}/Date.txt` });
EXPORT_AS_TEXT({ extract, property: 'medium', filename: `${directory}/Medium.txt` });
EXPORT_AS_TEXT({ extract, property: 'discussion', filename: `${directory}/Discussion.txt` });
EXPORT_AS_TEXT({ extract, property: 'backstory', filename: `${directory}/Backstory.txt` });
z.file(`${directory}/Metadata.json`, JSON.stringify({
name: extract.name,
text: extract.text,
prompt: extract.prompt,
date: extract.date,
medium: extract.medium,
discussion: extract.discussion,
backstory: extract.backstory,
entities: Array.from(extract.entities).reduce((acc, [key, val]) => {
acc[key] = val;
return acc;
}, {}),
}, true, 2));
}
const blob = await z.generateAsync({ type: 'blob' });
return DOM.download(blob, `Sol LeWitt Data Set.zip`, `Download Sol LeWitt Data Set.zip`);
function DIRECTORY_FOR({ extract }) {
const { filename } = extract;
return filename.split('.', 2)[0];
}
function EXPORT_AS_TEXT({ extract, property, filename }) {
z.file(filename, extract[property]);
}
}