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