1*eeffdb10STomasz Sapetaimport { TransformPipeline } from '.'; 2*eeffdb10STomasz Sapeta 3*eeffdb10STomasz Sapetaexport function podspecTransforms(versionName: string): TransformPipeline { 4*eeffdb10STomasz Sapeta return { 5*eeffdb10STomasz Sapeta transforms: [ 6*eeffdb10STomasz Sapeta // Common transforms 7*eeffdb10STomasz Sapeta { 8*eeffdb10STomasz Sapeta // Transforms some podspec fields by adding versionName at the beginning 9*eeffdb10STomasz Sapeta replace: /\.(name|header_dir|module_name)(\s*=\s*["'])([^"']+)(["'])/g, 10*eeffdb10STomasz Sapeta with: `.$1$2${versionName}$3$4`, 11*eeffdb10STomasz Sapeta }, 12*eeffdb10STomasz Sapeta { 13*eeffdb10STomasz Sapeta // Prefixes dependencies listed in the podspecs 14*eeffdb10STomasz Sapeta replace: /(\.dependency\s+["'])(Yoga|React\-|ReactCommon|RCT|FB)([^"']*["'])/g, 15*eeffdb10STomasz Sapeta with: `$1${versionName}$2$3`, 16*eeffdb10STomasz Sapeta }, 17*eeffdb10STomasz Sapeta { 18*eeffdb10STomasz Sapeta // Removes source conditional 19*eeffdb10STomasz Sapeta replace: /source\s*\=\s*\{[.\S\s]+?end/g, 20*eeffdb10STomasz Sapeta with: '', 21*eeffdb10STomasz Sapeta }, 22*eeffdb10STomasz Sapeta { 23*eeffdb10STomasz Sapeta // Points spec source at correct directory 24*eeffdb10STomasz Sapeta replace: /(\.source\s*\=\s*)\S+\n/g, 25*eeffdb10STomasz Sapeta with: '$1{ :path => "." }\n', 26*eeffdb10STomasz Sapeta }, 27*eeffdb10STomasz Sapeta 28*eeffdb10STomasz Sapeta // React-Core & ReactCommon 29*eeffdb10STomasz Sapeta { 30*eeffdb10STomasz Sapeta // Fixes header_subspecs for RCTBlobHeaders 31*eeffdb10STomasz Sapeta paths: 'React-Core.podspec', 32*eeffdb10STomasz Sapeta replace: /\{(RCTBlobManager),(RCTFileReaderModule)\}/g, 33*eeffdb10STomasz Sapeta with: `{${versionName}$1,${versionName}$2}`, 34*eeffdb10STomasz Sapeta }, 35*eeffdb10STomasz Sapeta { 36*eeffdb10STomasz Sapeta // Prefixes conflicting AccessibilityResources 37*eeffdb10STomasz Sapeta paths: 'React-Core.podspec', 38*eeffdb10STomasz Sapeta replace: /"AccessibilityResources"/g, 39*eeffdb10STomasz Sapeta with: `"${versionName}AccessibilityResources"`, 40*eeffdb10STomasz Sapeta }, 41*eeffdb10STomasz Sapeta { 42*eeffdb10STomasz Sapeta // Fixes HEADER_SEARCH_PATHS 43*eeffdb10STomasz Sapeta paths: ['React-Core.podspec', 'ReactCommon.podspec'], 44*eeffdb10STomasz Sapeta replace: /(Headers\/Private\/)(React-Core)/g, 45*eeffdb10STomasz Sapeta with: `$1${versionName}$2`, 46*eeffdb10STomasz Sapeta }, 47*eeffdb10STomasz Sapeta 48*eeffdb10STomasz Sapeta // React-cxxreact 49*eeffdb10STomasz Sapeta { 50*eeffdb10STomasz Sapeta // Fixes excluding SampleCxxModule.* files 51*eeffdb10STomasz Sapeta paths: 'React-cxxreact.podspec', 52*eeffdb10STomasz Sapeta replace: /\.exclude_files(\s*=\s*["'])(SampleCxxModule\.\*)(["'])/g, 53*eeffdb10STomasz Sapeta with: `.exclude_files$1${versionName}$2$3`, 54*eeffdb10STomasz Sapeta }, 55*eeffdb10STomasz Sapeta 56*eeffdb10STomasz Sapeta // Yoga 57*eeffdb10STomasz Sapeta { 58*eeffdb10STomasz Sapeta // Unprefixes inner directory for source_files 59*eeffdb10STomasz Sapeta paths: 'Yoga.podspec', 60*eeffdb10STomasz Sapeta replace: /\{(Yoga),(YGEnums),(YGMacros),(YGValue)\}/g, 61*eeffdb10STomasz Sapeta with: `{${versionName}$1,${versionName}$2,${versionName}$3,${versionName}$4}`, 62*eeffdb10STomasz Sapeta }, 63*eeffdb10STomasz Sapeta 64*eeffdb10STomasz Sapeta // FBReactNativeSpec 65*eeffdb10STomasz Sapeta { 66*eeffdb10STomasz Sapeta // Fixes HEADER_SEARCH_PATHS 67*eeffdb10STomasz Sapeta paths: 'FBReactNativeSpec.podspec', 68*eeffdb10STomasz Sapeta replace: /(\/Libraries\/)(FBReactNativeSpec)/g, 69*eeffdb10STomasz Sapeta with: `$1${versionName}$2`, 70*eeffdb10STomasz Sapeta }, 71*eeffdb10STomasz Sapeta ], 72*eeffdb10STomasz Sapeta }; 73*eeffdb10STomasz Sapeta} 74