Skip to content

Commit 34091ef

Browse files
author
Philipp Alferov
committed
Remove redundant feature detection
1 parent 6c9771c commit 34091ef

File tree

2 files changed

+16
-30
lines changed

2 files changed

+16
-30
lines changed

src/file-saver.js

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,59 +13,45 @@
1313

1414
angular
1515
.module('fileSaver', [])
16-
.factory('SaveAs', [SaveAs]);
16+
.factory('SaveAs', SaveAs);
1717

1818
function SaveAs() {
19-
function blobInit(data, type) {
20-
var blob;
21-
22-
if (hasBlobSupport()) {
23-
return new Blob(data, type);
24-
}
25-
26-
blob = new BlobBuilder();
27-
blob.append(data[0]);
28-
blob = getBlob(type.type);
29-
30-
return blob;
31-
}
3219

3320
function isBlobInstance (data) {
34-
return data instanceof Blob || data instanceof BlobBuilder;
21+
return data instanceof Blob;
3522
}
3623

37-
function hasBlobSupport() {
38-
return typeof(Blob) === "function";
24+
function save(blob, filename) {
25+
try {
26+
saveAs(blob, filename);
27+
} catch(err) {
28+
console.error(err.message);
29+
}
3930
}
4031

4132
return {
4233

4334
/**
4435
* saveFile - Immediately starts saving a file, returns undefined.
4536
*
46-
* @param {string|array|object} data Data, represented as a string,
47-
* an array or a Blob object;
37+
* @param {array|Blob} data Represented as an array or a Blob object
4838
* @param {string} filename
49-
* @param {object} options Set of options for the Blob constructor.
39+
* @param {object} options Set of Blob constructor options.
5040
* Optional parameter, if Blob object is passed as first argument
5141
* @return {undefined}
5242
*/
5343

54-
saveFile: function (data, filename, options) {
44+
download: function (data, filename, options) {
5545
var blob;
56-
options = (typeof options === 'undefined') ? {} : options;
46+
data = data instanceof Array ? data : [data];
5747

5848
if (isBlobInstance(data)) {
59-
return saveAs(data, filename);
49+
save(data, filename);
6050
}
6151

62-
data = data instanceof Array ? data : [data];
63-
64-
blob = blobInit(data, options);
65-
66-
return saveAs(blob, filename);
52+
blob = new Blob(data, options);
53+
save(blob, filename);
6754
}
68-
6955
};
7056
}
7157

src/file-saver.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)