react-native-builder-bob 0.36.0 → 0.38.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/lib/index.js CHANGED
@@ -13,6 +13,7 @@ var _commonjs = _interopRequireDefault(require("./targets/commonjs"));
13
13
  var _module = _interopRequireDefault(require("./targets/module"));
14
14
  var _typescript = _interopRequireDefault(require("./targets/typescript"));
15
15
  var _codegen = _interopRequireDefault(require("./targets/codegen"));
16
+ var _custom = _interopRequireDefault(require("./targets/custom"));
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -51,7 +52,8 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
51
52
  }
52
53
  }
53
54
  if (!(await _fsExtra.default.pathExists(projectPackagePath))) {
54
- logger.exit(`Couldn't find a 'package.json' file in '${root}'.\n Are you in a project folder?`);
55
+ logger.error(`Couldn't find a 'package.json' file in '${root}'.\n Are you in a project folder?`);
56
+ process.exit(1);
55
57
  }
56
58
  const pkg = JSON.parse(await _fsExtra.default.readFile(projectPackagePath, 'utf-8'));
57
59
  const result = await explorer.search();
@@ -86,8 +88,8 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
86
88
  entryFile = 'index.tsx';
87
89
  }
88
90
  if (!entryFile) {
89
- logger.exit(`Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\n Please re-run the CLI after creating it.`);
90
- return;
91
+ logger.error(`Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\n Please re-run the CLI after creating it.`);
92
+ process.exit(1);
91
93
  }
92
94
  pkg.devDependencies = Object.fromEntries([...Object.entries(pkg.devDependencies || {}), [name, `^${version}`]].sort(([a], [b]) => a.localeCompare(b)));
93
95
  const questions = [{
@@ -358,39 +360,37 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
358
360
  }
359
361
  const result = await explorer.search();
360
362
  if (!result?.config) {
361
- logger.exit(`No configuration found. Run '${argv.$0} init' to create one automatically.`);
363
+ logger.error(`No configuration found. Run '${argv.$0} init' to create one automatically.`);
364
+ process.exit(1);
362
365
  }
363
366
  const options = result.config;
364
367
  if (!options.targets?.length) {
365
- logger.exit(`No targets found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
368
+ logger.error(`No targets found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
369
+ process.exit(1);
366
370
  }
367
371
  const source = options.source;
368
372
  if (!source) {
369
- logger.exit(`No source option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
373
+ logger.error(`No source option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
374
+ process.exit(1);
370
375
  }
371
376
  const output = options.output;
372
377
  if (!output) {
373
- logger.exit(`No source option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
378
+ logger.error(`No source option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
379
+ process.exit(1);
374
380
  }
375
381
  const exclude = options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';
376
- const report = {
377
- info: logger.info,
378
- warn: logger.warn,
379
- error: logger.error,
380
- success: logger.success
381
- };
382
382
  if (argv.target != null) {
383
- buildTarget(argv.target, report, source, output, exclude);
383
+ buildTarget(argv.target, source, output, exclude);
384
384
  } else {
385
385
  for (const target of options.targets) {
386
- buildTarget(target, report, source, output, exclude);
386
+ buildTarget(target, source, output, exclude);
387
387
  }
388
388
  }
389
389
  }).demandCommand().recommendCommands().strict().argv;
390
- async function buildTarget(target, report, source, output, exclude) {
390
+ async function buildTarget(target, source, output, exclude) {
391
391
  const targetName = Array.isArray(target) ? target[0] : target;
392
392
  const targetOptions = Array.isArray(target) ? target[1] : undefined;
393
- report.info(`Building target ${_kleur.default.blue(targetName)}`);
393
+ const report = logger.grouped(targetName);
394
394
  switch (targetName) {
395
395
  case 'commonjs':
396
396
  await (0, _commonjs.default)({
@@ -429,8 +429,17 @@ async function buildTarget(target, report, source, output, exclude) {
429
429
  report
430
430
  });
431
431
  break;
432
+ case 'custom':
433
+ await (0, _custom.default)({
434
+ options: targetOptions,
435
+ source: _path.default.resolve(root, source),
436
+ report,
437
+ root
438
+ });
439
+ break;
432
440
  default:
433
- logger.exit(`Invalid target ${_kleur.default.blue(targetName)}.`);
441
+ logger.error(`Invalid target ${_kleur.default.blue(targetName)}.`);
442
+ process.exit(1);
434
443
  }
435
444
  }
436
445
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","_dedent","_yargs","_cosmiconfig","_isGitDirty","_prompts","logger","_interopRequireWildcard","_commonjs","_module","_typescript","_codegen","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","args","target","type","description","choices","name","version","root","process","cwd","explorer","cosmiconfig","stopDir","searchPlaces","projectPackagePath","path","resolve","FLOW_PRGAMA_REGEX","yargs","command","isGitDirty","shouldContinue","prompts","message","initial","exit","fs","pathExists","pkg","JSON","parse","readFile","result","search","config","devDependencies","source","validate","input","Boolean","entryFile","join","fromEntries","entries","sort","b","localeCompare","questions","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","undefined","esm","main","module","types","import","tsconfig","writeJSON","compilerOptions","rootDir","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","verbatimModuleSyntax","spaces","prepare","files","key","entry","replace","exportsField","codegenConfig","includesGeneratedCode","exports","stringify","startsWith","remove","scripts","pkgFiles","some","file","update","filter","map","copyFlow","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","writeFile","packageManager","console","log","dedent","kleur","yellow","magenta","bold","gray","argv","Error","$0","options","relative","filepath","exclude","report","info","warn","error","success","buildTarget","demandCommand","recommendCommands","targetName","Array","isArray","targetOptions","blue","buildCommonJS","buildModule","buildTypescript","buildCodegen"],"sources":["../src/index.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport dedent from 'dedent';\nimport yargs from 'yargs';\nimport { cosmiconfig } from 'cosmiconfig';\nimport isGitDirty from 'is-git-dirty';\nimport prompts, { type PromptObject } from './utils/prompts';\nimport * as logger from './utils/logger';\nimport buildCommonJS from './targets/commonjs';\nimport buildModule from './targets/module';\nimport buildTypescript from './targets/typescript';\nimport buildCodegen from './targets/codegen';\nimport type { Options, Report, Target } from './types';\n\ntype ArgName = 'target';\n\nconst args = {\n target: {\n type: 'string',\n description: 'The target to build',\n choices: ['commonjs', 'module', 'typescript', 'codegen'] satisfies Target[],\n },\n} satisfies Record<ArgName, yargs.Options>;\n\n// eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires\nconst { name, version } = require('../package.json');\n\nconst root = process.cwd();\nconst explorer = cosmiconfig(name, {\n stopDir: root,\n searchPlaces: [\n 'package.json',\n 'bob.config.mjs',\n 'bob.config.cjs',\n 'bob.config.js',\n ],\n});\n\nconst projectPackagePath = path.resolve(root, 'package.json');\n\nconst FLOW_PRGAMA_REGEX = /\\*?\\s*@(flow)\\b/m;\n\nyargs\n .command('init', 'configure the package to use bob', {}, async () => {\n if (isGitDirty()) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The working directory is not clean.\\n You should commit or stash your changes before configuring bob.\\n Continue anyway?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n if (!(await fs.pathExists(projectPackagePath))) {\n logger.exit(\n `Couldn't find a 'package.json' file in '${root}'.\\n Are you in a project folder?`\n );\n }\n\n const pkg = JSON.parse(await fs.readFile(projectPackagePath, 'utf-8'));\n const result = await explorer.search();\n\n if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The project seems to be already configured with bob.\\n Do you want to overwrite the existing configuration?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n const { source } = await prompts({\n type: 'text',\n name: 'source',\n message: 'Where are your source files?',\n initial: 'src',\n validate: (input) => Boolean(input),\n });\n\n let entryFile;\n\n if (await fs.pathExists(path.join(root, source, 'index.js'))) {\n entryFile = 'index.js';\n } else if (await fs.pathExists(path.join(root, source, 'index.ts'))) {\n entryFile = 'index.ts';\n } else if (await fs.pathExists(path.join(root, source, 'index.tsx'))) {\n entryFile = 'index.tsx';\n }\n\n if (!entryFile) {\n logger.exit(\n `Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\\n Please re-run the CLI after creating it.`\n );\n return;\n }\n\n pkg.devDependencies = Object.fromEntries(\n [\n ...Object.entries(pkg.devDependencies || {}),\n [name, `^${version}`],\n ].sort(([a], [b]) => a.localeCompare(b))\n );\n\n const questions: PromptObject[] = [\n {\n type: 'text',\n name: 'output',\n message: 'Where do you want to generate the output files?',\n initial: 'lib',\n validate: (input: string) => Boolean(input),\n },\n {\n type: 'multiselect',\n name: 'targets',\n message: 'Which targets do you want to build?',\n choices: [\n {\n title: 'commonjs - for running in Node (tests, SSR etc.)',\n value: 'commonjs',\n selected: true,\n },\n {\n title: 'module - for bundlers (metro, webpack etc.)',\n value: 'module',\n selected: true,\n },\n {\n title: 'typescript - declaration files for typechecking',\n value: 'typescript',\n selected: /\\.tsx?$/.test(entryFile),\n },\n ],\n validate: (input: string) => Boolean(input.length),\n },\n ];\n\n if (\n entryFile.endsWith('.js') &&\n FLOW_PRGAMA_REGEX.test(\n await fs.readFile(path.join(root, source, entryFile), 'utf-8')\n )\n ) {\n questions.push({\n type: 'confirm',\n name: 'flow',\n message: 'Do you want to publish definitions for flow?',\n initial: Object.keys(pkg.devDependencies || {}).includes('flow-bin'),\n });\n }\n\n const { output, targets, flow } = await prompts(questions);\n\n const target =\n targets[0] === 'commonjs' || targets[0] === 'module'\n ? targets[0]\n : undefined;\n\n const entries: {\n [key in 'source' | 'main' | 'module' | 'types']?: string;\n } = {\n source: `./${path.join(source, entryFile)}`,\n };\n\n let esm = false;\n\n if (targets.includes('module')) {\n esm = true;\n\n if (targets.includes('commonjs')) {\n entries.main = `./${path.join(output, 'commonjs', 'index.js')}`;\n }\n\n entries.module = `./${path.join(output, 'module', 'index.js')}`;\n } else if (targets.includes('commonjs')) {\n entries.main = `./${path.join(output, 'commonjs', 'index.js')}`;\n } else {\n entries.main = entries.source;\n }\n\n const types: {\n [key in 'require' | 'import']?: string;\n } = {};\n\n if (targets.includes('typescript')) {\n types.require = `./${path.join(\n output,\n 'typescript',\n 'commonjs',\n source,\n 'index.d.ts'\n )}`;\n\n types.import = `./${path.join(\n output,\n 'typescript',\n 'module',\n source,\n 'index.d.ts'\n )}`;\n\n entries.types = types.require;\n\n if (!(await fs.pathExists(path.join(root, 'tsconfig.json')))) {\n const { tsconfig } = await prompts({\n type: 'confirm',\n name: 'tsconfig',\n message: `You have enabled 'typescript' compilation, but we couldn't find a 'tsconfig.json' in project root.\\n Generate one?`,\n initial: true,\n });\n\n if (tsconfig) {\n await fs.writeJSON(\n path.join(root, 'tsconfig.json'),\n {\n compilerOptions: {\n rootDir: '.',\n allowUnreachableCode: false,\n allowUnusedLabels: false,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react-jsx',\n lib: ['ESNext'],\n module: 'ESNext',\n moduleResolution: 'Bundler',\n noFallthroughCasesInSwitch: true,\n noImplicitReturns: true,\n noImplicitUseStrict: false,\n noStrictGenericChecks: false,\n noUncheckedIndexedAccess: true,\n noUnusedLocals: true,\n noUnusedParameters: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n strict: true,\n target: 'ESNext',\n verbatimModuleSyntax: true,\n },\n },\n { spaces: 2 }\n );\n }\n }\n }\n\n const prepare = 'bob build';\n const files = [\n source,\n output,\n '!**/__tests__',\n '!**/__fixtures__',\n '!**/__mocks__',\n ];\n\n for (const key in entries) {\n const entry = entries[key as keyof typeof entries];\n\n if (pkg[key] && pkg[key] !== entry) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the '${key}' field set to '${pkg[key]}'.\\n Do you want to replace it with '${entry}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg[key] = entry;\n }\n } else {\n pkg[key] = entry;\n }\n }\n\n if (esm) {\n let replace = false;\n\n const exportsField = {\n '.': {\n import: {\n ...(types.import ? { types: types.import } : null),\n ...(entries.module ? { default: entries.module } : null),\n },\n require: {\n ...(types.require ? { types: types.require } : null),\n ...(entries.main ? { default: entries.main } : null),\n },\n },\n };\n\n if (pkg.codegenConfig && !pkg.codegenConfig.includesGeneratedCode) {\n // @ts-expect-error The exports is not strictly types therefore it doesn't know about the package.json property\n exportsField['./package.json'] = './package.json';\n }\n\n if (\n pkg.exports &&\n JSON.stringify(pkg.exports) !== JSON.stringify(exportsField)\n ) {\n replace = (\n await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has 'exports' field set.\\n Do you want to replace it?`,\n initial: true,\n })\n ).replace;\n } else {\n replace = true;\n }\n\n if (replace) {\n pkg.exports = exportsField;\n }\n }\n\n if (\n pkg['react-native'] &&\n (pkg['react-native'].startsWith(source) ||\n pkg['react-native'].startsWith(`./${source}`))\n ) {\n const { remove } = await prompts({\n type: 'confirm',\n name: 'remove',\n message: `Your package.json has the 'react-native' field pointing to source code.\\n This can cause problems when customizing babel configuration.\\n Do you want to remove it?`,\n initial: true,\n });\n\n if (remove) {\n delete pkg['react-native'];\n }\n }\n\n if (pkg.scripts?.prepare && pkg.scripts.prepare !== prepare) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the 'scripts.prepare' field set to '${pkg.scripts.prepare}'.\\n Do you want to replace it with '${prepare}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg.scripts.prepare = prepare;\n }\n } else {\n pkg.scripts = pkg.scripts || {};\n pkg.scripts.prepare = prepare;\n }\n\n if (pkg.files) {\n const pkgFiles = pkg.files;\n\n if (files?.some((file) => !pkgFiles.includes(file))) {\n const { update } = await prompts({\n type: 'confirm',\n name: 'update',\n message: `Your package.json already has a 'files' field.\\n Do you want to update it?`,\n initial: true,\n });\n\n if (update) {\n pkg.files = [\n ...files,\n ...pkg.files.filter((file: string) => !files.includes(file)),\n ];\n }\n }\n } else {\n pkg.files = files;\n }\n\n pkg[name] = {\n source,\n output,\n targets: targets.map((t: string) => {\n if (t === target && flow) {\n return [t, { copyFlow: true }];\n }\n\n if (t === 'commonjs' || t === 'module' || t === 'typescript') {\n return [t, { esm }];\n }\n\n return t;\n }),\n };\n\n if (pkg.jest) {\n const entry = `<rootDir>/${output}/`;\n\n if (pkg.jest.modulePathIgnorePatterns) {\n const { modulePathIgnorePatterns } = pkg.jest;\n\n if (!modulePathIgnorePatterns.includes(entry)) {\n modulePathIgnorePatterns.push(entry);\n }\n } else {\n pkg.jest.modulePathIgnorePatterns = [entry];\n }\n }\n\n pkg.eslintIgnore = pkg.eslintIgnore || ['node_modules/'];\n\n if (!pkg.eslintIgnore.includes(`${output}/`)) {\n pkg.eslintIgnore.push(`${output}/`);\n }\n\n await fs.writeJSON(projectPackagePath, pkg, {\n spaces: 2,\n });\n\n const ignorefiles = [\n path.join(root, '.gitignore'),\n path.join(root, '.eslintignore'),\n ];\n\n for (const ignorefile of ignorefiles) {\n if (await fs.pathExists(ignorefile)) {\n const content = await fs.readFile(ignorefile, 'utf-8');\n\n if (!content.split('\\n').includes(`${output}/`)) {\n await fs.writeFile(\n ignorefile,\n `${content}\\n# generated by bob\\n${output}/\\n`\n );\n }\n }\n }\n\n const packageManager = (await fs.pathExists(path.join(root, 'yarn.lock')))\n ? 'yarn'\n : 'npm';\n\n console.log(\n dedent(`\n Project ${kleur.yellow(pkg.name)} configured successfully!\n\n ${kleur.magenta(\n `${kleur.bold('Perform last steps')} by running`\n )}${kleur.gray(':')}\n\n ${kleur.gray('$')} ${packageManager} install\n\n ${kleur.yellow('Good luck!')}\n `)\n );\n })\n .command('build', 'build files for publishing', args, async (argv) => {\n if (!(await fs.pathExists(projectPackagePath))) {\n throw new Error(\n `Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`\n );\n }\n\n const result = await explorer.search();\n\n if (!result?.config) {\n logger.exit(\n `No configuration found. Run '${argv.$0} init' to create one automatically.`\n );\n }\n\n const options: Options = result!.config;\n\n if (!options.targets?.length) {\n logger.exit(\n `No targets found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n }\n\n const source = options.source;\n\n if (!source) {\n logger.exit(\n `No source option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n }\n\n const output = options.output;\n\n if (!output) {\n logger.exit(\n `No source option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n }\n\n const exclude =\n options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';\n\n const report = {\n info: logger.info,\n warn: logger.warn,\n error: logger.error,\n success: logger.success,\n };\n\n if (argv.target != null) {\n buildTarget(\n argv.target,\n report,\n source as string,\n output as string,\n exclude\n );\n } else {\n for (const target of options.targets!) {\n buildTarget(\n target,\n report,\n source as string,\n output as string,\n exclude\n );\n }\n }\n })\n .demandCommand()\n .recommendCommands()\n .strict().argv;\n\nasync function buildTarget(\n target: Exclude<Options['targets'], undefined>[number],\n report: Report,\n source: string,\n output: string,\n exclude: string\n) {\n const targetName = Array.isArray(target) ? target[0] : target;\n const targetOptions = Array.isArray(target) ? target[1] : undefined;\n\n report.info(`Building target ${kleur.blue(targetName)}`);\n\n switch (targetName) {\n case 'commonjs':\n await buildCommonJS({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'commonjs'),\n exclude,\n options: targetOptions,\n report,\n });\n break;\n case 'module':\n await buildModule({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'module'),\n exclude,\n options: targetOptions,\n report,\n });\n break;\n case 'typescript':\n await buildTypescript({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n options: targetOptions,\n report,\n });\n break;\n case 'codegen':\n await buildCodegen({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n report,\n });\n break;\n default:\n logger.exit(`Invalid target ${kleur.blue(targetName)}.`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_path","_interopRequireDefault","require","_fsExtra","_kleur","_dedent","_yargs","_cosmiconfig","_isGitDirty","_prompts","logger","_interopRequireWildcard","_commonjs","_module","_typescript","_codegen","_custom","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","args","target","type","description","choices","name","version","root","process","cwd","explorer","cosmiconfig","stopDir","searchPlaces","projectPackagePath","path","resolve","FLOW_PRGAMA_REGEX","yargs","command","isGitDirty","shouldContinue","prompts","message","initial","exit","fs","pathExists","error","pkg","JSON","parse","readFile","result","search","config","devDependencies","source","validate","input","Boolean","entryFile","join","fromEntries","entries","sort","b","localeCompare","questions","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","undefined","esm","main","module","types","import","tsconfig","writeJSON","compilerOptions","rootDir","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","verbatimModuleSyntax","spaces","prepare","files","key","entry","replace","exportsField","codegenConfig","includesGeneratedCode","exports","stringify","startsWith","remove","scripts","pkgFiles","some","file","update","filter","map","copyFlow","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","writeFile","packageManager","console","log","dedent","kleur","yellow","magenta","bold","gray","argv","Error","$0","options","relative","filepath","exclude","buildTarget","demandCommand","recommendCommands","targetName","Array","isArray","targetOptions","report","grouped","buildCommonJS","buildModule","buildTypescript","buildCodegen","customTarget","blue"],"sources":["../src/index.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport dedent from 'dedent';\nimport yargs from 'yargs';\nimport { cosmiconfig } from 'cosmiconfig';\nimport isGitDirty from 'is-git-dirty';\nimport prompts, { type PromptObject } from './utils/prompts';\nimport * as logger from './utils/logger';\nimport buildCommonJS from './targets/commonjs';\nimport buildModule from './targets/module';\nimport buildTypescript from './targets/typescript';\nimport buildCodegen from './targets/codegen';\nimport customTarget from './targets/custom';\nimport type { Options, Target } from './types';\n\ntype ArgName = 'target';\n\nconst args = {\n target: {\n type: 'string',\n description: 'The target to build',\n choices: ['commonjs', 'module', 'typescript', 'codegen'] satisfies Target[],\n },\n} satisfies Record<ArgName, yargs.Options>;\n\n// eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires\nconst { name, version } = require('../package.json');\n\nconst root = process.cwd();\nconst explorer = cosmiconfig(name, {\n stopDir: root,\n searchPlaces: [\n 'package.json',\n 'bob.config.mjs',\n 'bob.config.cjs',\n 'bob.config.js',\n ],\n});\n\nconst projectPackagePath = path.resolve(root, 'package.json');\n\nconst FLOW_PRGAMA_REGEX = /\\*?\\s*@(flow)\\b/m;\n\nyargs\n .command('init', 'configure the package to use bob', {}, async () => {\n if (isGitDirty()) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The working directory is not clean.\\n You should commit or stash your changes before configuring bob.\\n Continue anyway?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n if (!(await fs.pathExists(projectPackagePath))) {\n logger.error(\n `Couldn't find a 'package.json' file in '${root}'.\\n Are you in a project folder?`\n );\n process.exit(1);\n }\n\n const pkg = JSON.parse(await fs.readFile(projectPackagePath, 'utf-8'));\n const result = await explorer.search();\n\n if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The project seems to be already configured with bob.\\n Do you want to overwrite the existing configuration?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n const { source } = await prompts({\n type: 'text',\n name: 'source',\n message: 'Where are your source files?',\n initial: 'src',\n validate: (input) => Boolean(input),\n });\n\n let entryFile;\n\n if (await fs.pathExists(path.join(root, source, 'index.js'))) {\n entryFile = 'index.js';\n } else if (await fs.pathExists(path.join(root, source, 'index.ts'))) {\n entryFile = 'index.ts';\n } else if (await fs.pathExists(path.join(root, source, 'index.tsx'))) {\n entryFile = 'index.tsx';\n }\n\n if (!entryFile) {\n logger.error(\n `Couldn't find a 'index.js'. 'index.ts' or 'index.tsx' file under '${source}'.\\n Please re-run the CLI after creating it.`\n );\n process.exit(1);\n }\n\n pkg.devDependencies = Object.fromEntries(\n [\n ...Object.entries(pkg.devDependencies || {}),\n [name, `^${version}`],\n ].sort(([a], [b]) => a.localeCompare(b))\n );\n\n const questions: PromptObject[] = [\n {\n type: 'text',\n name: 'output',\n message: 'Where do you want to generate the output files?',\n initial: 'lib',\n validate: (input: string) => Boolean(input),\n },\n {\n type: 'multiselect',\n name: 'targets',\n message: 'Which targets do you want to build?',\n choices: [\n {\n title: 'commonjs - for running in Node (tests, SSR etc.)',\n value: 'commonjs',\n selected: true,\n },\n {\n title: 'module - for bundlers (metro, webpack etc.)',\n value: 'module',\n selected: true,\n },\n {\n title: 'typescript - declaration files for typechecking',\n value: 'typescript',\n selected: /\\.tsx?$/.test(entryFile),\n },\n ],\n validate: (input: string) => Boolean(input.length),\n },\n ];\n\n if (\n entryFile.endsWith('.js') &&\n FLOW_PRGAMA_REGEX.test(\n await fs.readFile(path.join(root, source, entryFile), 'utf-8')\n )\n ) {\n questions.push({\n type: 'confirm',\n name: 'flow',\n message: 'Do you want to publish definitions for flow?',\n initial: Object.keys(pkg.devDependencies || {}).includes('flow-bin'),\n });\n }\n\n const { output, targets, flow } = await prompts(questions);\n\n const target =\n targets[0] === 'commonjs' || targets[0] === 'module'\n ? targets[0]\n : undefined;\n\n const entries: {\n [key in 'source' | 'main' | 'module' | 'types']?: string;\n } = {\n source: `./${path.join(source, entryFile)}`,\n };\n\n let esm = false;\n\n if (targets.includes('module')) {\n esm = true;\n\n if (targets.includes('commonjs')) {\n entries.main = `./${path.join(output, 'commonjs', 'index.js')}`;\n }\n\n entries.module = `./${path.join(output, 'module', 'index.js')}`;\n } else if (targets.includes('commonjs')) {\n entries.main = `./${path.join(output, 'commonjs', 'index.js')}`;\n } else {\n entries.main = entries.source;\n }\n\n const types: {\n [key in 'require' | 'import']?: string;\n } = {};\n\n if (targets.includes('typescript')) {\n types.require = `./${path.join(\n output,\n 'typescript',\n 'commonjs',\n source,\n 'index.d.ts'\n )}`;\n\n types.import = `./${path.join(\n output,\n 'typescript',\n 'module',\n source,\n 'index.d.ts'\n )}`;\n\n entries.types = types.require;\n\n if (!(await fs.pathExists(path.join(root, 'tsconfig.json')))) {\n const { tsconfig } = await prompts({\n type: 'confirm',\n name: 'tsconfig',\n message: `You have enabled 'typescript' compilation, but we couldn't find a 'tsconfig.json' in project root.\\n Generate one?`,\n initial: true,\n });\n\n if (tsconfig) {\n await fs.writeJSON(\n path.join(root, 'tsconfig.json'),\n {\n compilerOptions: {\n rootDir: '.',\n allowUnreachableCode: false,\n allowUnusedLabels: false,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react-jsx',\n lib: ['ESNext'],\n module: 'ESNext',\n moduleResolution: 'Bundler',\n noFallthroughCasesInSwitch: true,\n noImplicitReturns: true,\n noImplicitUseStrict: false,\n noStrictGenericChecks: false,\n noUncheckedIndexedAccess: true,\n noUnusedLocals: true,\n noUnusedParameters: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n strict: true,\n target: 'ESNext',\n verbatimModuleSyntax: true,\n },\n },\n { spaces: 2 }\n );\n }\n }\n }\n\n const prepare = 'bob build';\n const files = [\n source,\n output,\n '!**/__tests__',\n '!**/__fixtures__',\n '!**/__mocks__',\n ];\n\n for (const key in entries) {\n const entry = entries[key as keyof typeof entries];\n\n if (pkg[key] && pkg[key] !== entry) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the '${key}' field set to '${pkg[key]}'.\\n Do you want to replace it with '${entry}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg[key] = entry;\n }\n } else {\n pkg[key] = entry;\n }\n }\n\n if (esm) {\n let replace = false;\n\n const exportsField = {\n '.': {\n import: {\n ...(types.import ? { types: types.import } : null),\n ...(entries.module ? { default: entries.module } : null),\n },\n require: {\n ...(types.require ? { types: types.require } : null),\n ...(entries.main ? { default: entries.main } : null),\n },\n },\n };\n\n if (pkg.codegenConfig && !pkg.codegenConfig.includesGeneratedCode) {\n // @ts-expect-error The exports is not strictly types therefore it doesn't know about the package.json property\n exportsField['./package.json'] = './package.json';\n }\n\n if (\n pkg.exports &&\n JSON.stringify(pkg.exports) !== JSON.stringify(exportsField)\n ) {\n replace = (\n await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has 'exports' field set.\\n Do you want to replace it?`,\n initial: true,\n })\n ).replace;\n } else {\n replace = true;\n }\n\n if (replace) {\n pkg.exports = exportsField;\n }\n }\n\n if (\n pkg['react-native'] &&\n (pkg['react-native'].startsWith(source) ||\n pkg['react-native'].startsWith(`./${source}`))\n ) {\n const { remove } = await prompts({\n type: 'confirm',\n name: 'remove',\n message: `Your package.json has the 'react-native' field pointing to source code.\\n This can cause problems when customizing babel configuration.\\n Do you want to remove it?`,\n initial: true,\n });\n\n if (remove) {\n delete pkg['react-native'];\n }\n }\n\n if (pkg.scripts?.prepare && pkg.scripts.prepare !== prepare) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the 'scripts.prepare' field set to '${pkg.scripts.prepare}'.\\n Do you want to replace it with '${prepare}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg.scripts.prepare = prepare;\n }\n } else {\n pkg.scripts = pkg.scripts || {};\n pkg.scripts.prepare = prepare;\n }\n\n if (pkg.files) {\n const pkgFiles = pkg.files;\n\n if (files?.some((file) => !pkgFiles.includes(file))) {\n const { update } = await prompts({\n type: 'confirm',\n name: 'update',\n message: `Your package.json already has a 'files' field.\\n Do you want to update it?`,\n initial: true,\n });\n\n if (update) {\n pkg.files = [\n ...files,\n ...pkg.files.filter((file: string) => !files.includes(file)),\n ];\n }\n }\n } else {\n pkg.files = files;\n }\n\n pkg[name] = {\n source,\n output,\n targets: targets.map((t: string) => {\n if (t === target && flow) {\n return [t, { copyFlow: true }];\n }\n\n if (t === 'commonjs' || t === 'module' || t === 'typescript') {\n return [t, { esm }];\n }\n\n return t;\n }),\n };\n\n if (pkg.jest) {\n const entry = `<rootDir>/${output}/`;\n\n if (pkg.jest.modulePathIgnorePatterns) {\n const { modulePathIgnorePatterns } = pkg.jest;\n\n if (!modulePathIgnorePatterns.includes(entry)) {\n modulePathIgnorePatterns.push(entry);\n }\n } else {\n pkg.jest.modulePathIgnorePatterns = [entry];\n }\n }\n\n pkg.eslintIgnore = pkg.eslintIgnore || ['node_modules/'];\n\n if (!pkg.eslintIgnore.includes(`${output}/`)) {\n pkg.eslintIgnore.push(`${output}/`);\n }\n\n await fs.writeJSON(projectPackagePath, pkg, {\n spaces: 2,\n });\n\n const ignorefiles = [\n path.join(root, '.gitignore'),\n path.join(root, '.eslintignore'),\n ];\n\n for (const ignorefile of ignorefiles) {\n if (await fs.pathExists(ignorefile)) {\n const content = await fs.readFile(ignorefile, 'utf-8');\n\n if (!content.split('\\n').includes(`${output}/`)) {\n await fs.writeFile(\n ignorefile,\n `${content}\\n# generated by bob\\n${output}/\\n`\n );\n }\n }\n }\n\n const packageManager = (await fs.pathExists(path.join(root, 'yarn.lock')))\n ? 'yarn'\n : 'npm';\n\n console.log(\n dedent(`\n Project ${kleur.yellow(pkg.name)} configured successfully!\n\n ${kleur.magenta(\n `${kleur.bold('Perform last steps')} by running`\n )}${kleur.gray(':')}\n\n ${kleur.gray('$')} ${packageManager} install\n\n ${kleur.yellow('Good luck!')}\n `)\n );\n })\n .command('build', 'build files for publishing', args, async (argv) => {\n if (!(await fs.pathExists(projectPackagePath))) {\n throw new Error(\n `Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`\n );\n }\n\n const result = await explorer.search();\n\n if (!result?.config) {\n logger.error(\n `No configuration found. Run '${argv.$0} init' to create one automatically.`\n );\n process.exit(1);\n }\n\n const options: Options = result!.config;\n\n if (!options.targets?.length) {\n logger.error(\n `No targets found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n process.exit(1);\n }\n\n const source = options.source;\n\n if (!source) {\n logger.error(\n `No source option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n process.exit(1);\n }\n\n const output = options.output;\n\n if (!output) {\n logger.error(\n `No source option found in the configuration in '${path.relative(\n root,\n result!.filepath\n )}'.`\n );\n process.exit(1);\n }\n\n const exclude =\n options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';\n\n if (argv.target != null) {\n buildTarget(argv.target, source as string, output as string, exclude);\n } else {\n for (const target of options.targets!) {\n buildTarget(target, source as string, output as string, exclude);\n }\n }\n })\n .demandCommand()\n .recommendCommands()\n .strict().argv;\n\nasync function buildTarget(\n target: Exclude<Options['targets'], undefined>[number],\n source: string,\n output: string,\n exclude: string\n) {\n const targetName = Array.isArray(target) ? target[0] : target;\n const targetOptions = Array.isArray(target) ? target[1] : undefined;\n\n const report = logger.grouped(targetName);\n\n switch (targetName) {\n case 'commonjs':\n await buildCommonJS({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'commonjs'),\n exclude,\n options: targetOptions,\n report,\n });\n break;\n case 'module':\n await buildModule({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'module'),\n exclude,\n options: targetOptions,\n report,\n });\n break;\n case 'typescript':\n await buildTypescript({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n options: targetOptions,\n report,\n });\n break;\n case 'codegen':\n await buildCodegen({\n root,\n source: path.resolve(root, source),\n output: path.resolve(root, output, 'typescript'),\n report,\n });\n break;\n case 'custom':\n await customTarget({\n options: targetOptions,\n source: path.resolve(root, source),\n report,\n root,\n });\n break;\n default:\n logger.error(`Invalid target ${kleur.blue(targetName)}.`);\n process.exit(1);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ const mockPackageJson = {
19
19
  const mockReport = {
20
20
  info: console.log,
21
21
  warn: console.log,
22
- error: console.log,
22
+ error: console.error,
23
23
  success: console.log
24
24
  };
25
25
  const mockJavaModuleSpec = `
@@ -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","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":[]}
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.error,\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":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = customTarget;
7
+ var _kleur = _interopRequireDefault(require("kleur"));
8
+ var _path = _interopRequireDefault(require("path"));
9
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
10
+ var _spawn = require("../utils/spawn");
11
+ var _dedent = _interopRequireDefault(require("dedent"));
12
+ var _del = _interopRequireDefault(require("del"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ async function customTarget({
15
+ options,
16
+ root,
17
+ report
18
+ }) {
19
+ if (options?.script == null) {
20
+ report.error((0, _dedent.default)(`No script was provided with the custom target.
21
+ Example: ${_kleur.default.green('{["custom", { "script": "generateTypes" }}')}`));
22
+ process.exit(1);
23
+ }
24
+ const pathToClean = options.clean ? _path.default.relative(root, options.clean) : undefined;
25
+ if (pathToClean) {
26
+ report.info(`Cleaning up ${_kleur.default.blue(pathToClean)}`);
27
+ await (0, _del.default)([_path.default.resolve(root, pathToClean)]);
28
+ }
29
+ const packageManagerExecutable = process.env.npm_execpath ?? 'npm';
30
+ const packageManagerArgs = ['run', options.script];
31
+
32
+ // usr/bin/yarn -> yarn
33
+ const packageManagerName = _path.default.basename(packageManagerExecutable);
34
+ report.info(`Running ${_kleur.default.blue(packageManagerName)} ${_kleur.default.blue(packageManagerArgs.join(' '))}`);
35
+ try {
36
+ await (0, _spawn.spawn)(packageManagerExecutable, packageManagerArgs, {
37
+ stdio: ['ignore', 'ignore', 'inherit']
38
+ });
39
+ } catch (e) {
40
+ report.error(`An error occurred when running ${_kleur.default.blue(options.script)}`);
41
+ process.exit(1);
42
+ }
43
+ report.success(`Ran the ${_kleur.default.blue(options.script)} script succesfully`);
44
+ if (options.clean && pathToClean && !(await _fsExtra.default.pathExists(pathToClean))) {
45
+ report.warn(`Custom target with the ${_kleur.default.blue(options.script)} script has ${_kleur.default.blue(options.clean)} as the ${_kleur.default.bold('clean')} option but this path wasn't created after running the script. Are you sure you've defined the ${_kleur.default.bold('clean')} path correctly?`);
46
+ }
47
+ }
48
+ //# sourceMappingURL=custom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.js","names":["_kleur","_interopRequireDefault","require","_path","_fsExtra","_spawn","_dedent","_del","e","__esModule","default","customTarget","options","root","report","script","error","dedent","kleur","green","process","exit","pathToClean","clean","path","relative","undefined","info","blue","del","resolve","packageManagerExecutable","env","npm_execpath","packageManagerArgs","packageManagerName","basename","join","spawn","stdio","success","fs","pathExists","warn","bold"],"sources":["../../src/targets/custom.ts"],"sourcesContent":["import kleur from 'kleur';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport type { Input } from '../types';\nimport { spawn } from '../utils/spawn';\nimport dedent from 'dedent';\nimport del from 'del';\n\ntype Options = Omit<Input, 'output'> & {\n options?: {\n script?: string;\n clean?: string;\n };\n};\n\nexport default async function customTarget({ options, root, report }: Options) {\n if (options?.script == null) {\n report.error(\n dedent(\n `No script was provided with the custom target.\n Example: ${kleur.green('{[\"custom\", { \"script\": \"generateTypes\" }}')}`\n )\n );\n process.exit(1);\n }\n\n const pathToClean = options.clean\n ? path.relative(root, options.clean)\n : undefined;\n\n if (pathToClean) {\n report.info(`Cleaning up ${kleur.blue(pathToClean)}`);\n\n await del([path.resolve(root, pathToClean)]);\n }\n\n const packageManagerExecutable = process.env.npm_execpath ?? 'npm';\n const packageManagerArgs = ['run', options.script];\n\n // usr/bin/yarn -> yarn\n const packageManagerName = path.basename(packageManagerExecutable);\n report.info(\n `Running ${kleur.blue(packageManagerName)} ${kleur.blue(\n packageManagerArgs.join(' ')\n )}`\n );\n\n try {\n await spawn(packageManagerExecutable, packageManagerArgs, {\n stdio: ['ignore', 'ignore', 'inherit'],\n });\n } catch (e) {\n report.error(\n `An error occurred when running ${kleur.blue(options.script)}`\n );\n process.exit(1);\n }\n\n report.success(`Ran the ${kleur.blue(options.script)} script succesfully`);\n\n if (options.clean && pathToClean && !(await fs.pathExists(pathToClean))) {\n report.warn(\n `Custom target with the ${kleur.blue(\n options.script\n )} script has ${kleur.blue(options.clean)} as the ${kleur.bold(\n 'clean'\n )} option but this path wasn't created after running the script. Are you sure you've defined the ${kleur.bold(\n 'clean'\n )} path correctly?`\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,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;AASP,eAAeG,YAAYA,CAAC;EAAEC,OAAO;EAAEC,IAAI;EAAEC;AAAgB,CAAC,EAAE;EAC7E,IAAIF,OAAO,EAAEG,MAAM,IAAI,IAAI,EAAE;IAC3BD,MAAM,CAACE,KAAK,CACV,IAAAC,eAAM,EACJ;AACR,oBAAoBC,cAAK,CAACC,KAAK,CAAC,4CAA4C,CAAC,EACvE,CACF,CAAC;IACDC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB;EAEA,MAAMC,WAAW,GAAGV,OAAO,CAACW,KAAK,GAC7BC,aAAI,CAACC,QAAQ,CAACZ,IAAI,EAAED,OAAO,CAACW,KAAK,CAAC,GAClCG,SAAS;EAEb,IAAIJ,WAAW,EAAE;IACfR,MAAM,CAACa,IAAI,CAAC,eAAeT,cAAK,CAACU,IAAI,CAACN,WAAW,CAAC,EAAE,CAAC;IAErD,MAAM,IAAAO,YAAG,EAAC,CAACL,aAAI,CAACM,OAAO,CAACjB,IAAI,EAAES,WAAW,CAAC,CAAC,CAAC;EAC9C;EAEA,MAAMS,wBAAwB,GAAGX,OAAO,CAACY,GAAG,CAACC,YAAY,IAAI,KAAK;EAClE,MAAMC,kBAAkB,GAAG,CAAC,KAAK,EAAEtB,OAAO,CAACG,MAAM,CAAC;;EAElD;EACA,MAAMoB,kBAAkB,GAAGX,aAAI,CAACY,QAAQ,CAACL,wBAAwB,CAAC;EAClEjB,MAAM,CAACa,IAAI,CACT,WAAWT,cAAK,CAACU,IAAI,CAACO,kBAAkB,CAAC,IAAIjB,cAAK,CAACU,IAAI,CACrDM,kBAAkB,CAACG,IAAI,CAAC,GAAG,CAC7B,CAAC,EACH,CAAC;EAED,IAAI;IACF,MAAM,IAAAC,YAAK,EAACP,wBAAwB,EAAEG,kBAAkB,EAAE;MACxDK,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS;IACvC,CAAC,CAAC;EACJ,CAAC,CAAC,OAAO/B,CAAC,EAAE;IACVM,MAAM,CAACE,KAAK,CACV,kCAAkCE,cAAK,CAACU,IAAI,CAAChB,OAAO,CAACG,MAAM,CAAC,EAC9D,CAAC;IACDK,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB;EAEAP,MAAM,CAAC0B,OAAO,CAAC,WAAWtB,cAAK,CAACU,IAAI,CAAChB,OAAO,CAACG,MAAM,CAAC,qBAAqB,CAAC;EAE1E,IAAIH,OAAO,CAACW,KAAK,IAAID,WAAW,IAAI,EAAE,MAAMmB,gBAAE,CAACC,UAAU,CAACpB,WAAW,CAAC,CAAC,EAAE;IACvER,MAAM,CAAC6B,IAAI,CACT,0BAA0BzB,cAAK,CAACU,IAAI,CAClChB,OAAO,CAACG,MACV,CAAC,eAAeG,cAAK,CAACU,IAAI,CAAChB,OAAO,CAACW,KAAK,CAAC,WAAWL,cAAK,CAAC0B,IAAI,CAC5D,OACF,CAAC,kGAAkG1B,cAAK,CAAC0B,IAAI,CAC3G,OACF,CAAC,kBACH,CAAC;EACH;AACF","ignoreList":[]}
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["export type Log = (message: string) => void;\nexport type Report = {\n info: Log;\n warn: Log;\n success: Log;\n error: Log;\n};\n\nexport type Input = {\n root: string;\n source: string;\n output: string;\n report: Report;\n};\n\nexport type Target = 'commonjs' | 'module' | 'typescript' | 'codegen';\n\nexport type Options = {\n source?: string;\n output?: string;\n targets?: (Target | [target: Target, options: object])[];\n exclude?: string;\n};\n\ndeclare module '@babel/core' {\n export interface TransformCaller {\n rewriteImportExtensions: boolean;\n jsxRuntime: 'automatic' | 'classic';\n }\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["export type Log = (message: string) => void;\nexport type Report = {\n info: Log;\n warn: Log;\n success: Log;\n error: Log;\n};\n\nexport type Input = {\n root: string;\n source: string;\n output: string;\n report: Report;\n};\n\nexport type Target =\n | 'commonjs'\n | 'module'\n | 'typescript'\n | 'codegen'\n | 'custom';\n\nexport type Options = {\n source?: string;\n output?: string;\n targets?: (Target | [target: Target, options: object])[];\n exclude?: string;\n};\n\ndeclare module '@babel/core' {\n export interface TransformCaller {\n rewriteImportExtensions: boolean;\n jsxRuntime: 'automatic' | 'classic';\n }\n}\n"],"mappings":"","ignoreList":[]}
@@ -41,11 +41,14 @@ async function compile({
41
41
  }
42
42
  }
43
43
  await _fsExtra.default.mkdirp(output);
44
- if (!esm) {
45
- // Ideally we should code with ESM syntax as CommonJS if `esm` is not enabled
46
- // This maintain compatibility with code written for CommonJS
47
- // However currently NextJS has non-standard behavior and breaks this
48
- // So for now we only set this conditionally
44
+
45
+ // Imports are not rewritten to include the extension if `esm` is not enabled
46
+ // Ideally we should always treat ESM syntax as CommonJS if `esm` is not enabled
47
+ // This would maintain compatibility for legacy setups where `import`/`export` didn't require file extensions
48
+ // However NextJS has non-standard behavior and breaks if we add `type: 'commonjs'` for code with import/export
49
+ // So we skip generating `package.json` if `esm` is not enabled and `modules` is not `commonjs`
50
+ // This means that user can't use `type: 'module'` in root `package.json` without enabling `esm` for `module` target
51
+ if (esm || modules === 'commonjs') {
49
52
  await _fsExtra.default.writeJSON(_path.default.join(output, 'package.json'), {
50
53
  type: modules === 'commonjs' ? 'commonjs' : 'module'
51
54
  });
@@ -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","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","caller","name","supportsStaticESM","rewriteImportExtensions","sourceRoot","sourceFileName","filename","presets","resolve","Error","code","mapFilename","basename","sourcesContent","undefined","writeFile","success","getGeneratedEntryPath","ext","indexName","potentialPath","pathExists","fields","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 caller: {\n name: 'react-native-builder-bob',\n supportsStaticESM:\n /\\.m[jt]s$/.test(filepath) || // If a file is explicitly marked as ESM, then preserve the syntax\n modules === 'preserve'\n ? true\n : false,\n rewriteImportExtensions: esm,\n jsxRuntime,\n },\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: [require.resolve('../../babel-preset')],\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","caller","name","supportsStaticESM","rewriteImportExtensions","sourceRoot","sourceFileName","filename","presets","resolve","Error","code","mapFilename","basename","sourcesContent","undefined","writeFile","success","getGeneratedEntryPath","ext","indexName","potentialPath","pathExists","fields","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 // Imports are not rewritten to include the extension if `esm` is not enabled\n // Ideally we should always treat ESM syntax as CommonJS if `esm` is not enabled\n // This would maintain compatibility for legacy setups where `import`/`export` didn't require file extensions\n // However NextJS has non-standard behavior and breaks if we add `type: 'commonjs'` for code with import/export\n // So we skip generating `package.json` if `esm` is not enabled and `modules` is not `commonjs`\n // This means that user can't use `type: 'module'` in root `package.json` without enabling `esm` for `module` target\n if (esm || modules === 'commonjs') {\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 caller: {\n name: 'react-native-builder-bob',\n supportsStaticESM:\n /\\.m[jt]s$/.test(filepath) || // If a file is explicitly marked as ESM, then preserve the syntax\n modules === 'preserve'\n ? true\n : false,\n rewriteImportExtensions: esm,\n jsxRuntime,\n },\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: [require.resolve('../../babel-preset')],\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":[]}
@@ -3,25 +3,33 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.warn = exports.success = exports.info = exports.exit = exports.error = void 0;
6
+ exports.warn = exports.success = exports.info = exports.grouped = exports.error = void 0;
7
7
  var _kleur = _interopRequireDefault(require("kleur"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- const logger = (type, color) => (...messages) => {
10
- console.log(color(_kleur.default.bold(type)), ...messages.map(message => {
9
+ const logger = (type, color, group, stream = process.stdout) => (...messages) => {
10
+ if (group) {
11
+ messages.unshift(`${_kleur.default.gray('[')}${_kleur.default.blue(group)}${_kleur.default.gray(']')}`);
12
+ }
13
+ const message = `${color(_kleur.default.bold(type))} ${messages.map(message => {
11
14
  if (typeof message === 'string') {
12
15
  return message.split('\n').join(`\n `);
13
16
  } else {
14
17
  return message;
15
18
  }
16
- }));
19
+ }).join(' ')}`;
20
+ stream.write(message + '\n');
17
21
  };
18
22
  const info = exports.info = logger('ℹ', _kleur.default.blue);
19
23
  const warn = exports.warn = logger('⚠', _kleur.default.yellow);
20
- const error = exports.error = logger('✖', _kleur.default.red);
24
+ const error = exports.error = logger('✖', _kleur.default.red, undefined, process.stderr);
21
25
  const success = exports.success = logger('✔', _kleur.default.green);
22
- const exit = (...messages) => {
23
- error(...messages);
24
- process.exit(1);
26
+ const grouped = label => {
27
+ return {
28
+ info: logger('ℹ', _kleur.default.blue, label),
29
+ warn: logger('⚠', _kleur.default.yellow, label),
30
+ error: logger('✖', _kleur.default.red, label, process.stderr),
31
+ success: logger('✔', _kleur.default.green, label)
32
+ };
25
33
  };
26
- exports.exit = exit;
34
+ exports.grouped = grouped;
27
35
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","names":["_kleur","_interopRequireDefault","require","e","__esModule","default","logger","type","color","messages","console","log","kleur","bold","map","message","split","join","info","exports","blue","warn","yellow","error","red","success","green","exit","process"],"sources":["../../src/utils/logger.ts"],"sourcesContent":["import kleur from 'kleur';\n\nconst logger =\n (type: string, color: kleur.Color) =>\n (...messages: unknown[]) => {\n console.log(\n color(kleur.bold(type)),\n ...messages.map((message) => {\n if (typeof message === 'string') {\n return message.split('\\n').join(`\\n `);\n } else {\n return message;\n }\n })\n );\n };\n\nexport const info = logger('ℹ', kleur.blue);\nexport const warn = logger('⚠', kleur.yellow);\nexport const error = logger('✖', kleur.red);\nexport const success = logger('✔', kleur.green);\n\nexport const exit = (...messages: unknown[]) => {\n error(...messages);\n process.exit(1);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,MAAM,GACVA,CAACC,IAAY,EAAEC,KAAkB,KACjC,CAAC,GAAGC,QAAmB,KAAK;EAC1BC,OAAO,CAACC,GAAG,CACTH,KAAK,CAACI,cAAK,CAACC,IAAI,CAACN,IAAI,CAAC,CAAC,EACvB,GAAGE,QAAQ,CAACK,GAAG,CAAEC,OAAO,IAAK;IAC3B,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC/B,OAAOA,OAAO,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC;IACzC,CAAC,MAAM;MACL,OAAOF,OAAO;IAChB;EACF,CAAC,CACH,CAAC;AACH,CAAC;AAEI,MAAMG,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAGZ,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACQ,IAAI,CAAC;AACpC,MAAMC,IAAI,GAAAF,OAAA,CAAAE,IAAA,GAAGf,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACU,MAAM,CAAC;AACtC,MAAMC,KAAK,GAAAJ,OAAA,CAAAI,KAAA,GAAGjB,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACY,GAAG,CAAC;AACpC,MAAMC,OAAO,GAAAN,OAAA,CAAAM,OAAA,GAAGnB,MAAM,CAAC,GAAG,EAAEM,cAAK,CAACc,KAAK,CAAC;AAExC,MAAMC,IAAI,GAAGA,CAAC,GAAGlB,QAAmB,KAAK;EAC9Cc,KAAK,CAAC,GAAGd,QAAQ,CAAC;EAClBmB,OAAO,CAACD,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC;AAACR,OAAA,CAAAQ,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"file":"logger.js","names":["_kleur","_interopRequireDefault","require","e","__esModule","default","logger","type","color","group","stream","process","stdout","messages","unshift","kleur","gray","blue","message","bold","map","split","join","write","info","exports","warn","yellow","error","red","undefined","stderr","success","green","grouped","label"],"sources":["../../src/utils/logger.ts"],"sourcesContent":["import kleur from 'kleur';\n\nconst logger =\n (\n type: string,\n color: kleur.Color,\n group?: string,\n stream: NodeJS.WriteStream = process.stdout\n ) =>\n (...messages: unknown[]) => {\n if (group) {\n messages.unshift(\n `${kleur.gray('[')}${kleur.blue(group)}${kleur.gray(']')}`\n );\n }\n\n const message = `${color(kleur.bold(type))} ${messages\n .map((message) => {\n if (typeof message === 'string') {\n return message.split('\\n').join(`\\n `);\n } else {\n return message;\n }\n })\n .join(' ')}`;\n\n stream.write(message + '\\n');\n };\n\nexport const info = logger('ℹ', kleur.blue);\nexport const warn = logger('⚠', kleur.yellow);\nexport const error = logger('✖', kleur.red, undefined, process.stderr);\nexport const success = logger('✔', kleur.green);\n\nexport const grouped = (label: string) => {\n return {\n info: logger('ℹ', kleur.blue, label),\n warn: logger('⚠', kleur.yellow, label),\n error: logger('✖', kleur.red, label, process.stderr),\n success: logger('✔', kleur.green, label),\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,MAAM,GACVA,CACEC,IAAY,EACZC,KAAkB,EAClBC,KAAc,EACdC,MAA0B,GAAGC,OAAO,CAACC,MAAM,KAE7C,CAAC,GAAGC,QAAmB,KAAK;EAC1B,IAAIJ,KAAK,EAAE;IACTI,QAAQ,CAACC,OAAO,CACd,GAAGC,cAAK,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGD,cAAK,CAACE,IAAI,CAACR,KAAK,CAAC,GAAGM,cAAK,CAACC,IAAI,CAAC,GAAG,CAAC,EAC1D,CAAC;EACH;EAEA,MAAME,OAAO,GAAG,GAAGV,KAAK,CAACO,cAAK,CAACI,IAAI,CAACZ,IAAI,CAAC,CAAC,IAAIM,QAAQ,CACnDO,GAAG,CAAEF,OAAO,IAAK;IAChB,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC/B,OAAOA,OAAO,CAACG,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC;IACzC,CAAC,MAAM;MACL,OAAOJ,OAAO;IAChB;EACF,CAAC,CAAC,CACDI,IAAI,CAAC,GAAG,CAAC,EAAE;EAEdZ,MAAM,CAACa,KAAK,CAACL,OAAO,GAAG,IAAI,CAAC;AAC9B,CAAC;AAEI,MAAMM,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAGlB,MAAM,CAAC,GAAG,EAAES,cAAK,CAACE,IAAI,CAAC;AACpC,MAAMS,IAAI,GAAAD,OAAA,CAAAC,IAAA,GAAGpB,MAAM,CAAC,GAAG,EAAES,cAAK,CAACY,MAAM,CAAC;AACtC,MAAMC,KAAK,GAAAH,OAAA,CAAAG,KAAA,GAAGtB,MAAM,CAAC,GAAG,EAAES,cAAK,CAACc,GAAG,EAAEC,SAAS,EAAEnB,OAAO,CAACoB,MAAM,CAAC;AAC/D,MAAMC,OAAO,GAAAP,OAAA,CAAAO,OAAA,GAAG1B,MAAM,CAAC,GAAG,EAAES,cAAK,CAACkB,KAAK,CAAC;AAExC,MAAMC,OAAO,GAAIC,KAAa,IAAK;EACxC,OAAO;IACLX,IAAI,EAAElB,MAAM,CAAC,GAAG,EAAES,cAAK,CAACE,IAAI,EAAEkB,KAAK,CAAC;IACpCT,IAAI,EAAEpB,MAAM,CAAC,GAAG,EAAES,cAAK,CAACY,MAAM,EAAEQ,KAAK,CAAC;IACtCP,KAAK,EAAEtB,MAAM,CAAC,GAAG,EAAES,cAAK,CAACc,GAAG,EAAEM,KAAK,EAAExB,OAAO,CAACoB,MAAM,CAAC;IACpDC,OAAO,EAAE1B,MAAM,CAAC,GAAG,EAAES,cAAK,CAACkB,KAAK,EAAEE,KAAK;EACzC,CAAC;AACH,CAAC;AAACV,OAAA,CAAAS,OAAA,GAAAA,OAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-builder-bob",
3
- "version": "0.36.0",
3
+ "version": "0.38.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": "f06514d852d578df98008b0ce87de69e0fde59bd"
90
+ "gitHead": "8ff17fc6cdab28a63f1de06b381726e2132e5691"
91
91
  }