react-native-builder-bob 0.31.0 → 0.32.1

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.
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = build;
7
7
  var _kleur = _interopRequireDefault(require("kleur"));
8
8
  var _patchCodegen = require("../utils/patchCodegen");
9
- var _spawn = require("../utils/spawn");
10
9
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
10
  var _path = _interopRequireDefault(require("path"));
12
11
  var _del = _interopRequireDefault(require("del"));
12
+ var _runRNCCli = require("../utils/runRNCCli");
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  async function build({
15
15
  root,
@@ -28,24 +28,26 @@ async function build({
28
28
  await (0, _del.default)([codegenAndroidPath]);
29
29
  }
30
30
  try {
31
- await (0, _spawn.spawn)('npx', ['@react-native-community/cli', 'codegen'], {
32
- stdio: 'ignore'
33
- });
34
- (0, _patchCodegen.patchCodegen)(root, packageJson, report);
31
+ await (0, _runRNCCli.runRNCCli)(['codegen']);
32
+ await (0, _patchCodegen.patchCodegen)(root, packageJson, report);
35
33
  report.success('Generated native code with codegen');
36
34
  } catch (e) {
37
35
  if (e != null && typeof e === 'object') {
38
36
  if ('stdout' in e && e.stdout != null) {
39
37
  report.error(`Errors found while generating codegen files:\n${e.stdout.toString()}`);
40
38
  } else if ('message' in e && typeof e.message === 'string') {
41
- report.error(e.message);
39
+ if (e.message.includes("Error: Cannot find module '@react-native-community/cli/package.json'")) {
40
+ report.error("You don't have `@react-native-community/cli` in your root package's dev dependencies. Please install it and make sure it uses the same version as your application.");
41
+ } else {
42
+ report.error(e.message);
43
+ }
42
44
  } else {
43
45
  throw e;
44
46
  }
45
47
  } else {
46
48
  throw e;
47
49
  }
48
- throw new Error('Failed generate the codegen files.');
50
+ process.exit(1);
49
51
  }
50
52
  }
51
53
  //# sourceMappingURL=codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","names":["_kleur","_interopRequireDefault","require","_patchCodegen","_spawn","_fsExtra","_path","_del","e","__esModule","default","build","root","report","packageJsonPath","path","resolve","packageJson","fs","readJson","codegenIosPath","codegenConfig","outputDir","ios","info","kleur","blue","relative","del","codegenAndroidPath","android","spawn","stdio","patchCodegen","success","stdout","error","toString","message","Error"],"sources":["../../src/targets/codegen.ts"],"sourcesContent":["import kleur from 'kleur';\nimport type { Input } from '../types';\nimport { patchCodegen } from '../utils/patchCodegen';\nimport { spawn } from '../utils/spawn';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport del from 'del';\n\ntype Options = Input;\n\nexport default async function build({ root, report }: Options) {\n const packageJsonPath = path.resolve(root, 'package.json');\n const packageJson = await fs.readJson(packageJsonPath);\n\n const codegenIosPath = packageJson.codegenConfig?.outputDir?.ios;\n if (codegenIosPath != null) {\n report.info(\n `Cleaning up previous iOS codegen native code at ${kleur.blue(\n path.relative(root, codegenIosPath)\n )}`\n );\n await del([codegenIosPath]);\n }\n\n const codegenAndroidPath = packageJson.codegenConfig?.outputDir?.android;\n if (codegenAndroidPath != null) {\n report.info(\n `Cleaning up previous Android codegen native code at ${kleur.blue(\n path.relative(root, codegenAndroidPath)\n )}`\n );\n await del([codegenAndroidPath]);\n }\n\n try {\n await spawn('npx', ['@react-native-community/cli', 'codegen'], {\n stdio: 'ignore',\n });\n\n patchCodegen(root, packageJson, report);\n\n report.success('Generated native code with codegen');\n } catch (e: unknown) {\n if (e != null && typeof e === 'object') {\n if ('stdout' in e && e.stdout != null) {\n report.error(\n `Errors found while generating codegen files:\\n${e.stdout.toString()}`\n );\n } else if ('message' in e && typeof e.message === 'string') {\n report.error(e.message);\n } else {\n throw e;\n }\n } else {\n throw e;\n }\n\n throw new Error('Failed generate the codegen files.');\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,IAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAsB,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIP,eAAeG,KAAKA,CAAC;EAAEC,IAAI;EAAEC;AAAgB,CAAC,EAAE;EAC7D,MAAMC,eAAe,GAAGC,aAAI,CAACC,OAAO,CAACJ,IAAI,EAAE,cAAc,CAAC;EAC1D,MAAMK,WAAW,GAAG,MAAMC,gBAAE,CAACC,QAAQ,CAACL,eAAe,CAAC;EAEtD,MAAMM,cAAc,GAAGH,WAAW,CAACI,aAAa,EAAEC,SAAS,EAAEC,GAAG;EAChE,IAAIH,cAAc,IAAI,IAAI,EAAE;IAC1BP,MAAM,CAACW,IAAI,CACT,mDAAmDC,cAAK,CAACC,IAAI,CAC3DX,aAAI,CAACY,QAAQ,CAACf,IAAI,EAAEQ,cAAc,CACpC,CAAC,EACH,CAAC;IACD,MAAM,IAAAQ,YAAG,EAAC,CAACR,cAAc,CAAC,CAAC;EAC7B;EAEA,MAAMS,kBAAkB,GAAGZ,WAAW,CAACI,aAAa,EAAEC,SAAS,EAAEQ,OAAO;EACxE,IAAID,kBAAkB,IAAI,IAAI,EAAE;IAC9BhB,MAAM,CAACW,IAAI,CACT,uDAAuDC,cAAK,CAACC,IAAI,CAC/DX,aAAI,CAACY,QAAQ,CAACf,IAAI,EAAEiB,kBAAkB,CACxC,CAAC,EACH,CAAC;IACD,MAAM,IAAAD,YAAG,EAAC,CAACC,kBAAkB,CAAC,CAAC;EACjC;EAEA,IAAI;IACF,MAAM,IAAAE,YAAK,EAAC,KAAK,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,EAAE;MAC7DC,KAAK,EAAE;IACT,CAAC,CAAC;IAEF,IAAAC,0BAAY,EAACrB,IAAI,EAAEK,WAAW,EAAEJ,MAAM,CAAC;IAEvCA,MAAM,CAACqB,OAAO,CAAC,oCAAoC,CAAC;EACtD,CAAC,CAAC,OAAO1B,CAAU,EAAE;IACnB,IAAIA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;MACtC,IAAI,QAAQ,IAAIA,CAAC,IAAIA,CAAC,CAAC2B,MAAM,IAAI,IAAI,EAAE;QACrCtB,MAAM,CAACuB,KAAK,CACV,iDAAiD5B,CAAC,CAAC2B,MAAM,CAACE,QAAQ,CAAC,CAAC,EACtE,CAAC;MACH,CAAC,MAAM,IAAI,SAAS,IAAI7B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,OAAO,KAAK,QAAQ,EAAE;QAC1DzB,MAAM,CAACuB,KAAK,CAAC5B,CAAC,CAAC8B,OAAO,CAAC;MACzB,CAAC,MAAM;QACL,MAAM9B,CAAC;MACT;IACF,CAAC,MAAM;MACL,MAAMA,CAAC;IACT;IAEA,MAAM,IAAI+B,KAAK,CAAC,oCAAoC,CAAC;EACvD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"codegen.js","names":["_kleur","_interopRequireDefault","require","_patchCodegen","_fsExtra","_path","_del","_runRNCCli","e","__esModule","default","build","root","report","packageJsonPath","path","resolve","packageJson","fs","readJson","codegenIosPath","codegenConfig","outputDir","ios","info","kleur","blue","relative","del","codegenAndroidPath","android","runRNCCli","patchCodegen","success","stdout","error","toString","message","includes","process","exit"],"sources":["../../src/targets/codegen.ts"],"sourcesContent":["import kleur from 'kleur';\nimport type { Input } from '../types';\nimport { patchCodegen } from '../utils/patchCodegen';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport del from 'del';\nimport { runRNCCli } from '../utils/runRNCCli';\n\ntype Options = Input;\n\nexport default async function build({ root, report }: Options) {\n const packageJsonPath = path.resolve(root, 'package.json');\n const packageJson = await fs.readJson(packageJsonPath);\n\n const codegenIosPath = packageJson.codegenConfig?.outputDir?.ios;\n if (codegenIosPath != null) {\n report.info(\n `Cleaning up previous iOS codegen native code at ${kleur.blue(\n path.relative(root, codegenIosPath)\n )}`\n );\n await del([codegenIosPath]);\n }\n\n const codegenAndroidPath = packageJson.codegenConfig?.outputDir?.android;\n if (codegenAndroidPath != null) {\n report.info(\n `Cleaning up previous Android codegen native code at ${kleur.blue(\n path.relative(root, codegenAndroidPath)\n )}`\n );\n await del([codegenAndroidPath]);\n }\n\n try {\n await runRNCCli(['codegen']);\n\n await patchCodegen(root, packageJson, report);\n\n report.success('Generated native code with codegen');\n } catch (e: unknown) {\n if (e != null && typeof e === 'object') {\n if ('stdout' in e && e.stdout != null) {\n report.error(\n `Errors found while generating codegen files:\\n${e.stdout.toString()}`\n );\n } else if ('message' in e && typeof e.message === 'string') {\n if (\n e.message.includes(\n \"Error: Cannot find module '@react-native-community/cli/package.json'\"\n )\n ) {\n report.error(\n \"You don't have `@react-native-community/cli` in your root package's dev dependencies. Please install it and make sure it uses the same version as your application.\"\n );\n } else {\n report.error(e.message);\n }\n } else {\n throw e;\n }\n } else {\n throw e;\n }\n\n process.exit(1);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,IAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAA+C,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIhC,eAAeG,KAAKA,CAAC;EAAEC,IAAI;EAAEC;AAAgB,CAAC,EAAE;EAC7D,MAAMC,eAAe,GAAGC,aAAI,CAACC,OAAO,CAACJ,IAAI,EAAE,cAAc,CAAC;EAC1D,MAAMK,WAAW,GAAG,MAAMC,gBAAE,CAACC,QAAQ,CAACL,eAAe,CAAC;EAEtD,MAAMM,cAAc,GAAGH,WAAW,CAACI,aAAa,EAAEC,SAAS,EAAEC,GAAG;EAChE,IAAIH,cAAc,IAAI,IAAI,EAAE;IAC1BP,MAAM,CAACW,IAAI,CACT,mDAAmDC,cAAK,CAACC,IAAI,CAC3DX,aAAI,CAACY,QAAQ,CAACf,IAAI,EAAEQ,cAAc,CACpC,CAAC,EACH,CAAC;IACD,MAAM,IAAAQ,YAAG,EAAC,CAACR,cAAc,CAAC,CAAC;EAC7B;EAEA,MAAMS,kBAAkB,GAAGZ,WAAW,CAACI,aAAa,EAAEC,SAAS,EAAEQ,OAAO;EACxE,IAAID,kBAAkB,IAAI,IAAI,EAAE;IAC9BhB,MAAM,CAACW,IAAI,CACT,uDAAuDC,cAAK,CAACC,IAAI,CAC/DX,aAAI,CAACY,QAAQ,CAACf,IAAI,EAAEiB,kBAAkB,CACxC,CAAC,EACH,CAAC;IACD,MAAM,IAAAD,YAAG,EAAC,CAACC,kBAAkB,CAAC,CAAC;EACjC;EAEA,IAAI;IACF,MAAM,IAAAE,oBAAS,EAAC,CAAC,SAAS,CAAC,CAAC;IAE5B,MAAM,IAAAC,0BAAY,EAACpB,IAAI,EAAEK,WAAW,EAAEJ,MAAM,CAAC;IAE7CA,MAAM,CAACoB,OAAO,CAAC,oCAAoC,CAAC;EACtD,CAAC,CAAC,OAAOzB,CAAU,EAAE;IACnB,IAAIA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;MACtC,IAAI,QAAQ,IAAIA,CAAC,IAAIA,CAAC,CAAC0B,MAAM,IAAI,IAAI,EAAE;QACrCrB,MAAM,CAACsB,KAAK,CACV,iDAAiD3B,CAAC,CAAC0B,MAAM,CAACE,QAAQ,CAAC,CAAC,EACtE,CAAC;MACH,CAAC,MAAM,IAAI,SAAS,IAAI5B,CAAC,IAAI,OAAOA,CAAC,CAAC6B,OAAO,KAAK,QAAQ,EAAE;QAC1D,IACE7B,CAAC,CAAC6B,OAAO,CAACC,QAAQ,CAChB,sEACF,CAAC,EACD;UACAzB,MAAM,CAACsB,KAAK,CACV,qKACF,CAAC;QACH,CAAC,MAAM;UACLtB,MAAM,CAACsB,KAAK,CAAC3B,CAAC,CAAC6B,OAAO,CAAC;QACzB;MACF,CAAC,MAAM;QACL,MAAM7B,CAAC;MACT;IACF,CAAC,MAAM;MACL,MAAMA,CAAC;IACT;IAEA+B,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB;AACF","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runRNCCli = runRNCCli;
7
+ var _spawn = require("./spawn");
8
+ var _nodePath = _interopRequireDefault(require("node:path"));
9
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
10
+ var _nodeAssert = _interopRequireDefault(require("node:assert"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const NODE_BINARY = 'node';
13
+
14
+ /**
15
+ * Runs the React Native Community CLI with the specified arguments
16
+ */
17
+ async function runRNCCli(args, options = {
18
+ stdio: 'ignore'
19
+ }) {
20
+ const rncCliBinaryName = await getCliBinaryName();
21
+ const RNC_CLI_BINARY_PATH = _nodePath.default.resolve(process.cwd(),
22
+ // We are always expected to run in the library
23
+ 'node_modules', '.bin', rncCliBinaryName);
24
+ return await (0, _spawn.spawn)(RNC_CLI_BINARY_PATH, args, options);
25
+ }
26
+ async function getCliBinaryName() {
27
+ const rncCliPackagePath = await (0, _spawn.spawn)(NODE_BINARY, ['-e', `console.log(require.resolve('@react-native-community/cli/package.json'))`]);
28
+ const rncCliPackage = await _fsExtra.default.readJson(rncCliPackagePath);
29
+ const binProperty = rncCliPackage.bin;
30
+ (0, _nodeAssert.default)(typeof binProperty === 'object', "React Native CLI doesn't specify proper binaries");
31
+ const binaries = Object.keys(binProperty);
32
+ const rncCliBinaryName = binaries[0];
33
+ (0, _nodeAssert.default)(typeof rncCliBinaryName === 'string', "React Native Community CLI doesn't have any binaries to run");
34
+ return rncCliBinaryName;
35
+ }
36
+ //# sourceMappingURL=runRNCCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runRNCCli.js","names":["_spawn","require","_nodePath","_interopRequireDefault","_fsExtra","_nodeAssert","e","__esModule","default","NODE_BINARY","runRNCCli","args","options","stdio","rncCliBinaryName","getCliBinaryName","RNC_CLI_BINARY_PATH","path","resolve","process","cwd","spawn","rncCliPackagePath","rncCliPackage","fs","readJson","binProperty","bin","assert","binaries","Object","keys"],"sources":["../../src/utils/runRNCCli.ts"],"sourcesContent":["import { type SpawnOptions } from 'node:child_process';\nimport { spawn } from './spawn';\nimport path from 'node:path';\nimport fs from 'fs-extra';\nimport assert from 'node:assert';\n\nconst NODE_BINARY = 'node';\n\n/**\n * Runs the React Native Community CLI with the specified arguments\n */\nexport async function runRNCCli(\n args: string[],\n options: SpawnOptions = {\n stdio: 'ignore',\n }\n) {\n const rncCliBinaryName = await getCliBinaryName();\n\n const RNC_CLI_BINARY_PATH = path.resolve(\n process.cwd(), // We are always expected to run in the library\n 'node_modules',\n '.bin',\n rncCliBinaryName\n );\n\n return await spawn(RNC_CLI_BINARY_PATH, args, options);\n}\n\nasync function getCliBinaryName(): Promise<string> {\n const rncCliPackagePath = await spawn(NODE_BINARY, [\n '-e',\n `console.log(require.resolve('@react-native-community/cli/package.json'))`,\n ]);\n\n const rncCliPackage = await fs.readJson(rncCliPackagePath);\n const binProperty = rncCliPackage.bin as Record<string, string>;\n assert(\n typeof binProperty === 'object',\n \"React Native CLI doesn't specify proper binaries\"\n );\n\n const binaries = Object.keys(binProperty);\n const rncCliBinaryName = binaries[0] as string;\n assert(\n typeof rncCliBinaryName === 'string',\n \"React Native Community CLI doesn't have any binaries to run\"\n );\n\n return rncCliBinaryName;\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,WAAA,GAAAF,sBAAA,CAAAF,OAAA;AAAiC,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEjC,MAAMG,WAAW,GAAG,MAAM;;AAE1B;AACA;AACA;AACO,eAAeC,SAASA,CAC7BC,IAAc,EACdC,OAAqB,GAAG;EACtBC,KAAK,EAAE;AACT,CAAC,EACD;EACA,MAAMC,gBAAgB,GAAG,MAAMC,gBAAgB,CAAC,CAAC;EAEjD,MAAMC,mBAAmB,GAAGC,iBAAI,CAACC,OAAO,CACtCC,OAAO,CAACC,GAAG,CAAC,CAAC;EAAE;EACf,cAAc,EACd,MAAM,EACNN,gBACF,CAAC;EAED,OAAO,MAAM,IAAAO,YAAK,EAACL,mBAAmB,EAAEL,IAAI,EAAEC,OAAO,CAAC;AACxD;AAEA,eAAeG,gBAAgBA,CAAA,EAAoB;EACjD,MAAMO,iBAAiB,GAAG,MAAM,IAAAD,YAAK,EAACZ,WAAW,EAAE,CACjD,IAAI,EACJ,0EAA0E,CAC3E,CAAC;EAEF,MAAMc,aAAa,GAAG,MAAMC,gBAAE,CAACC,QAAQ,CAACH,iBAAiB,CAAC;EAC1D,MAAMI,WAAW,GAAGH,aAAa,CAACI,GAA6B;EAC/D,IAAAC,mBAAM,EACJ,OAAOF,WAAW,KAAK,QAAQ,EAC/B,kDACF,CAAC;EAED,MAAMG,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACL,WAAW,CAAC;EACzC,MAAMZ,gBAAgB,GAAGe,QAAQ,CAAC,CAAC,CAAW;EAC9C,IAAAD,mBAAM,EACJ,OAAOd,gBAAgB,KAAK,QAAQ,EACpC,6DACF,CAAC;EAED,OAAOA,gBAAgB;AACzB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-builder-bob",
3
- "version": "0.31.0",
3
+ "version": "0.32.1",
4
4
  "description": "CLI to build JavaScript files for React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -87,5 +87,5 @@
87
87
  "jest": "^29.7.0",
88
88
  "mock-fs": "^5.2.0"
89
89
  },
90
- "gitHead": "194296b8ce2a7885b639532abb06535f9e66899d"
90
+ "gitHead": "f822763aca8b2043c39343c9443f6b1f4862366d"
91
91
  }