react-native-builder-bob 0.32.0 → 0.33.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.
package/babel-preset.js
CHANGED
|
@@ -6,6 +6,7 @@ const browserslist = require('browserslist');
|
|
|
6
6
|
* Babel preset for React Native Builder Bob
|
|
7
7
|
* @param {'commonjs' | 'preserve'} options.modules - Whether to compile modules to CommonJS or preserve them
|
|
8
8
|
* @param {Boolean} options.esm - Whether to output ES module compatible code, e.g. by adding extension to import/export statements
|
|
9
|
+
* @param {'automatic' | 'classic'} options.jsxRuntime - Which JSX runtime to use, defaults to 'automatic'
|
|
9
10
|
*/
|
|
10
11
|
module.exports = function (api, options, cwd) {
|
|
11
12
|
const cjs = options.modules === 'commonjs';
|
|
@@ -37,7 +38,8 @@ module.exports = function (api, options, cwd) {
|
|
|
37
38
|
[
|
|
38
39
|
require.resolve('@babel/preset-react'),
|
|
39
40
|
{
|
|
40
|
-
runtime:
|
|
41
|
+
runtime:
|
|
42
|
+
options.jsxRuntime !== undefined ? options.jsxRuntime : 'automatic',
|
|
41
43
|
},
|
|
42
44
|
],
|
|
43
45
|
require.resolve('@babel/preset-typescript'),
|
package/lib/utils/compile.js
CHANGED
|
@@ -24,7 +24,8 @@ async function compile({
|
|
|
24
24
|
modules,
|
|
25
25
|
copyFlow,
|
|
26
26
|
sourceMaps = true,
|
|
27
|
-
report
|
|
27
|
+
report,
|
|
28
|
+
jsxRuntime = 'automatic'
|
|
28
29
|
}) {
|
|
29
30
|
const files = _glob.default.sync('**/*', {
|
|
30
31
|
cwd: source,
|
|
@@ -71,7 +72,8 @@ async function compile({
|
|
|
71
72
|
modules:
|
|
72
73
|
// If a file is explicitly marked as ESM, then preserve the syntax
|
|
73
74
|
/\.m[jt]s$/.test(filepath) ? 'preserve' : modules,
|
|
74
|
-
esm
|
|
75
|
+
esm,
|
|
76
|
+
jsxRuntime
|
|
75
77
|
}]]
|
|
76
78
|
})
|
|
77
79
|
});
|
package/lib/utils/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","babel","_interopRequireWildcard","_glob","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","sourceExt","compile","root","source","output","esm","babelrc","configFile","exclude","modules","copyFlow","sourceMaps","report","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","keys","devDependencies","includes","warn","mkdirp","writeJSON","type","Promise","all","map","filepath","outputFilename","replace","dirname","test","copy","content","result","transformAsync","sourceRoot","sourceFileName","filename","presets","resolve","Error","code","mapFilename","basename","sourcesContent","undefined","writeFile","success","getGeneratedEntryPath","ext","indexName","potentialPath","pathExists","fields","name","value","main","module","push","exports","import","some","field","startsWith","error","generatedEntryPath"],"sources":["../../src/utils/compile.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport * as babel from '@babel/core';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n esm?: boolean;\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n modules: 'commonjs' | 'preserve';\n exclude: string;\n};\n\nconst sourceExt = /\\.([cm])?[jt]sx?$/;\n\nexport default async function compile({\n root,\n source,\n output,\n esm = false,\n babelrc = false,\n configFile = false,\n exclude,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n}: Options) {\n const files = glob.sync('**/*', {\n cwd: source,\n absolute: true,\n nodir: true,\n ignore: exclude,\n });\n\n report.info(\n `Compiling ${kleur.blue(String(files.length))} files in ${kleur.blue(\n path.relative(root, source)\n )} with ${kleur.blue('babel')}`\n );\n\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if (copyFlow) {\n if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {\n report.warn(\n `The ${kleur.blue(\n 'copyFlow'\n )} option was specified, but couldn't find ${kleur.blue(\n 'flow-bin'\n )} in ${kleur.blue(\n 'package.json'\n )}.\\nIf the project is using ${kleur.blue(\n 'flow'\n )}, then make sure you have added ${kleur.blue(\n 'flow-bin'\n )} to your ${kleur.blue(\n 'devDependencies'\n )}, otherwise remove the ${kleur.blue('copyFlow')} option.`\n );\n }\n }\n\n await fs.mkdirp(output);\n\n if (!esm) {\n // Ideally we should code with ESM syntax as CommonJS if `esm` is not enabled\n // This maintain compatibility with code written for CommonJS\n // However currently NextJS has non-standard behavior and breaks this\n // So for now we only set this conditionally\n await fs.writeJSON(path.join(output, 'package.json'), {\n type: modules === 'commonjs' ? 'commonjs' : 'module',\n });\n }\n\n await Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(sourceExt, '.$1js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!sourceExt.test(filepath)) {\n // Copy files which aren't source code\n fs.copy(filepath, outputFilename);\n return;\n }\n\n const content = await fs.readFile(filepath, 'utf-8');\n const result = await babel.transformAsync(content, {\n cwd: root,\n babelrc: babelrc,\n configFile: configFile,\n sourceMaps,\n sourceRoot: path.relative(path.dirname(outputFilename), source),\n sourceFileName: path.relative(source, filepath),\n filename: filepath,\n ...(babelrc || configFile\n ? null\n : {\n presets: [\n [\n require.resolve('../../babel-preset'),\n {\n modules:\n // If a file is explicitly marked as ESM, then preserve the syntax\n /\\.m[jt]s$/.test(filepath) ? 'preserve' : modules,\n esm,\n },\n ],\n ],\n }),\n });\n\n if (result == null) {\n throw new Error('Output code was null');\n }\n\n let code = result.code;\n\n if (sourceMaps && result.map) {\n const mapFilename = outputFilename + '.map';\n\n code += '\\n//# sourceMappingURL=' + path.basename(mapFilename);\n\n // Don't inline the source code, it can be retrieved from the source file\n result.map.sourcesContent = undefined;\n\n await fs.writeJSON(mapFilename, result.map);\n }\n\n await fs.writeFile(outputFilename, code);\n\n if (copyFlow) {\n fs.copy(filepath, outputFilename + '.flow');\n }\n })\n );\n\n report.success(`Wrote files to ${kleur.blue(path.relative(root, output))}`);\n\n const getGeneratedEntryPath = async () => {\n if (pkg.source) {\n for (const ext of ['.js', '.cjs', '.mjs']) {\n const indexName =\n // The source field may not have an extension, so we add it instead of replacing directly\n path.basename(pkg.source).replace(sourceExt, '') + ext;\n\n const potentialPath = path.join(\n output,\n path.dirname(path.relative(source, path.join(root, pkg.source))),\n indexName\n );\n\n if (await fs.pathExists(potentialPath)) {\n return path.relative(root, potentialPath);\n }\n }\n }\n\n return null;\n };\n\n const fields =\n modules === 'commonjs'\n ? [{ name: 'main', value: pkg.main }]\n : [{ name: 'module', value: pkg.module }];\n\n if (esm) {\n if (modules === 'commonjs') {\n fields.push(\n typeof pkg.exports?.['.']?.require === 'string'\n ? {\n name: \"exports['.'].require\",\n value: pkg.exports?.['.']?.require,\n }\n : {\n name: \"exports['.'].require.default\",\n value: pkg.exports?.['.']?.require?.default,\n }\n );\n } else {\n fields.push(\n typeof pkg.exports?.['.']?.import === 'string'\n ? {\n name: \"exports['.'].import\",\n value: pkg.exports?.['.']?.import,\n }\n : {\n name: \"exports['.'].import.default\",\n value: pkg.exports?.['.']?.import?.default,\n }\n );\n }\n } else {\n if (modules === 'commonjs' && pkg.exports?.['.']?.require) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].require\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n } else if (modules === 'preserve' && pkg.exports?.['.']?.import) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].import\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n }\n }\n\n if (fields.some((field) => field.value)) {\n await Promise.all(\n fields.map(async ({ name, value }) => {\n if (!value) {\n return;\n }\n\n if (name.startsWith('exports') && value && !/^\\.\\//.test(value)) {\n report.error(\n `The ${kleur.blue(name)} field in ${kleur.blue(\n `package.json`\n )} should be a relative path starting with ${kleur.blue(\n './'\n )}. Found: ${kleur.blue(value)}`\n );\n\n throw new Error(`Found incorrect path in '${name}' field.`);\n }\n\n try {\n require.resolve(path.join(root, value));\n } catch (e: unknown) {\n if (\n e != null &&\n typeof e === 'object' &&\n 'code' in e &&\n e.code === 'MODULE_NOT_FOUND'\n ) {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n if (!generatedEntryPath) {\n report.warn(\n `Failed to detect the entry point for the generated files. Make sure you have a valid ${kleur.blue(\n 'source'\n )} field in your ${kleur.blue('package.json')}.`\n );\n }\n\n report.error(\n `The ${kleur.blue(name)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n value\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}${\n generatedEntryPath\n ? ` (found ${kleur.blue(generatedEntryPath)}).`\n : '.'\n }`\n );\n\n throw new Error(`Found incorrect path in '${name}' field.`);\n }\n\n throw e;\n }\n })\n );\n } else {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n report.warn(\n `No ${fields\n .map((field) => kleur.blue(field.name))\n .join(' or ')} field found in ${kleur.blue('package.json')}. Consider ${\n generatedEntryPath\n ? `pointing to ${kleur.blue(generatedEntryPath)}`\n : `adding ${fields.length > 1 ? 'them' : 'it'}`\n } so that consumers of your package can import your package.`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"compile.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","babel","_interopRequireWildcard","_glob","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","sourceExt","compile","root","source","output","esm","babelrc","configFile","exclude","modules","copyFlow","sourceMaps","report","jsxRuntime","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","keys","devDependencies","includes","warn","mkdirp","writeJSON","type","Promise","all","map","filepath","outputFilename","replace","dirname","test","copy","content","result","transformAsync","sourceRoot","sourceFileName","filename","presets","resolve","Error","code","mapFilename","basename","sourcesContent","undefined","writeFile","success","getGeneratedEntryPath","ext","indexName","potentialPath","pathExists","fields","name","value","main","module","push","exports","import","some","field","startsWith","error","generatedEntryPath"],"sources":["../../src/utils/compile.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport * as babel from '@babel/core';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n esm?: boolean;\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n modules: 'commonjs' | 'preserve';\n exclude: string;\n jsxRuntime?: 'automatic' | 'classic';\n};\n\nconst sourceExt = /\\.([cm])?[jt]sx?$/;\n\nexport default async function compile({\n root,\n source,\n output,\n esm = false,\n babelrc = false,\n configFile = false,\n exclude,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n jsxRuntime = 'automatic',\n}: Options) {\n const files = glob.sync('**/*', {\n cwd: source,\n absolute: true,\n nodir: true,\n ignore: exclude,\n });\n\n report.info(\n `Compiling ${kleur.blue(String(files.length))} files in ${kleur.blue(\n path.relative(root, source)\n )} with ${kleur.blue('babel')}`\n );\n\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if (copyFlow) {\n if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {\n report.warn(\n `The ${kleur.blue(\n 'copyFlow'\n )} option was specified, but couldn't find ${kleur.blue(\n 'flow-bin'\n )} in ${kleur.blue(\n 'package.json'\n )}.\\nIf the project is using ${kleur.blue(\n 'flow'\n )}, then make sure you have added ${kleur.blue(\n 'flow-bin'\n )} to your ${kleur.blue(\n 'devDependencies'\n )}, otherwise remove the ${kleur.blue('copyFlow')} option.`\n );\n }\n }\n\n await fs.mkdirp(output);\n\n if (!esm) {\n // Ideally we should code with ESM syntax as CommonJS if `esm` is not enabled\n // This maintain compatibility with code written for CommonJS\n // However currently NextJS has non-standard behavior and breaks this\n // So for now we only set this conditionally\n await fs.writeJSON(path.join(output, 'package.json'), {\n type: modules === 'commonjs' ? 'commonjs' : 'module',\n });\n }\n\n await Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(sourceExt, '.$1js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!sourceExt.test(filepath)) {\n // Copy files which aren't source code\n fs.copy(filepath, outputFilename);\n return;\n }\n\n const content = await fs.readFile(filepath, 'utf-8');\n const result = await babel.transformAsync(content, {\n cwd: root,\n babelrc: babelrc,\n configFile: configFile,\n sourceMaps,\n sourceRoot: path.relative(path.dirname(outputFilename), source),\n sourceFileName: path.relative(source, filepath),\n filename: filepath,\n ...(babelrc || configFile\n ? null\n : {\n presets: [\n [\n require.resolve('../../babel-preset'),\n {\n modules:\n // If a file is explicitly marked as ESM, then preserve the syntax\n /\\.m[jt]s$/.test(filepath) ? 'preserve' : modules,\n esm,\n jsxRuntime,\n },\n ],\n ],\n }),\n });\n\n if (result == null) {\n throw new Error('Output code was null');\n }\n\n let code = result.code;\n\n if (sourceMaps && result.map) {\n const mapFilename = outputFilename + '.map';\n\n code += '\\n//# sourceMappingURL=' + path.basename(mapFilename);\n\n // Don't inline the source code, it can be retrieved from the source file\n result.map.sourcesContent = undefined;\n\n await fs.writeJSON(mapFilename, result.map);\n }\n\n await fs.writeFile(outputFilename, code);\n\n if (copyFlow) {\n fs.copy(filepath, outputFilename + '.flow');\n }\n })\n );\n\n report.success(`Wrote files to ${kleur.blue(path.relative(root, output))}`);\n\n const getGeneratedEntryPath = async () => {\n if (pkg.source) {\n for (const ext of ['.js', '.cjs', '.mjs']) {\n const indexName =\n // The source field may not have an extension, so we add it instead of replacing directly\n path.basename(pkg.source).replace(sourceExt, '') + ext;\n\n const potentialPath = path.join(\n output,\n path.dirname(path.relative(source, path.join(root, pkg.source))),\n indexName\n );\n\n if (await fs.pathExists(potentialPath)) {\n return path.relative(root, potentialPath);\n }\n }\n }\n\n return null;\n };\n\n const fields =\n modules === 'commonjs'\n ? [{ name: 'main', value: pkg.main }]\n : [{ name: 'module', value: pkg.module }];\n\n if (esm) {\n if (modules === 'commonjs') {\n fields.push(\n typeof pkg.exports?.['.']?.require === 'string'\n ? {\n name: \"exports['.'].require\",\n value: pkg.exports?.['.']?.require,\n }\n : {\n name: \"exports['.'].require.default\",\n value: pkg.exports?.['.']?.require?.default,\n }\n );\n } else {\n fields.push(\n typeof pkg.exports?.['.']?.import === 'string'\n ? {\n name: \"exports['.'].import\",\n value: pkg.exports?.['.']?.import,\n }\n : {\n name: \"exports['.'].import.default\",\n value: pkg.exports?.['.']?.import?.default,\n }\n );\n }\n } else {\n if (modules === 'commonjs' && pkg.exports?.['.']?.require) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].require\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n } else if (modules === 'preserve' && pkg.exports?.['.']?.import) {\n report.warn(\n `The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue(\n \"exports['.'].import\"\n )} field is set in ${kleur.blue(\n 'package.json'\n )}. This is likely a mistake.`\n );\n }\n }\n\n if (fields.some((field) => field.value)) {\n await Promise.all(\n fields.map(async ({ name, value }) => {\n if (!value) {\n return;\n }\n\n if (name.startsWith('exports') && value && !/^\\.\\//.test(value)) {\n report.error(\n `The ${kleur.blue(name)} field in ${kleur.blue(\n `package.json`\n )} should be a relative path starting with ${kleur.blue(\n './'\n )}. Found: ${kleur.blue(value)}`\n );\n\n throw new Error(`Found incorrect path in '${name}' field.`);\n }\n\n try {\n require.resolve(path.join(root, value));\n } catch (e: unknown) {\n if (\n e != null &&\n typeof e === 'object' &&\n 'code' in e &&\n e.code === 'MODULE_NOT_FOUND'\n ) {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n if (!generatedEntryPath) {\n report.warn(\n `Failed to detect the entry point for the generated files. Make sure you have a valid ${kleur.blue(\n 'source'\n )} field in your ${kleur.blue('package.json')}.`\n );\n }\n\n report.error(\n `The ${kleur.blue(name)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n value\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}${\n generatedEntryPath\n ? ` (found ${kleur.blue(generatedEntryPath)}).`\n : '.'\n }`\n );\n\n throw new Error(`Found incorrect path in '${name}' field.`);\n }\n\n throw e;\n }\n })\n );\n } else {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n report.warn(\n `No ${fields\n .map((field) => kleur.blue(field.name))\n .join(' or ')} field found in ${kleur.blue('package.json')}. Consider ${\n generatedEntryPath\n ? `pointing to ${kleur.blue(generatedEntryPath)}`\n : `adding ${fields.length > 1 ? 'them' : 'it'}`\n } so that consumers of your package can import your package.`\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAC,uBAAA,CAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAwB,SAAAM,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAhB,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAcxB,MAAMmB,SAAS,GAAG,mBAAmB;AAEtB,eAAeC,OAAOA,CAAC;EACpCC,IAAI;EACJC,MAAM;EACNC,MAAM;EACNC,GAAG,GAAG,KAAK;EACXC,OAAO,GAAG,KAAK;EACfC,UAAU,GAAG,KAAK;EAClBC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,UAAU,GAAG,IAAI;EACjBC,MAAM;EACNC,UAAU,GAAG;AACN,CAAC,EAAE;EACV,MAAMC,KAAK,GAAGC,aAAI,CAACC,IAAI,CAAC,MAAM,EAAE;IAC9BC,GAAG,EAAEd,MAAM;IACXe,QAAQ,EAAE,IAAI;IACdC,KAAK,EAAE,IAAI;IACXC,MAAM,EAAEZ;EACV,CAAC,CAAC;EAEFI,MAAM,CAACS,IAAI,CACT,aAAaC,cAAK,CAACC,IAAI,CAACC,MAAM,CAACV,KAAK,CAACW,MAAM,CAAC,CAAC,aAAaH,cAAK,CAACC,IAAI,CAClEG,aAAI,CAACC,QAAQ,CAACzB,IAAI,EAAEC,MAAM,CAC5B,CAAC,SAASmB,cAAK,CAACC,IAAI,CAAC,OAAO,CAAC,EAC/B,CAAC;EAED,MAAMK,GAAG,GAAGC,IAAI,CAACC,KAAK,CACpB,MAAMC,gBAAE,CAACC,QAAQ,CAACN,aAAI,CAACO,IAAI,CAAC/B,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAC5D,CAAC;EAED,IAAIQ,QAAQ,EAAE;IACZ,IAAI,CAAClB,MAAM,CAAC0C,IAAI,CAACN,GAAG,CAACO,eAAe,IAAI,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAE;MAChExB,MAAM,CAACyB,IAAI,CACT,OAAOf,cAAK,CAACC,IAAI,CACf,UACF,CAAC,4CAA4CD,cAAK,CAACC,IAAI,CACrD,UACF,CAAC,OAAOD,cAAK,CAACC,IAAI,CAChB,cACF,CAAC,8BAA8BD,cAAK,CAACC,IAAI,CACvC,MACF,CAAC,mCAAmCD,cAAK,CAACC,IAAI,CAC5C,UACF,CAAC,YAAYD,cAAK,CAACC,IAAI,CACrB,iBACF,CAAC,0BAA0BD,cAAK,CAACC,IAAI,CAAC,UAAU,CAAC,UACnD,CAAC;IACH;EACF;EAEA,MAAMQ,gBAAE,CAACO,MAAM,CAAClC,MAAM,CAAC;EAEvB,IAAI,CAACC,GAAG,EAAE;IACR;IACA;IACA;IACA;IACA,MAAM0B,gBAAE,CAACQ,SAAS,CAACb,aAAI,CAACO,IAAI,CAAC7B,MAAM,EAAE,cAAc,CAAC,EAAE;MACpDoC,IAAI,EAAE/B,OAAO,KAAK,UAAU,GAAG,UAAU,GAAG;IAC9C,CAAC,CAAC;EACJ;EAEA,MAAMgC,OAAO,CAACC,GAAG,CACf5B,KAAK,CAAC6B,GAAG,CAAC,MAAOC,QAAQ,IAAK;IAC5B,MAAMC,cAAc,GAAGnB,aAAI,CACxBO,IAAI,CAAC7B,MAAM,EAAEsB,aAAI,CAACC,QAAQ,CAACxB,MAAM,EAAEyC,QAAQ,CAAC,CAAC,CAC7CE,OAAO,CAAC9C,SAAS,EAAE,OAAO,CAAC;IAE9B,MAAM+B,gBAAE,CAACO,MAAM,CAACZ,aAAI,CAACqB,OAAO,CAACF,cAAc,CAAC,CAAC;IAE7C,IAAI,CAAC7C,SAAS,CAACgD,IAAI,CAACJ,QAAQ,CAAC,EAAE;MAC7B;MACAb,gBAAE,CAACkB,IAAI,CAACL,QAAQ,EAAEC,cAAc,CAAC;MACjC;IACF;IAEA,MAAMK,OAAO,GAAG,MAAMnB,gBAAE,CAACC,QAAQ,CAACY,QAAQ,EAAE,OAAO,CAAC;IACpD,MAAMO,MAAM,GAAG,MAAM1E,KAAK,CAAC2E,cAAc,CAACF,OAAO,EAAE;MACjDjC,GAAG,EAAEf,IAAI;MACTI,OAAO,EAAEA,OAAO;MAChBC,UAAU,EAAEA,UAAU;MACtBI,UAAU;MACV0C,UAAU,EAAE3B,aAAI,CAACC,QAAQ,CAACD,aAAI,CAACqB,OAAO,CAACF,cAAc,CAAC,EAAE1C,MAAM,CAAC;MAC/DmD,cAAc,EAAE5B,aAAI,CAACC,QAAQ,CAACxB,MAAM,EAAEyC,QAAQ,CAAC;MAC/CW,QAAQ,EAAEX,QAAQ;MAClB,IAAItC,OAAO,IAAIC,UAAU,GACrB,IAAI,GACJ;QACEiD,OAAO,EAAE,CACP,CACElF,OAAO,CAACmF,OAAO,CAAC,oBAAoB,CAAC,EACrC;UACEhD,OAAO;UACL;UACA,WAAW,CAACuC,IAAI,CAACJ,QAAQ,CAAC,GAAG,UAAU,GAAGnC,OAAO;UACnDJ,GAAG;UACHQ;QACF,CAAC,CACF;MAEL,CAAC;IACP,CAAC,CAAC;IAEF,IAAIsC,MAAM,IAAI,IAAI,EAAE;MAClB,MAAM,IAAIO,KAAK,CAAC,sBAAsB,CAAC;IACzC;IAEA,IAAIC,IAAI,GAAGR,MAAM,CAACQ,IAAI;IAEtB,IAAIhD,UAAU,IAAIwC,MAAM,CAACR,GAAG,EAAE;MAC5B,MAAMiB,WAAW,GAAGf,cAAc,GAAG,MAAM;MAE3Cc,IAAI,IAAI,yBAAyB,GAAGjC,aAAI,CAACmC,QAAQ,CAACD,WAAW,CAAC;;MAE9D;MACAT,MAAM,CAACR,GAAG,CAACmB,cAAc,GAAGC,SAAS;MAErC,MAAMhC,gBAAE,CAACQ,SAAS,CAACqB,WAAW,EAAET,MAAM,CAACR,GAAG,CAAC;IAC7C;IAEA,MAAMZ,gBAAE,CAACiC,SAAS,CAACnB,cAAc,EAAEc,IAAI,CAAC;IAExC,IAAIjD,QAAQ,EAAE;MACZqB,gBAAE,CAACkB,IAAI,CAACL,QAAQ,EAAEC,cAAc,GAAG,OAAO,CAAC;IAC7C;EACF,CAAC,CACH,CAAC;EAEDjC,MAAM,CAACqD,OAAO,CAAC,kBAAkB3C,cAAK,CAACC,IAAI,CAACG,aAAI,CAACC,QAAQ,CAACzB,IAAI,EAAEE,MAAM,CAAC,CAAC,EAAE,CAAC;EAE3E,MAAM8D,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxC,IAAItC,GAAG,CAACzB,MAAM,EAAE;MACd,KAAK,MAAMgE,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QACzC,MAAMC,SAAS;QACb;QACA1C,aAAI,CAACmC,QAAQ,CAACjC,GAAG,CAACzB,MAAM,CAAC,CAAC2C,OAAO,CAAC9C,SAAS,EAAE,EAAE,CAAC,GAAGmE,GAAG;QAExD,MAAME,aAAa,GAAG3C,aAAI,CAACO,IAAI,CAC7B7B,MAAM,EACNsB,aAAI,CAACqB,OAAO,CAACrB,aAAI,CAACC,QAAQ,CAACxB,MAAM,EAAEuB,aAAI,CAACO,IAAI,CAAC/B,IAAI,EAAE0B,GAAG,CAACzB,MAAM,CAAC,CAAC,CAAC,EAChEiE,SACF,CAAC;QAED,IAAI,MAAMrC,gBAAE,CAACuC,UAAU,CAACD,aAAa,CAAC,EAAE;UACtC,OAAO3C,aAAI,CAACC,QAAQ,CAACzB,IAAI,EAAEmE,aAAa,CAAC;QAC3C;MACF;IACF;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAME,MAAM,GACV9D,OAAO,KAAK,UAAU,GAClB,CAAC;IAAE+D,IAAI,EAAE,MAAM;IAAEC,KAAK,EAAE7C,GAAG,CAAC8C;EAAK,CAAC,CAAC,GACnC,CAAC;IAAEF,IAAI,EAAE,QAAQ;IAAEC,KAAK,EAAE7C,GAAG,CAAC+C;EAAO,CAAC,CAAC;EAE7C,IAAItE,GAAG,EAAE;IACP,IAAII,OAAO,KAAK,UAAU,EAAE;MAC1B8D,MAAM,CAACK,IAAI,CACT,OAAOhD,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEvG,OAAO,KAAK,QAAQ,GAC3C;QACEkG,IAAI,EAAE,sBAAsB;QAC5BC,KAAK,EAAE7C,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEvG;MAC7B,CAAC,GACD;QACEkG,IAAI,EAAE,8BAA8B;QACpCC,KAAK,EAAE7C,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEvG,OAAO,EAAEY;MACtC,CACN,CAAC;IACH,CAAC,MAAM;MACLqF,MAAM,CAACK,IAAI,CACT,OAAOhD,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEC,MAAM,KAAK,QAAQ,GAC1C;QACEN,IAAI,EAAE,qBAAqB;QAC3BC,KAAK,EAAE7C,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEC;MAC7B,CAAC,GACD;QACEN,IAAI,EAAE,6BAA6B;QACnCC,KAAK,EAAE7C,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEC,MAAM,EAAE5F;MACrC,CACN,CAAC;IACH;EACF,CAAC,MAAM;IACL,IAAIuB,OAAO,KAAK,UAAU,IAAImB,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEvG,OAAO,EAAE;MACzDsC,MAAM,CAACyB,IAAI,CACT,OAAOf,cAAK,CAACC,IAAI,CAAC,KAAK,CAAC,gCAAgCD,cAAK,CAACC,IAAI,CAChE,sBACF,CAAC,oBAAoBD,cAAK,CAACC,IAAI,CAC7B,cACF,CAAC,6BACH,CAAC;IACH,CAAC,MAAM,IAAId,OAAO,KAAK,UAAU,IAAImB,GAAG,CAACiD,OAAO,GAAG,GAAG,CAAC,EAAEC,MAAM,EAAE;MAC/DlE,MAAM,CAACyB,IAAI,CACT,OAAOf,cAAK,CAACC,IAAI,CAAC,KAAK,CAAC,gCAAgCD,cAAK,CAACC,IAAI,CAChE,qBACF,CAAC,oBAAoBD,cAAK,CAACC,IAAI,CAC7B,cACF,CAAC,6BACH,CAAC;IACH;EACF;EAEA,IAAIgD,MAAM,CAACQ,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAACP,KAAK,CAAC,EAAE;IACvC,MAAMhC,OAAO,CAACC,GAAG,CACf6B,MAAM,CAAC5B,GAAG,CAAC,OAAO;MAAE6B,IAAI;MAAEC;IAAM,CAAC,KAAK;MACpC,IAAI,CAACA,KAAK,EAAE;QACV;MACF;MAEA,IAAID,IAAI,CAACS,UAAU,CAAC,SAAS,CAAC,IAAIR,KAAK,IAAI,CAAC,OAAO,CAACzB,IAAI,CAACyB,KAAK,CAAC,EAAE;QAC/D7D,MAAM,CAACsE,KAAK,CACV,OAAO5D,cAAK,CAACC,IAAI,CAACiD,IAAI,CAAC,aAAalD,cAAK,CAACC,IAAI,CAC5C,cACF,CAAC,4CAA4CD,cAAK,CAACC,IAAI,CACrD,IACF,CAAC,YAAYD,cAAK,CAACC,IAAI,CAACkD,KAAK,CAAC,EAChC,CAAC;QAED,MAAM,IAAIf,KAAK,CAAC,4BAA4Bc,IAAI,UAAU,CAAC;MAC7D;MAEA,IAAI;QACFlG,OAAO,CAACmF,OAAO,CAAC/B,aAAI,CAACO,IAAI,CAAC/B,IAAI,EAAEuE,KAAK,CAAC,CAAC;MACzC,CAAC,CAAC,OAAO5F,CAAU,EAAE;QACnB,IACEA,CAAC,IAAI,IAAI,IACT,OAAOA,CAAC,KAAK,QAAQ,IACrB,MAAM,IAAIA,CAAC,IACXA,CAAC,CAAC8E,IAAI,KAAK,kBAAkB,EAC7B;UACA,MAAMwB,kBAAkB,GAAG,MAAMjB,qBAAqB,CAAC,CAAC;UAExD,IAAI,CAACiB,kBAAkB,EAAE;YACvBvE,MAAM,CAACyB,IAAI,CACT,wFAAwFf,cAAK,CAACC,IAAI,CAChG,QACF,CAAC,kBAAkBD,cAAK,CAACC,IAAI,CAAC,cAAc,CAAC,GAC/C,CAAC;UACH;UAEAX,MAAM,CAACsE,KAAK,CACV,OAAO5D,cAAK,CAACC,IAAI,CAACiD,IAAI,CAAC,aAAalD,cAAK,CAACC,IAAI,CAC5C,cACF,CAAC,mCAAmCD,cAAK,CAACC,IAAI,CAC5CkD,KACF,CAAC,uDAAuDnD,cAAK,CAACC,IAAI,CAChEG,aAAI,CAACC,QAAQ,CAACzB,IAAI,EAAEE,MAAM,CAC5B,CAAC,GACC+E,kBAAkB,GACd,WAAW7D,cAAK,CAACC,IAAI,CAAC4D,kBAAkB,CAAC,IAAI,GAC7C,GAAG,EAEX,CAAC;UAED,MAAM,IAAIzB,KAAK,CAAC,4BAA4Bc,IAAI,UAAU,CAAC;QAC7D;QAEA,MAAM3F,CAAC;MACT;IACF,CAAC,CACH,CAAC;EACH,CAAC,MAAM;IACL,MAAMsG,kBAAkB,GAAG,MAAMjB,qBAAqB,CAAC,CAAC;IAExDtD,MAAM,CAACyB,IAAI,CACT,MAAMkC,MAAM,CACT5B,GAAG,CAAEqC,KAAK,IAAK1D,cAAK,CAACC,IAAI,CAACyD,KAAK,CAACR,IAAI,CAAC,CAAC,CACtCvC,IAAI,CAAC,MAAM,CAAC,mBAAmBX,cAAK,CAACC,IAAI,CAAC,cAAc,CAAC,cAC1D4D,kBAAkB,GACd,eAAe7D,cAAK,CAACC,IAAI,CAAC4D,kBAAkB,CAAC,EAAE,GAC/C,UAAUZ,MAAM,CAAC9C,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,6DAErD,CAAC;EACH;AACF","ignoreList":[]}
|
package/lib/utils/runRNCCli.js
CHANGED
|
@@ -9,10 +9,7 @@ var _nodePath = _interopRequireDefault(require("node:path"));
|
|
|
9
9
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
10
10
|
var _nodeAssert = _interopRequireDefault(require("node:assert"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
|
|
13
|
-
// XCode scripts don't have the node binary properly set
|
|
14
|
-
// We expose an env value for node instead.
|
|
15
|
-
const NODE_BINARY = process.env['NODE_BINARY'] || 'node';
|
|
12
|
+
const NODE_BINARY = 'node';
|
|
16
13
|
|
|
17
14
|
/**
|
|
18
15
|
* Runs the React Native Community CLI with the specified arguments
|
|
@@ -24,7 +21,7 @@ async function runRNCCli(args, options = {
|
|
|
24
21
|
const RNC_CLI_BINARY_PATH = _nodePath.default.resolve(process.cwd(),
|
|
25
22
|
// We are always expected to run in the library
|
|
26
23
|
'node_modules', '.bin', rncCliBinaryName);
|
|
27
|
-
return await (0, _spawn.spawn)(
|
|
24
|
+
return await (0, _spawn.spawn)(RNC_CLI_BINARY_PATH, args, options);
|
|
28
25
|
}
|
|
29
26
|
async function getCliBinaryName() {
|
|
30
27
|
const rncCliPackagePath = await (0, _spawn.spawn)(NODE_BINARY, ['-e', `console.log(require.resolve('@react-native-community/cli/package.json'))`]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runRNCCli.js","names":["_spawn","require","_nodePath","_interopRequireDefault","_fsExtra","_nodeAssert","e","__esModule","default","NODE_BINARY","
|
|
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.
|
|
3
|
+
"version": "0.33.0",
|
|
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": "
|
|
90
|
+
"gitHead": "cac236dcb0dc73f964d1543f5484adb749b30f8f"
|
|
91
91
|
}
|