react-native-theoplayer
Version:
A THEOplayer video component for react-native.
58 lines (55 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.withTHEOplayerAndroid = void 0;
var _configPlugins = require("@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 (0, _configPlugins.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;
});
};
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 (0, _configPlugins.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;
});
};
exports.withTHEOplayerAndroid = withTHEOplayerAndroid;
//# sourceMappingURL=withTHEOplayerAndroid.js.map