react-native-theoplayer
Version:
A THEOplayer video component for react-native.
53 lines (50 loc) • 1.68 kB
JavaScript
;
import { withProjectBuildGradle, withGradleProperties } from '@expo/config-plugins';
function mapAndroidExtensionKey(ext) {
switch (ext) {
case 'ima':
return 'THEOplayer_extensionGoogleIMA';
case 'dai':
return 'THEOplayer_extensionGoogleDAI';
case 'cast':
return 'THEOplayer_extensionCast';
case 'theoads':
return 'THEOplayer_extensionTHEOads';
case 'millicast':
return 'THEOplayer_extensionMillicast';
default:
return undefined;
}
}
const applyAndroidExtensions = (config, extensions) => {
return withGradleProperties(config, config => {
extensions?.forEach(ext => {
const key = mapAndroidExtensionKey(ext);
if (key) {
const prop = {
type: 'property',
key,
value: 'true'
};
config.modResults.push(prop);
}
});
return config;
});
};
export const withTHEOplayerAndroid = (config, props = {}) => {
const {
extensions,
android
} = props;
// Apply Android extensions
config = applyAndroidExtensions(config, android?.extensions ?? extensions);
// Add THEOplayer and local Maven repos to the project's repositories
return withProjectBuildGradle(config, config => {
const localMaven = 'maven { url("$rootDir/../node_modules/react-native-theoplayer/android/local") }';
const THEOplayerMaven = 'maven { url("https://maven.theoplayer.com/releases") }';
config.modResults.contents = config.modResults.contents.replace(/allprojects\s*\{\s*repositories\s*\{/, `$&\n\t\t${localMaven}\n\t\t${THEOplayerMaven}`);
return config;
});
};
//# sourceMappingURL=withTHEOplayerAndroid.js.map