fix: Throw 'frame-processor/unavailable' error instead of normal JS Error (#461)

* Throw `'frame-processor/unavailable'` error instead of normal JS Error

* Update CameraDevice.ts
This commit is contained in:
Marc Rousavy 2021-09-27 14:44:09 +02:00 committed by GitHub
parent 3d098697e9
commit 98f1961fa7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 4 deletions

View File

@ -348,7 +348,8 @@ export class Camera extends React.PureComponent<CameraProps> {
private assertFrameProcessorsEnabled(): void {
// @ts-expect-error JSI functions aren't typed
if (global.setFrameProcessor == null || global.unsetFrameProcessor == null) {
throw new Error(
throw new CameraRuntimeError(
'frame-processor/unavailable',
'Frame Processors are not enabled. See https://mrousavy.github.io/react-native-vision-camera/docs/guides/troubleshooting',
);
}

View File

@ -33,10 +33,9 @@ export const parsePhysicalDeviceTypes = (
const hasWide = physicalDeviceTypes.includes('wide-angle-camera');
const hasUltra = physicalDeviceTypes.includes('ultra-wide-angle-camera');
const hasTele = physicalDeviceTypes.includes('telephoto-camera');
if (hasTele && hasWide && hasUltra) return 'triple-camera';
if (hasWide && hasUltra) return 'dual-wide-camera';
if (hasWide && hasTele) return 'dual-camera';
throw new Error(`Invalid physical device type combination! ${physicalDeviceTypes.join(' + ')}`);

View File

@ -15,6 +15,7 @@ export type DeviceError =
| 'device/low-light-boost-not-supported'
| 'device/focus-not-supported'
| 'device/camera-not-available-on-simulator';
export type FrameProcessorError = 'frame-processor/unavailable';
export type FormatError =
| 'format/invalid-fps'
| 'format/invalid-hdr'
@ -98,6 +99,7 @@ type CameraErrorCode =
| PermissionError
| ParameterError
| DeviceError
| FrameProcessorError
| FormatError
| SessionError
| CaptureError
@ -152,7 +154,7 @@ export class CameraCaptureError extends CameraError<CaptureError> {}
* See the ["Camera Errors" documentation](https://mrousavy.github.io/react-native-vision-camera/docs/guides/errors) for more information about Camera Errors.
*/
export class CameraRuntimeError extends CameraError<
PermissionError | ParameterError | DeviceError | FormatError | SessionError | SystemError | UnknownError
PermissionError | ParameterError | DeviceError | FormatError | FrameProcessorError | SessionError | SystemError | UnknownError
> {}
/**