|
1 | 1 | import { isInvalid, isValid, makeRule } from '../utils/rules'
|
| 2 | +import { File } from '../types' |
2 | 3 | import Mimes from './mimes.json'
|
3 | 4 |
|
4 | 5 | export const fileMimeTypes = Object.keys(Mimes)
|
5 | 6 | export const videoMimeTypes = fileMimeTypes.filter((mime) => mime.startsWith('video/'))
|
6 | 7 | export const audioMimeTypes = fileMimeTypes.filter((mime) => mime.startsWith('audio/'))
|
7 | 8 | export const imageMimeTypes = fileMimeTypes.filter((mime) => mime.startsWith('image/'))
|
8 | 9 |
|
9 |
| -export const isImage = (error = 'is not a recognized image file') => makeRule<any>((file) => { |
| 10 | +export const isImage = (error = 'is not a recognized image file') => makeRule<File>((file) => { |
10 | 11 | const val = file as any
|
11 | 12 | if (imageMimeTypes.includes(val?.type)) return isValid(val)
|
12 | 13 | return isInvalid([error], val)
|
13 | 14 | })
|
14 | 15 |
|
15 |
| -export const isAudio = (error = 'is not a recognized audio file') => makeRule<any>((file) => { |
| 16 | +export const isAudio = (error = 'is not a recognized audio file') => makeRule<File>((file) => { |
16 | 17 | const val = file as any
|
17 | 18 | if (audioMimeTypes.includes(val?.type)) return isValid(val)
|
18 | 19 | return isInvalid([error], val)
|
19 | 20 | })
|
20 | 21 |
|
21 |
| -export const isVideo = (error = 'is not a recognized video file') => makeRule<any>((file) => { |
| 22 | +export const isVideo = (error = 'is not a recognized video file') => makeRule<File>((file) => { |
22 | 23 | const val = file as any
|
23 | 24 | if (videoMimeTypes.includes(val?.type)) return isValid(val)
|
24 | 25 | return isInvalid([error], val)
|
25 | 26 | })
|
26 | 27 |
|
27 |
| -export const isFile = (error = 'is not a recognized file') => makeRule<any>((file) => { |
| 28 | +export const isFile = (error = 'is not a recognized file') => makeRule<File>((file) => { |
28 | 29 | const val = file as any
|
29 | 30 | if (fileMimeTypes.includes(val?.type)) return isValid(val)
|
30 | 31 | return isInvalid([error], val)
|
|
0 commit comments