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:
parent
3d098697e9
commit
98f1961fa7
@ -348,7 +348,8 @@ export class Camera extends React.PureComponent<CameraProps> {
|
|||||||
private assertFrameProcessorsEnabled(): void {
|
private assertFrameProcessorsEnabled(): void {
|
||||||
// @ts-expect-error JSI functions aren't typed
|
// @ts-expect-error JSI functions aren't typed
|
||||||
if (global.setFrameProcessor == null || global.unsetFrameProcessor == null) {
|
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',
|
'Frame Processors are not enabled. See https://mrousavy.github.io/react-native-vision-camera/docs/guides/troubleshooting',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -33,10 +33,9 @@ export const parsePhysicalDeviceTypes = (
|
|||||||
const hasWide = physicalDeviceTypes.includes('wide-angle-camera');
|
const hasWide = physicalDeviceTypes.includes('wide-angle-camera');
|
||||||
const hasUltra = physicalDeviceTypes.includes('ultra-wide-angle-camera');
|
const hasUltra = physicalDeviceTypes.includes('ultra-wide-angle-camera');
|
||||||
const hasTele = physicalDeviceTypes.includes('telephoto-camera');
|
const hasTele = physicalDeviceTypes.includes('telephoto-camera');
|
||||||
|
|
||||||
if (hasTele && hasWide && hasUltra) return 'triple-camera';
|
if (hasTele && hasWide && hasUltra) return 'triple-camera';
|
||||||
|
|
||||||
if (hasWide && hasUltra) return 'dual-wide-camera';
|
if (hasWide && hasUltra) return 'dual-wide-camera';
|
||||||
|
|
||||||
if (hasWide && hasTele) return 'dual-camera';
|
if (hasWide && hasTele) return 'dual-camera';
|
||||||
|
|
||||||
throw new Error(`Invalid physical device type combination! ${physicalDeviceTypes.join(' + ')}`);
|
throw new Error(`Invalid physical device type combination! ${physicalDeviceTypes.join(' + ')}`);
|
||||||
|
@ -15,6 +15,7 @@ export type DeviceError =
|
|||||||
| 'device/low-light-boost-not-supported'
|
| 'device/low-light-boost-not-supported'
|
||||||
| 'device/focus-not-supported'
|
| 'device/focus-not-supported'
|
||||||
| 'device/camera-not-available-on-simulator';
|
| 'device/camera-not-available-on-simulator';
|
||||||
|
export type FrameProcessorError = 'frame-processor/unavailable';
|
||||||
export type FormatError =
|
export type FormatError =
|
||||||
| 'format/invalid-fps'
|
| 'format/invalid-fps'
|
||||||
| 'format/invalid-hdr'
|
| 'format/invalid-hdr'
|
||||||
@ -98,6 +99,7 @@ type CameraErrorCode =
|
|||||||
| PermissionError
|
| PermissionError
|
||||||
| ParameterError
|
| ParameterError
|
||||||
| DeviceError
|
| DeviceError
|
||||||
|
| FrameProcessorError
|
||||||
| FormatError
|
| FormatError
|
||||||
| SessionError
|
| SessionError
|
||||||
| CaptureError
|
| 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.
|
* 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<
|
export class CameraRuntimeError extends CameraError<
|
||||||
PermissionError | ParameterError | DeviceError | FormatError | SessionError | SystemError | UnknownError
|
PermissionError | ParameterError | DeviceError | FormatError | FrameProcessorError | SessionError | SystemError | UnknownError
|
||||||
> {}
|
> {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user