import { type ConfigPlugin, createRunOncePlugin, withPlugins } from '@expo/config-plugins';
import { ScanbotConfigPlugin } from './pluginTypes';
import { withIOSCameraPermission } from './withIOSCameraPermission';
import { withLargeHeap } from './withLargeHeap';
import { withAssets } from './withOCRAssets';
import { withAndroidMavenURLs } from './withAndroidMavenURLs';

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

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

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