import { ConfigPlugin, createRunOncePlugin, withPlugins } from '@expo/config-plugins';
import { ScanbotConfigPlugin } from './pluginTypes';
import { withAndroidCameraPermission } from './withAndroidCameraPermission';
import { withAndroidFeature } from './withAndroidFeature';
import { withAndroidMavenURLs } from './withAndroidMavenURLs';
import { withIOSCameraPermission } from './withIOSCameraPermission';

const pkg = require('../../package.json');

const withScanbotSDK: ConfigPlugin<ScanbotConfigPlugin> = (config, props = {}) => {
  return withPlugins(config, [
    [withAndroidCameraPermission, props],
    [withAndroidFeature, props],
    [withIOSCameraPermission, props],
    [withAndroidMavenURLs, props],
  ]);
};

export default createRunOncePlugin(withScanbotSDK, pkg.name, pkg.version);
