@react-native-documents/picker
Version:
A react native interface to access documents from dropbox, google drive, iCloud...
27 lines (23 loc) • 718 B
text/typescript
import type { DocumentPickerResponse } from './types'
export const safeValidate = (
requestedTypes: string[],
singlePickResult: Pick<DocumentPickerResponse, 'nativeType'>,
) => {
const { nativeType } = singlePickResult
return requestedTypes.some((it) => nativeTypeMatches(it, nativeType))
}
const nativeTypeMatches = (requiredType: string, actualType: string | null) => {
if (requiredType === actualType || requiredType === '*/*') {
return true
}
if (actualType === null) {
return false
}
if (requiredType.endsWith('/*')) {
const requiredTypeWithoutStar = requiredType.slice(0, -2)
if (actualType.startsWith(requiredTypeWithoutStar)) {
return true
}
}
return false
}