1import escapeRegExp from 'lodash/escapeRegExp'; 2 3import { FileTransforms } from '../../../Transforms.types'; 4import { packagesToKeep, packagesToRename } from '../packagesConfig'; 5import { deleteLinesBetweenTags } from '../utils'; 6 7export function expoviewTransforms(abiVersion: string): FileTransforms { 8 const sdkVersion = abiVersion.replace(/abi(\d+)_0_0/, 'sdk$1'); 9 return { 10 path: [ 11 { 12 find: 'src/main/java/versioned', 13 replaceWith: `src/main/java/${abiVersion}`, 14 }, 15 { 16 find: 'src/main/java/com', 17 replaceWith: `src/main/java/${abiVersion}/com`, 18 }, 19 ], 20 content: [ 21 { 22 paths: './build.gradle', 23 find: /\/\/ WHEN_VERSIONING_REPLACE_WITH_DEPENDENCIES/g, 24 replaceWith: 'implementation project(":expoview")', 25 }, 26 { 27 paths: ['./build.gradle', './src/main/AndroidManifest.xml'], 28 transform: (text: string) => 29 deleteLinesBetweenTags( 30 /WHEN_VERSIONING_REMOVE_FROM_HERE/, 31 /WHEN_VERSIONING_REMOVE_TO_HERE/, 32 text 33 ), 34 }, 35 { 36 paths: './build.gradle', 37 find: /.*WHEN_VERSIONING_UNCOMMENT_(TO_HERE|FROM_HERE).*\n/g, 38 replaceWith: '', 39 }, 40 { 41 paths: './build.gradle', 42 find: `useVendoredModulesForExpoView('unversioned')`, 43 replaceWith: `useVendoredModulesForExpoView('${sdkVersion}')`, 44 }, 45 { 46 paths: './src/main/AndroidManifest.xml', 47 find: /host\.exp\.expoview/g, 48 replaceWith: `${abiVersion}.host.exp.expoview`, 49 }, 50 { 51 paths: './src/main/AndroidManifest.xml', 52 find: /versioned\.host\.exp\.exponent/g, 53 replaceWith: `${abiVersion}.host.exp.exponent`, 54 }, 55 ...packagesToKeep.map((pkg: string) => ({ 56 paths: './src/main/java/**/*.{java,kt}', 57 find: new RegExp(`([, ^(<])${escapeRegExp(pkg)}`, 'g'), 58 replaceWith: `$1temporarydonotversion.${pkg}`, 59 })), 60 { 61 paths: './src/main/java/**/*.{java,kt}', 62 find: /import (static |)expo\./g, 63 replaceWith: `import $1${abiVersion}.expo.`, 64 }, 65 { 66 paths: './src/main/java/**/*.{java,kt}', 67 find: /versioned\.host\.exp\.exponent/g, 68 replaceWith: `${abiVersion}.host.exp.exponent`, 69 }, 70 ...packagesToRename.map((pkg: string) => ({ 71 paths: './src/main/java/**/*.{java,kt}', 72 find: new RegExp(`([, ^(<])${escapeRegExp(pkg)}`, 'g'), 73 replaceWith: `$1${abiVersion}.${pkg}`, 74 })), 75 { 76 paths: `./src/main/java/**/*.{java,kt}`, 77 find: /temporarydonotversion\./g, 78 replaceWith: '', 79 }, 80 { 81 paths: './**/reanimated/NativeProxy.java', 82 find: /\b(com\.swmansion\.)/g, 83 replaceWith: `${abiVersion}.$1`, 84 }, 85 { 86 paths: './**/ExpoTurboPackage.kt', 87 find: /\bimport (com\.swmansion\.)/g, 88 replaceWith: `import ${abiVersion}.$1`, 89 }, 90 ], 91 }; 92} 93