UNPKG

expo-modules-test-core

Version:

Module providing native testing utilities for testing Expo modules

47 lines (40 loc) 1.45 kB
const { withProjectBuildGradle } = require('@expo/config-plugins'); const kotlinClassPath = 'org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion'; const withKotlinGradle = (config, version) => { return withProjectBuildGradle(config, (config) => { if (config.modResults.language === 'groovy') { config.modResults.contents = setKotlinClassPath(config.modResults.contents); config.modResults.contents = setKotlinVersion(config.modResults.contents, version); } else { throw new Error('Cannot setup kotlin because the build.gradle is not groovy'); } return config; }); }; function setKotlinVersion(buildGradle, version) { const pattern = /kotlinVersion\s?=\s?(["'])(?:(?=(\\?))\2.)*?\1/g; const replacement = `kotlinVersion = "${version}"`; if (buildGradle.match(pattern)) { // Select kotlinVersion = '***' and replace the contents between the quotes. return buildGradle.replace(pattern, replacement); } return buildGradle.replace( /dependencies\s?{/, `dependencies { def ${replacement}` ); } function setKotlinClassPath(buildGradle) { if (buildGradle.includes(kotlinClassPath)) { return buildGradle; } return buildGradle.replace( /dependencies\s?{/, `dependencies { classpath "${kotlinClassPath}"` ); } const withUnimodulesTestCore = (config) => { return withKotlinGradle(config, '1.3.50'); }; module.exports = withUnimodulesTestCore;