Skip to content

Commit 8fde7d4

Browse files
authored
Merge pull request #4 from thecodejack/attr_es_issue
Attr es issue
2 parents 1235c6e + 5d17b77 commit 8fde7d4

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "svelte-file-dropzone",
3-
"version": "0.0.11",
3+
"version": "0.0.12-beta.0",
44
"description": "Svelte component for fileupload and file dropzone",
55
"svelte": "src/index.js",
66
"module": "dist/index.mjs",
@@ -18,7 +18,6 @@
1818
"author": "thecodejack",
1919
"license": "MIT",
2020
"dependencies": {
21-
"attr-accept": "^2.2.2",
2221
"file-selector": "^0.2.2"
2322
},
2423
"devDependencies": {

src/utils/attr-accept.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Check if the provided file type should be accepted by the input with accept attribute.
3+
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept
4+
*
5+
* Inspired by https://github.com/enyo/dropzone
6+
*
7+
* @param file {File} https://developer.mozilla.org/en-US/docs/Web/API/File
8+
* @param acceptedFiles {string}
9+
* @returns {boolean}
10+
*/
11+
12+
export default function(file, acceptedFiles) {
13+
if (file && acceptedFiles) {
14+
const acceptedFilesArray = Array.isArray(acceptedFiles)
15+
? acceptedFiles
16+
: acceptedFiles.split(",");
17+
const fileName = file.name || "";
18+
const mimeType = (file.type || "").toLowerCase();
19+
const baseMimeType = mimeType.replace(/\/.*$/, "");
20+
21+
return acceptedFilesArray.some((type) => {
22+
const validType = type.trim().toLowerCase();
23+
if (validType.charAt(0) === ".") {
24+
return fileName.toLowerCase().endsWith(validType);
25+
} else if (validType.endsWith("/*")) {
26+
// This is something like a image/* mime type
27+
return baseMimeType === validType.replace(/\/.*$/, "");
28+
}
29+
return mimeType === validType;
30+
});
31+
}
32+
return true;
33+
}

src/utils/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import accepts from "attr-accept";
1+
import accepts from "./attr-accept";
22

33
// Error codes
44
export const FILE_INVALID_TYPE = "file-invalid-type";

0 commit comments

Comments
 (0)