xref: /expo/packages/expo-barcode-scanner/plugin/src/withBarcodeScanner.ts (revision fc13df4e)
  • 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  {
10    microphonePermission?: string;
11    cameraPermission?: string;
12  } | void
13> = (config, { microphonePermission, cameraPermission } = {}) => {
14  if (!config.ios) config.ios = {};
15  if (!config.ios.infoPlist) config.ios.infoPlist = {};
16  config.ios.infoPlist.NSCameraUsageDescription =
17    cameraPermission || config.ios.infoPlist.NSCameraUsageDescription || CAMERA_USAGE;
18  config.ios.infoPlist.NSMicrophoneUsageDescription =
19    microphonePermission || config.ios.infoPlist.NSMicrophoneUsageDescription || MICROPHONE_USAGE;
20
21  return AndroidConfig.Permissions.withPermissions(config, ['android.permission.CAMERA']);
22};
23
24export default createRunOncePlugin(withBarcodeScanner, pkg.name, pkg.version);
25

served by {OpenGrok

Last Index Update: Tue Oct 21 18:42:31 GMT 2025