xref: /expo/packages/expo-barcode-scanner/plugin/src/withBarcodeScanner.ts (revision 3e9dddf9)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import { AndroidConfig, ConfigPlugin, createRunOncePlugin } from '@expo/config-plugins';
2
3const pkg = require('expo-barcode-scanner/package.json');
4
5const CAMERA_USAGE = 'Allow $(PRODUCT_NAME) to access your camera';
6const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
7
8const withBarcodeScanner: ConfigPlugin<{
9  microphonePermission?: string;
10  cameraPermission?: string;
11} | void> = (config, { microphonePermission, cameraPermission } = {}) => {
12  if (!config.ios) config.ios = {};
13  if (!config.ios.infoPlist) config.ios.infoPlist = {};
14  config.ios.infoPlist.NSCameraUsageDescription =
15    cameraPermission || config.ios.infoPlist.NSCameraUsageDescription || CAMERA_USAGE;
16  config.ios.infoPlist.NSMicrophoneUsageDescription =
17    microphonePermission || config.ios.infoPlist.NSMicrophoneUsageDescription || MICROPHONE_USAGE;
18
19  return AndroidConfig.Permissions.withPermissions(config, ['android.permission.CAMERA']);
20};
21
22export default createRunOncePlugin(withBarcodeScanner, pkg.name, pkg.version);
23

served by {OpenGrok

Last Index Update: Fri May 15 20:09:11 GMT 2026