react-native-camera-kit
Version:
A high performance, fully featured, rock solid camera library for React Native applications
74 lines (61 loc) • 1.39 kB
text/typescript
export enum CameraType {
Front = 'front',
Back = 'back',
}
const codeFormatAndroid = [
'code-128',
'code-39',
'code-93',
'codabar',
'ean-13',
'ean-8',
'itf',
'upc-a',
'upc-e',
'qr',
'pdf-417',
'aztec',
'data-matrix',
'unknown',
] as const;
const codeFormatIOS = [
'code-128',
'code-39',
'code-93',
'codabar', // only iOS 15.4+
'ean-13',
'ean-8',
'itf-14',
'upc-e',
'qr',
'pdf-417',
'aztec',
'data-matrix',
'code-39-mod-43',
'interleaved-2of5',
] as const;
export const supportedCodeFormats = Array.from(new Set([...codeFormatAndroid, ...codeFormatIOS]));
type CodeFormatAndroid = (typeof codeFormatAndroid)[number];
type CodeFormatIOS = (typeof codeFormatIOS)[number];
export type CodeFormat = CodeFormatAndroid | CodeFormatIOS | 'unknown';
export type TorchMode = 'on' | 'off';
export type FlashMode = 'on' | 'off' | 'auto';
export type FocusMode = 'on' | 'off';
export type ZoomMode = 'on' | 'off';
export type ResizeMode = 'cover' | 'contain';
export type CaptureData = {
uri: string;
name: string;
height: number;
width: number;
// Android only
id?: string;
path?: string;
// iOS only
size?: number;
};
export type CameraApi = {
capture: () => Promise<CaptureData>;
requestDeviceCameraAuthorization: () => Promise<boolean>;
checkDeviceCameraAuthorizationStatus: () => Promise<boolean>;
};