Skip to content

Commit e934a28

Browse files
authored
Simplify saving code (download-directory#134)
1 parent 0c10e0d commit e934a28

File tree

3 files changed

+19
-160
lines changed

3 files changed

+19
-160
lines changed

index.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// eslint-disable-next-line import/no-unassigned-import
22
import 'typed-query-selector';
3-
import saveFile from 'save-file';
43
import {
54
getDirectoryContentViaContentsApi,
65
getDirectoryContentViaTreesApi,
@@ -18,6 +17,15 @@ function isError(error: unknown): error is Error {
1817
return error instanceof Error;
1918
}
2019

20+
function saveFile(blob: Blob, filename: string) {
21+
const url = URL.createObjectURL(blob);
22+
const a = document.createElement('a');
23+
a.href = url;
24+
a.download = filename;
25+
a.click();
26+
URL.revokeObjectURL(url);
27+
}
28+
2129
async function listFiles(
2230
repoListingConfig: ApiOptions,
2331
): Promise<Array<TreeResponseObject | ContentsReponseObject>> {
@@ -181,20 +189,19 @@ async function init() {
181189
throw error;
182190
}
183191

184-
updateStatus(`Zipping ${downloaded} files`);
192+
updateStatus(`Zipping ${downloaded} files...`);
185193

186194
const zip = await zipPromise;
187195
const zipBlob = await zip.generateAsync({
188196
type: 'blob',
189197
});
190198

191-
const filename = query.get('filename');
192-
const zipFilename = filename
193-
? (filename.toLowerCase().endsWith('.zip')
194-
? filename
195-
: filename + '.zip')
196-
: `${user} ${repository} ${gitReference} ${directory}.zip`.replace(/\//, '-');
197-
await saveFile(zipBlob, zipFilename);
199+
const filename
200+
= query.get('filename')
201+
?? `${user} ${repository} ${gitReference} ${directory}`.replace(/\//, '-');
202+
203+
const zipFilename = filename.endsWith('.zip') ? filename : `${filename}.zip`;
204+
saveFile(zipBlob, zipFilename);
198205
updateStatus(`Downloaded ${downloaded} files! Done!`);
199206
}
200207

package-lock.json

Lines changed: 2 additions & 149 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
"jszip": "^3.10.1",
3030
"list-github-dir-content": "^4.0.2",
3131
"p-map": "^7.0.2",
32-
"p-retry": "^6.2.0",
33-
"save-file": "^2.3.1"
32+
"p-retry": "^6.2.0"
3433
},
3534
"devDependencies": {
3635
"@sindresorhus/tsconfig": "^6.0.0",

0 commit comments

Comments
 (0)