react-native-builder-bob 0.35.3 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,7 +27,7 @@ packageJson, report) {
27
27
  }
28
28
  codegenAndroidPath = _path.default.resolve(projectPath, codegenAndroidPath);
29
29
  if (!(await _fsExtra.default.pathExists(codegenAndroidPath))) {
30
- throw new Error(`The codegen android path defined in your package.json: ${codegenAndroidPath} doesnt' exist.`);
30
+ throw new Error(`The codegen android path defined in your package.json: ${codegenAndroidPath} doesn't exist.`);
31
31
  }
32
32
  const codegenJavaPackageName = packageJson.codegenConfig.android.javaPackageName;
33
33
  if (!codegenJavaPackageName) {
@@ -58,8 +58,16 @@ packageJson, report) {
58
58
  const newFilePath = _path.default.resolve(newPackagePath, file);
59
59
  await _fsExtra.default.rename(filePath, newFilePath);
60
60
  }));
61
- await _fsExtra.default.rm(_path.default.resolve(codegenAndroidPath, 'java/com/facebook'), {
62
- recursive: true
63
- });
61
+ if (await _fsExtra.default.pathExists(_path.default.resolve(codegenAndroidPath, 'java/com/facebook/react/viewmanagers'))) {
62
+ // Keep the view managers
63
+ await _fsExtra.default.rm(_path.default.resolve(codegenAndroidPath, 'java/com/facebook/fbreact'), {
64
+ recursive: true
65
+ });
66
+ } else {
67
+ // Delete the entire facebook namespace
68
+ await _fsExtra.default.rm(_path.default.resolve(codegenAndroidPath, 'java/com/facebook'), {
69
+ recursive: true
70
+ });
71
+ }
64
72
  }
65
73
  //# sourceMappingURL=patchCodegenAndroidPackage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patchCodegenAndroidPackage.js","names":["_fsExtra","_interopRequireDefault","require","_path","e","__esModule","default","CODEGEN_DOCS","exports","patchCodegenAndroidPackage","projectPath","packageJson","report","codegenAndroidPath","codegenConfig","outputDir","android","Error","path","resolve","fs","pathExists","codegenJavaPackageName","javaPackageName","codegenJavaPath","info","javaFiles","readdir","Promise","all","map","file","filePath","fileContent","readFile","newFileContent","replace","writeFile","newPackagePath","mkdir","recursive","newFilePath","rename","rm"],"sources":["../../../../src/targets/codegen/patches/patchCodegenAndroidPackage.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport type { Report } from '../../../types';\n\nexport const CODEGEN_DOCS =\n 'https://reactnative.dev/docs/the-new-architecture/using-codegen#configuring-codegen';\n\n/**\n * Currently, running react-native codegen generates java files with package name `com.facebook.fbreact.specs`.\n * This is a known issue in react-native itself.\n * You can find the relevant line here: https://github.com/facebook/react-native/blob/dc460147bb00d6f912cc0a829f8040d85faeeb13/packages/react-native/scripts/codegen/generate-artifacts-executor.js#L459.\n * To workaround, this function renames the package name to the one provided in the codegenConfig.\n * @throws if codegenConfig.outputDir.android or codegenConfig.android.javaPackageName is not defined in package.json\n * @throws if the codegenAndroidPath does not exist\n */\nexport async function patchCodegenAndroidPackage(\n projectPath: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n packageJson: any,\n report: Report\n) {\n let codegenAndroidPath: string | undefined =\n packageJson.codegenConfig?.outputDir?.android;\n if (!codegenAndroidPath) {\n throw new Error(\n `Your package.json doesn't contain codegenConfig.outputDir.android. Please see ${CODEGEN_DOCS}`\n );\n }\n codegenAndroidPath = path.resolve(projectPath, codegenAndroidPath);\n\n if (!(await fs.pathExists(codegenAndroidPath))) {\n throw new Error(\n `The codegen android path defined in your package.json: ${codegenAndroidPath} doesnt' exist.`\n );\n }\n\n const codegenJavaPackageName: string | undefined =\n packageJson.codegenConfig.android.javaPackageName;\n if (!codegenJavaPackageName) {\n throw new Error(\n `Your package.json doesn't contain codegenConfig.android.javaPackageName. Please see ${CODEGEN_DOCS}`\n );\n }\n\n const codegenJavaPath = path.resolve(\n codegenAndroidPath,\n `java/com/facebook/fbreact/specs`\n );\n\n // If this issue is ever fixed in react-native, this check will prevent the patching from running.\n if (!(await fs.pathExists(codegenJavaPath))) {\n report.info(\n `Could not find ${codegenJavaPath}. Skipping patching codegen java files.`\n );\n return;\n }\n\n const javaFiles = await fs.readdir(codegenJavaPath);\n\n await Promise.all(\n javaFiles.map(async (file) => {\n const filePath = path.resolve(codegenJavaPath, file);\n const fileContent = await fs.readFile(filePath, 'utf8');\n\n const newFileContent = fileContent.replace(\n 'package com.facebook.fbreact.specs',\n `package ${codegenJavaPackageName}`\n );\n\n await fs.writeFile(filePath, newFileContent);\n })\n );\n\n const newPackagePath = path.resolve(\n codegenAndroidPath,\n `java/${codegenJavaPackageName.replace(/\\./g, '/')}`\n );\n\n if (!(await fs.pathExists(newPackagePath))) {\n await fs.mkdir(newPackagePath, { recursive: true });\n }\n\n await Promise.all(\n javaFiles.map(async (file) => {\n const filePath = path.resolve(codegenJavaPath, file);\n const newFilePath = path.resolve(newPackagePath, file);\n\n await fs.rename(filePath, newFilePath);\n })\n );\n\n await fs.rm(path.resolve(codegenAndroidPath, 'java/com/facebook'), {\n recursive: true,\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"patchCodegenAndroidPackage.js","names":["_fsExtra","_interopRequireDefault","require","_path","e","__esModule","default","CODEGEN_DOCS","exports","patchCodegenAndroidPackage","projectPath","packageJson","report","codegenAndroidPath","codegenConfig","outputDir","android","Error","path","resolve","fs","pathExists","codegenJavaPackageName","javaPackageName","codegenJavaPath","info","javaFiles","readdir","Promise","all","map","file","filePath","fileContent","readFile","newFileContent","replace","writeFile","newPackagePath","mkdir","recursive","newFilePath","rename","rm"],"sources":["../../../../src/targets/codegen/patches/patchCodegenAndroidPackage.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport type { Report } from '../../../types';\n\nexport const CODEGEN_DOCS =\n 'https://reactnative.dev/docs/the-new-architecture/using-codegen#configuring-codegen';\n\n/**\n * Currently, running react-native codegen generates java files with package name `com.facebook.fbreact.specs`.\n * This is a known issue in react-native itself.\n * You can find the relevant line here: https://github.com/facebook/react-native/blob/dc460147bb00d6f912cc0a829f8040d85faeeb13/packages/react-native/scripts/codegen/generate-artifacts-executor.js#L459.\n * To workaround, this function renames the package name to the one provided in the codegenConfig.\n * @throws if codegenConfig.outputDir.android or codegenConfig.android.javaPackageName is not defined in package.json\n * @throws if the codegenAndroidPath does not exist\n */\nexport async function patchCodegenAndroidPackage(\n projectPath: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n packageJson: any,\n report: Report\n) {\n let codegenAndroidPath: string | undefined =\n packageJson.codegenConfig?.outputDir?.android;\n if (!codegenAndroidPath) {\n throw new Error(\n `Your package.json doesn't contain codegenConfig.outputDir.android. Please see ${CODEGEN_DOCS}`\n );\n }\n codegenAndroidPath = path.resolve(projectPath, codegenAndroidPath);\n\n if (!(await fs.pathExists(codegenAndroidPath))) {\n throw new Error(\n `The codegen android path defined in your package.json: ${codegenAndroidPath} doesn't exist.`\n );\n }\n\n const codegenJavaPackageName: string | undefined =\n packageJson.codegenConfig.android.javaPackageName;\n if (!codegenJavaPackageName) {\n throw new Error(\n `Your package.json doesn't contain codegenConfig.android.javaPackageName. Please see ${CODEGEN_DOCS}`\n );\n }\n\n const codegenJavaPath = path.resolve(\n codegenAndroidPath,\n `java/com/facebook/fbreact/specs`\n );\n\n // If this issue is ever fixed in react-native, this check will prevent the patching from running.\n if (!(await fs.pathExists(codegenJavaPath))) {\n report.info(\n `Could not find ${codegenJavaPath}. Skipping patching codegen java files.`\n );\n return;\n }\n\n const javaFiles = await fs.readdir(codegenJavaPath);\n\n await Promise.all(\n javaFiles.map(async (file) => {\n const filePath = path.resolve(codegenJavaPath, file);\n const fileContent = await fs.readFile(filePath, 'utf8');\n\n const newFileContent = fileContent.replace(\n 'package com.facebook.fbreact.specs',\n `package ${codegenJavaPackageName}`\n );\n\n await fs.writeFile(filePath, newFileContent);\n })\n );\n\n const newPackagePath = path.resolve(\n codegenAndroidPath,\n `java/${codegenJavaPackageName.replace(/\\./g, '/')}`\n );\n\n if (!(await fs.pathExists(newPackagePath))) {\n await fs.mkdir(newPackagePath, { recursive: true });\n }\n\n await Promise.all(\n javaFiles.map(async (file) => {\n const filePath = path.resolve(codegenJavaPath, file);\n const newFilePath = path.resolve(newPackagePath, file);\n\n await fs.rename(filePath, newFilePath);\n })\n );\n\n if (\n await fs.pathExists(\n path.resolve(codegenAndroidPath, 'java/com/facebook/react/viewmanagers')\n )\n ) {\n // Keep the view managers\n await fs.rm(path.resolve(codegenAndroidPath, 'java/com/facebook/fbreact'), {\n recursive: true,\n });\n } else {\n // Delete the entire facebook namespace\n await fs.rm(path.resolve(codegenAndroidPath, 'java/com/facebook'), {\n recursive: true,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,12 +22,12 @@ const mockReport = {
22
22
  error: console.log,
23
23
  success: console.log
24
24
  };
25
- const mockJavaSpec = `
25
+ const mockJavaModuleSpec = `
26
26
  /**
27
27
  * Some comment
28
28
  */
29
29
 
30
- package com.bobtest;
30
+ package com.facebook.fbreact.specs;
31
31
 
32
32
  import com.example.exampleimport;
33
33
 
@@ -36,16 +36,28 @@ class SomeClass {
36
36
  // some code
37
37
  }
38
38
  }`;
39
+ const mockJavaViewSpec = `
40
+ /**
41
+ * Some comment
42
+ */
43
+
44
+ package com.facebook.react.viewmanagers;
45
+
46
+ public interface SomeInterface<T extends View> {
47
+ void setColor(T view, @Nullable String value);
48
+ }
49
+ `;
39
50
  const mockProjectPath = _nodePath.default.resolve(__dirname, 'mockProject');
40
- const mockCodegenSpecsPath = _nodePath.default.resolve(mockProjectPath, 'android/generated/java/com/facebook/fbreact/specs');
51
+ const mockCodegenModuleSpecsPath = _nodePath.default.resolve(mockProjectPath, 'android/generated/java/com/facebook/fbreact/specs');
52
+ const mockCodegenViewSpecsPath = _nodePath.default.resolve(mockProjectPath, 'android/generated/java/com/facebook/react/viewmanagers');
41
53
  (0, _globals.describe)('patchCodegenAndroidPackage', () => {
42
54
  (0, _globals.beforeEach)(() => {
43
55
  (0, _mockFs.default)({
44
56
  [mockProjectPath]: {
45
57
  'package.json': JSON.stringify(mockPackageJson)
46
58
  },
47
- [mockCodegenSpecsPath]: {
48
- 'NativeBobtestSpec.java': mockJavaSpec
59
+ [mockCodegenModuleSpecsPath]: {
60
+ 'NativeBobtestSpec.java': mockJavaModuleSpec
49
61
  }
50
62
  });
51
63
  });
@@ -66,7 +78,29 @@ const mockCodegenSpecsPath = _nodePath.default.resolve(mockProjectPath, 'android
66
78
  });
67
79
  (0, _globals.it)('removes the old package dir', async () => {
68
80
  await (0, _patchCodegenAndroidPackage.patchCodegenAndroidPackage)(mockProjectPath, mockPackageJson, mockReport);
69
- (0, _globals.expect)(await _fsExtra.default.pathExists(mockCodegenSpecsPath)).toBe(false);
81
+ (0, _globals.expect)(await _fsExtra.default.pathExists(mockCodegenModuleSpecsPath)).toBe(false);
82
+ });
83
+ (0, _globals.it)("doesn't delete the view manager specs", async () => {
84
+ const mockPackageJsonWithTypeAll = {
85
+ ...mockPackageJson,
86
+ codegenConfig: {
87
+ ...mockPackageJson.codegenConfig,
88
+ type: 'all'
89
+ }
90
+ };
91
+ (0, _mockFs.default)({
92
+ [mockProjectPath]: {
93
+ 'package.json': JSON.stringify(mockPackageJsonWithTypeAll)
94
+ },
95
+ [mockCodegenModuleSpecsPath]: {
96
+ 'NativeBobtestSpec.java': mockJavaModuleSpec
97
+ },
98
+ [mockCodegenViewSpecsPath]: {
99
+ 'BobtestViewManagerInterface.java': mockJavaViewSpec
100
+ }
101
+ });
102
+ await (0, _patchCodegenAndroidPackage.patchCodegenAndroidPackage)(mockProjectPath, mockPackageJsonWithTypeAll, mockReport);
103
+ (0, _globals.expect)(await _fsExtra.default.pathExists(_nodePath.default.join(mockCodegenViewSpecsPath, 'BobtestViewManagerInterface.java'))).toBeTruthy();
70
104
  });
71
105
  });
72
106
  //# sourceMappingURL=patchCodegenAndroidPackage.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patchCodegenAndroidPackage.test.js","names":["_globals","require","_fsExtra","_interopRequireDefault","_nodePath","_patchCodegenAndroidPackage","_mockFs","e","__esModule","default","mockPackageJson","codegenConfig","outputDir","android","javaPackageName","mockReport","info","console","log","warn","error","success","mockJavaSpec","mockProjectPath","path","resolve","__dirname","mockCodegenSpecsPath","describe","beforeEach","mockfs","JSON","stringify","afterEach","restore","it","patchCodegenAndroidPackage","expectedDir","expect","fs","pathExists","toBe","expectedFile","fileContent","readFile","toContain"],"sources":["../../../../src/targets/codegen/patches/patchCodegenAndroidPackage.test.ts"],"sourcesContent":["import { expect, it, describe, beforeEach, afterEach } from '@jest/globals';\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport { patchCodegenAndroidPackage } from './patchCodegenAndroidPackage';\nimport mockfs from 'mock-fs';\nimport type { Report } from '../../../types';\n\nconst mockPackageJson = {\n codegenConfig: {\n outputDir: {\n android: 'android/generated',\n },\n android: {\n javaPackageName: 'com.bobtest',\n },\n },\n};\n\nconst mockReport: Report = {\n info: console.log,\n warn: console.log,\n error: console.log,\n success: console.log,\n};\n\nconst mockJavaSpec = `\n/**\n * Some comment\n */\n\npackage com.bobtest;\n\nimport com.example.exampleimport;\n\nclass SomeClass {\n public void someMethod() {\n // some code\n }\n}`;\n\nconst mockProjectPath = path.resolve(__dirname, 'mockProject');\nconst mockCodegenSpecsPath = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/facebook/fbreact/specs'\n);\n\ndescribe('patchCodegenAndroidPackage', () => {\n beforeEach(() => {\n mockfs({\n [mockProjectPath]: {\n 'package.json': JSON.stringify(mockPackageJson),\n },\n [mockCodegenSpecsPath]: {\n 'NativeBobtestSpec.java': mockJavaSpec,\n },\n });\n });\n\n afterEach(() => {\n mockfs.restore();\n });\n\n it('moves the files to correct dir', async () => {\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJson,\n mockReport\n );\n\n const expectedDir = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/bobtest'\n );\n\n expect(await fs.pathExists(expectedDir)).toBe(true);\n });\n\n it('replaces the package name in the files', async () => {\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJson,\n mockReport\n );\n\n const expectedDir = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/bobtest'\n );\n\n const expectedFile = path.resolve(expectedDir, 'NativeBobtestSpec.java');\n\n const fileContent = await fs.readFile(expectedFile, 'utf8');\n\n expect(fileContent).toContain('package com.bobtest;');\n });\n\n it('removes the old package dir', async () => {\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJson,\n mockReport\n );\n\n expect(await fs.pathExists(mockCodegenSpecsPath)).toBe(false);\n });\n});\n"],"mappings":";;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,2BAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAH,sBAAA,CAAAF,OAAA;AAA6B,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG7B,MAAMG,eAAe,GAAG;EACtBC,aAAa,EAAE;IACbC,SAAS,EAAE;MACTC,OAAO,EAAE;IACX,CAAC;IACDA,OAAO,EAAE;MACPC,eAAe,EAAE;IACnB;EACF;AACF,CAAC;AAED,MAAMC,UAAkB,GAAG;EACzBC,IAAI,EAAEC,OAAO,CAACC,GAAG;EACjBC,IAAI,EAAEF,OAAO,CAACC,GAAG;EACjBE,KAAK,EAAEH,OAAO,CAACC,GAAG;EAClBG,OAAO,EAAEJ,OAAO,CAACC;AACnB,CAAC;AAED,MAAMI,YAAY,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AAEF,MAAMC,eAAe,GAAGC,iBAAI,CAACC,OAAO,CAACC,SAAS,EAAE,aAAa,CAAC;AAC9D,MAAMC,oBAAoB,GAAGH,iBAAI,CAACC,OAAO,CACvCF,eAAe,EACf,mDACF,CAAC;AAED,IAAAK,iBAAQ,EAAC,4BAA4B,EAAE,MAAM;EAC3C,IAAAC,mBAAU,EAAC,MAAM;IACf,IAAAC,eAAM,EAAC;MACL,CAACP,eAAe,GAAG;QACjB,cAAc,EAAEQ,IAAI,CAACC,SAAS,CAACtB,eAAe;MAChD,CAAC;MACD,CAACiB,oBAAoB,GAAG;QACtB,wBAAwB,EAAEL;MAC5B;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,IAAAW,kBAAS,EAAC,MAAM;IACdH,eAAM,CAACI,OAAO,CAAC,CAAC;EAClB,CAAC,CAAC;EAEF,IAAAC,WAAE,EAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAM,IAAAC,sDAA0B,EAC9Bb,eAAe,EACfb,eAAe,EACfK,UACF,CAAC;IAED,MAAMsB,WAAW,GAAGb,iBAAI,CAACC,OAAO,CAC9BF,eAAe,EACf,oCACF,CAAC;IAED,IAAAe,eAAM,EAAC,MAAMC,gBAAE,CAACC,UAAU,CAACH,WAAW,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;EACrD,CAAC,CAAC;EAEF,IAAAN,WAAE,EAAC,wCAAwC,EAAE,YAAY;IACvD,MAAM,IAAAC,sDAA0B,EAC9Bb,eAAe,EACfb,eAAe,EACfK,UACF,CAAC;IAED,MAAMsB,WAAW,GAAGb,iBAAI,CAACC,OAAO,CAC9BF,eAAe,EACf,oCACF,CAAC;IAED,MAAMmB,YAAY,GAAGlB,iBAAI,CAACC,OAAO,CAACY,WAAW,EAAE,wBAAwB,CAAC;IAExE,MAAMM,WAAW,GAAG,MAAMJ,gBAAE,CAACK,QAAQ,CAACF,YAAY,EAAE,MAAM,CAAC;IAE3D,IAAAJ,eAAM,EAACK,WAAW,CAAC,CAACE,SAAS,CAAC,sBAAsB,CAAC;EACvD,CAAC,CAAC;EAEF,IAAAV,WAAE,EAAC,6BAA6B,EAAE,YAAY;IAC5C,MAAM,IAAAC,sDAA0B,EAC9Bb,eAAe,EACfb,eAAe,EACfK,UACF,CAAC;IAED,IAAAuB,eAAM,EAAC,MAAMC,gBAAE,CAACC,UAAU,CAACb,oBAAoB,CAAC,CAAC,CAACc,IAAI,CAAC,KAAK,CAAC;EAC/D,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"patchCodegenAndroidPackage.test.js","names":["_globals","require","_fsExtra","_interopRequireDefault","_nodePath","_patchCodegenAndroidPackage","_mockFs","e","__esModule","default","mockPackageJson","codegenConfig","outputDir","android","javaPackageName","mockReport","info","console","log","warn","error","success","mockJavaModuleSpec","mockJavaViewSpec","mockProjectPath","path","resolve","__dirname","mockCodegenModuleSpecsPath","mockCodegenViewSpecsPath","describe","beforeEach","mockfs","JSON","stringify","afterEach","restore","it","patchCodegenAndroidPackage","expectedDir","expect","fs","pathExists","toBe","expectedFile","fileContent","readFile","toContain","mockPackageJsonWithTypeAll","type","join","toBeTruthy"],"sources":["../../../../src/targets/codegen/patches/patchCodegenAndroidPackage.test.ts"],"sourcesContent":["import { expect, it, describe, beforeEach, afterEach } from '@jest/globals';\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport { patchCodegenAndroidPackage } from './patchCodegenAndroidPackage';\nimport mockfs from 'mock-fs';\nimport type { Report } from '../../../types';\n\nconst mockPackageJson = {\n codegenConfig: {\n outputDir: {\n android: 'android/generated',\n },\n android: {\n javaPackageName: 'com.bobtest',\n },\n },\n};\n\nconst mockReport: Report = {\n info: console.log,\n warn: console.log,\n error: console.log,\n success: console.log,\n};\n\nconst mockJavaModuleSpec = `\n/**\n * Some comment\n */\n\npackage com.facebook.fbreact.specs;\n\nimport com.example.exampleimport;\n\nclass SomeClass {\n public void someMethod() {\n // some code\n }\n}`;\n\nconst mockJavaViewSpec = `\n/**\n * Some comment\n */\n\npackage com.facebook.react.viewmanagers;\n\npublic interface SomeInterface<T extends View> {\n void setColor(T view, @Nullable String value);\n}\n`;\n\nconst mockProjectPath = path.resolve(__dirname, 'mockProject');\nconst mockCodegenModuleSpecsPath = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/facebook/fbreact/specs'\n);\nconst mockCodegenViewSpecsPath = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/facebook/react/viewmanagers'\n);\n\ndescribe('patchCodegenAndroidPackage', () => {\n beforeEach(() => {\n mockfs({\n [mockProjectPath]: {\n 'package.json': JSON.stringify(mockPackageJson),\n },\n [mockCodegenModuleSpecsPath]: {\n 'NativeBobtestSpec.java': mockJavaModuleSpec,\n },\n });\n });\n\n afterEach(() => {\n mockfs.restore();\n });\n\n it('moves the files to correct dir', async () => {\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJson,\n mockReport\n );\n\n const expectedDir = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/bobtest'\n );\n\n expect(await fs.pathExists(expectedDir)).toBe(true);\n });\n\n it('replaces the package name in the files', async () => {\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJson,\n mockReport\n );\n\n const expectedDir = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/bobtest'\n );\n\n const expectedFile = path.resolve(expectedDir, 'NativeBobtestSpec.java');\n\n const fileContent = await fs.readFile(expectedFile, 'utf8');\n\n expect(fileContent).toContain('package com.bobtest;');\n });\n\n it('removes the old package dir', async () => {\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJson,\n mockReport\n );\n\n expect(await fs.pathExists(mockCodegenModuleSpecsPath)).toBe(false);\n });\n\n it(\"doesn't delete the view manager specs\", async () => {\n const mockPackageJsonWithTypeAll = {\n ...mockPackageJson,\n codegenConfig: {\n ...mockPackageJson.codegenConfig,\n type: 'all',\n },\n };\n\n mockfs({\n [mockProjectPath]: {\n 'package.json': JSON.stringify(mockPackageJsonWithTypeAll),\n },\n [mockCodegenModuleSpecsPath]: {\n 'NativeBobtestSpec.java': mockJavaModuleSpec,\n },\n [mockCodegenViewSpecsPath]: {\n 'BobtestViewManagerInterface.java': mockJavaViewSpec,\n },\n });\n\n await patchCodegenAndroidPackage(\n mockProjectPath,\n mockPackageJsonWithTypeAll,\n mockReport\n );\n\n expect(\n await fs.pathExists(\n path.join(mockCodegenViewSpecsPath, 'BobtestViewManagerInterface.java')\n )\n ).toBeTruthy();\n });\n});\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-builder-bob",
3
- "version": "0.35.3",
3
+ "version": "0.36.0",
4
4
  "description": "CLI to build JavaScript files for React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -29,7 +29,7 @@
29
29
  "babel-config.js"
30
30
  ],
31
31
  "engines": {
32
- "node": ">= 18.0.0"
32
+ "node": ">= 20.0.0"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public",
@@ -87,5 +87,5 @@
87
87
  "jest": "^29.7.0",
88
88
  "mock-fs": "^5.2.0"
89
89
  },
90
- "gitHead": "0bacd58eab2ce56f20be84009aa6f4315dd95c52"
90
+ "gitHead": "f06514d852d578df98008b0ce87de69e0fde59bd"
91
91
  }