FileFilters.js
2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
const saveFilters = {
JPEG: {
name: 'JPEG Image',
extensions: ['jpg', 'jpeg']
},
MP3: {
name: 'MP3 Sound',
extensions: ['mp3']
},
PNG: {
name: 'PNG Image',
extensions: ['png']
},
SB: {
name: 'Scratch 1 Project',
extensions: ['sb']
},
SB2: {
name: 'Scratch 2 Project',
extensions: ['sb2']
},
SB3: {
name: 'Scratch 3 Project',
extensions: ['sb3']
},
OB: {
name: 'OpenBlock Project',
extensions: ['ob']
},
Sprite2: {
name: 'Scratch 2 Sprite',
extensions: ['sprite2']
},
Sprite3: {
name: 'Scratch 3 Sprite',
extensions: ['sprite3']
},
SVG: {
name: 'SVG Image',
extensions: ['svg']
},
WAV: {
name: 'WAV Sound',
extensions: ['wav']
}
};
const loadFilters = {
...saveFilters,
AllBitmaps: {
name: 'All Bitmaps',
extensions: [
...saveFilters.JPEG.extensions,
...saveFilters.PNG.extensions
]
},
AllImages: {
name: 'All Images',
extensions: [
...saveFilters.JPEG.extensions,
...saveFilters.PNG.extensions,
...saveFilters.SVG.extensions
]
},
AllProjects: {
name: 'All OpenBlock Projects',
extensions: [
...saveFilters.SB3.extensions,
...saveFilters.SB2.extensions,
...saveFilters.SB.extensions,
...saveFilters.OB.extensions
]
},
AllSounds: {
name: 'All Sounds',
extensions: [
...saveFilters.MP3.extensions,
...saveFilters.WAV.extensions
]
},
AllSprites: {
name: 'All Sprites',
extensions: [
...saveFilters.Sprite3.extensions,
...saveFilters.Sprite2.extensions
]
}
};
const filtersByExtension = Object.values(saveFilters).reduce((result, filter) => {
for (const extension of filter.extensions) {
result[extension] = filter;
}
return result;
}, {});
const getFilterForExtension = extNameNoDot =>
filtersByExtension[extNameNoDot] || {
name: `${extNameNoDot.toUpperCase()} Files`,
extensions: [extNameNoDot]
};
export {
saveFilters,
loadFilters,
getFilterForExtension
};