react-native-builder-bob 0.29.1 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _globals = require("@jest/globals");
4
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
5
+ var _nodePath = _interopRequireDefault(require("node:path"));
6
+ var _patchCodegen = require("../utils/patchCodegen");
7
+ var _mockFs = _interopRequireDefault(require("mock-fs"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const mockPackageJson = {
10
+ codegenConfig: {
11
+ outputDir: {
12
+ android: 'android/generated'
13
+ },
14
+ android: {
15
+ javaPackageName: 'com.bobtest'
16
+ }
17
+ }
18
+ };
19
+ const mockReport = {
20
+ info: console.log,
21
+ warn: console.log,
22
+ error: console.log,
23
+ success: console.log
24
+ };
25
+ const mockJavaSpec = `
26
+ /**
27
+ * Some comment
28
+ */
29
+
30
+ package com.bobtest;
31
+
32
+ import com.example.exampleimport;
33
+
34
+ class SomeClass {
35
+ public void someMethod() {
36
+ // some code
37
+ }
38
+ }`;
39
+ const mockProjectPath = _nodePath.default.resolve(__dirname, 'mockProject');
40
+ const mockCodegenSpecsPath = _nodePath.default.resolve(mockProjectPath, 'android/generated/java/com/facebook/fbreact/specs');
41
+ (0, _globals.describe)('patchCodegen', () => {
42
+ (0, _globals.beforeEach)(() => {
43
+ (0, _mockFs.default)({
44
+ [mockProjectPath]: {
45
+ 'package.json': JSON.stringify(mockPackageJson)
46
+ },
47
+ [mockCodegenSpecsPath]: {
48
+ 'NativeBobtestSpec.java': mockJavaSpec
49
+ }
50
+ });
51
+ });
52
+ (0, _globals.afterEach)(() => {
53
+ _mockFs.default.restore();
54
+ });
55
+ (0, _globals.it)('moves the files to correct dir', async () => {
56
+ await (0, _patchCodegen.patchCodegen)(mockProjectPath, mockPackageJson, mockReport);
57
+ const expectedDir = _nodePath.default.resolve(mockProjectPath, 'android/generated/java/com/bobtest');
58
+ (0, _globals.expect)(await _fsExtra.default.pathExists(expectedDir)).toBe(true);
59
+ });
60
+ (0, _globals.it)('replaces the package name in the files', async () => {
61
+ await (0, _patchCodegen.patchCodegen)(mockProjectPath, mockPackageJson, mockReport);
62
+ const expectedDir = _nodePath.default.resolve(mockProjectPath, 'android/generated/java/com/bobtest');
63
+ const expectedFile = _nodePath.default.resolve(expectedDir, 'NativeBobtestSpec.java');
64
+ const fileContent = await _fsExtra.default.readFile(expectedFile, 'utf8');
65
+ (0, _globals.expect)(fileContent).toContain('package com.bobtest;');
66
+ });
67
+ (0, _globals.it)('removes the old package dir', async () => {
68
+ await (0, _patchCodegen.patchCodegen)(mockProjectPath, mockPackageJson, mockReport);
69
+ (0, _globals.expect)(await _fsExtra.default.pathExists(mockCodegenSpecsPath)).toBe(false);
70
+ });
71
+ });
72
+ //# sourceMappingURL=patchCodegen.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchCodegen.test.js","names":["_globals","require","_fsExtra","_interopRequireDefault","_nodePath","_patchCodegen","_mockFs","e","__esModule","default","mockPackageJson","codegenConfig","outputDir","android","javaPackageName","mockReport","info","console","log","warn","error","success","mockJavaSpec","mockProjectPath","path","resolve","__dirname","mockCodegenSpecsPath","describe","beforeEach","mockfs","JSON","stringify","afterEach","restore","it","patchCodegen","expectedDir","expect","fs","pathExists","toBe","expectedFile","fileContent","readFile","toContain"],"sources":["../../src/__tests__/patchCodegen.test.ts"],"sourcesContent":["import { expect, it, describe, beforeEach, afterEach } from '@jest/globals';\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport { patchCodegen } from '../utils/patchCodegen';\nimport mockfs from 'mock-fs';\nimport type { Report } from '../types';\n\nconst mockPackageJson = {\n codegenConfig: {\n outputDir: {\n android: 'android/generated',\n },\n android: {\n javaPackageName: 'com.bobtest',\n },\n },\n};\n\nconst mockReport: Report = {\n info: console.log,\n warn: console.log,\n error: console.log,\n success: console.log,\n};\n\nconst mockJavaSpec = `\n/**\n * Some comment\n */\n\npackage com.bobtest;\n\nimport com.example.exampleimport;\n\nclass SomeClass {\n public void someMethod() {\n // some code\n }\n}`;\n\nconst mockProjectPath = path.resolve(__dirname, 'mockProject');\nconst mockCodegenSpecsPath = path.resolve(\n mockProjectPath,\n 'android/generated/java/com/facebook/fbreact/specs'\n);\n\ndescribe('patchCodegen', () => {\n beforeEach(() => {\n mockfs({\n [mockProjectPath]: {\n 'package.json': JSON.stringify(mockPackageJson),\n },\n [mockCodegenSpecsPath]: {\n 'NativeBobtestSpec.java': mockJavaSpec,\n },\n });\n });\n\n afterEach(() => {\n mockfs.restore();\n });\n\n it('moves the files to correct dir', async () => {\n await patchCodegen(mockProjectPath, mockPackageJson, mockReport);\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 patchCodegen(mockProjectPath, mockPackageJson, mockReport);\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 patchCodegen(mockProjectPath, mockPackageJson, mockReport);\n\n expect(await fs.pathExists(mockCodegenSpecsPath)).toBe(false);\n });\n});\n"],"mappings":";;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAH,sBAAA,CAAAF,OAAA;AAA6B,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG7B,MAAMG,eAAe,GAAG;EACtBC,aAAa,EAAE;IACbC,SAAS,EAAE;MACTC,OAAO,EAAE;IACX,CAAC;IACDA,OAAO,EAAE;MACPC,eAAe,EAAE;IACnB;EACF;AACF,CAAC;AAED,MAAMC,UAAkB,GAAG;EACzBC,IAAI,EAAEC,OAAO,CAACC,GAAG;EACjBC,IAAI,EAAEF,OAAO,CAACC,GAAG;EACjBE,KAAK,EAAEH,OAAO,CAACC,GAAG;EAClBG,OAAO,EAAEJ,OAAO,CAACC;AACnB,CAAC;AAED,MAAMI,YAAY,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AAEF,MAAMC,eAAe,GAAGC,iBAAI,CAACC,OAAO,CAACC,SAAS,EAAE,aAAa,CAAC;AAC9D,MAAMC,oBAAoB,GAAGH,iBAAI,CAACC,OAAO,CACvCF,eAAe,EACf,mDACF,CAAC;AAED,IAAAK,iBAAQ,EAAC,cAAc,EAAE,MAAM;EAC7B,IAAAC,mBAAU,EAAC,MAAM;IACf,IAAAC,eAAM,EAAC;MACL,CAACP,eAAe,GAAG;QACjB,cAAc,EAAEQ,IAAI,CAACC,SAAS,CAACtB,eAAe;MAChD,CAAC;MACD,CAACiB,oBAAoB,GAAG;QACtB,wBAAwB,EAAEL;MAC5B;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,IAAAW,kBAAS,EAAC,MAAM;IACdH,eAAM,CAACI,OAAO,CAAC,CAAC;EAClB,CAAC,CAAC;EAEF,IAAAC,WAAE,EAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAM,IAAAC,0BAAY,EAACb,eAAe,EAAEb,eAAe,EAAEK,UAAU,CAAC;IAEhE,MAAMsB,WAAW,GAAGb,iBAAI,CAACC,OAAO,CAC9BF,eAAe,EACf,oCACF,CAAC;IAED,IAAAe,eAAM,EAAC,MAAMC,gBAAE,CAACC,UAAU,CAACH,WAAW,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;EACrD,CAAC,CAAC;EAEF,IAAAN,WAAE,EAAC,wCAAwC,EAAE,YAAY;IACvD,MAAM,IAAAC,0BAAY,EAACb,eAAe,EAAEb,eAAe,EAAEK,UAAU,CAAC;IAEhE,MAAMsB,WAAW,GAAGb,iBAAI,CAACC,OAAO,CAC9BF,eAAe,EACf,oCACF,CAAC;IAED,MAAMmB,YAAY,GAAGlB,iBAAI,CAACC,OAAO,CAACY,WAAW,EAAE,wBAAwB,CAAC;IAExE,MAAMM,WAAW,GAAG,MAAMJ,gBAAE,CAACK,QAAQ,CAACF,YAAY,EAAE,MAAM,CAAC;IAE3D,IAAAJ,eAAM,EAACK,WAAW,CAAC,CAACE,SAAS,CAAC,sBAAsB,CAAC;EACvD,CAAC,CAAC;EAEF,IAAAV,WAAE,EAAC,6BAA6B,EAAE,YAAY;IAC5C,MAAM,IAAAC,0BAAY,EAACb,eAAe,EAAEb,eAAe,EAAEK,UAAU,CAAC;IAEhE,IAAAuB,eAAM,EAAC,MAAMC,gBAAE,CAACC,UAAU,CAACb,oBAAoB,CAAC,CAAC,CAACc,IAAI,CAAC,KAAK,CAAC;EAC/D,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
package/lib/index.js CHANGED
@@ -12,9 +12,18 @@ var logger = _interopRequireWildcard(require("./utils/logger"));
12
12
  var _commonjs = _interopRequireDefault(require("./targets/commonjs"));
13
13
  var _module = _interopRequireDefault(require("./targets/module"));
14
14
  var _typescript = _interopRequireDefault(require("./targets/typescript"));
15
+ var _codegen = _interopRequireDefault(require("./targets/codegen"));
15
16
  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); }
16
17
  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; }
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ const args = {
20
+ target: {
21
+ type: 'string',
22
+ description: 'The target to build',
23
+ choices: ['commonjs', 'module', 'typescript', 'codegen']
24
+ }
25
+ };
26
+
18
27
  // eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires
19
28
  const {
20
29
  name,
@@ -25,6 +34,7 @@ const explorer = (0, _cosmiconfig.cosmiconfig)(name, {
25
34
  stopDir: root,
26
35
  searchPlaces: ['package.json', 'bob.config.mjs', 'bob.config.cjs', 'bob.config.js']
27
36
  });
37
+ const projectPackagePath = _path.default.resolve(root, 'package.json');
28
38
  const FLOW_PRGAMA_REGEX = /\*?\s*@(flow)\b/m;
29
39
  _yargs.default.command('init', 'configure the package to use bob', {}, async () => {
30
40
  if ((0, _isGitDirty.default)()) {
@@ -40,11 +50,10 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
40
50
  process.exit(0);
41
51
  }
42
52
  }
43
- const pak = _path.default.join(root, 'package.json');
44
- if (!(await _fsExtra.default.pathExists(pak))) {
53
+ if (!(await _fsExtra.default.pathExists(projectPackagePath))) {
45
54
  logger.exit(`Couldn't find a 'package.json' file in '${root}'.\n Are you in a project folder?`);
46
55
  }
47
- const pkg = JSON.parse(await _fsExtra.default.readFile(pak, 'utf-8'));
56
+ const pkg = JSON.parse(await _fsExtra.default.readFile(projectPackagePath, 'utf-8'));
48
57
  const result = await explorer.search();
49
58
  if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {
50
59
  const {
@@ -317,7 +326,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
317
326
  if (!pkg.eslintIgnore.includes(`${output}/`)) {
318
327
  pkg.eslintIgnore.push(`${output}/`);
319
328
  }
320
- await _fsExtra.default.writeJSON(pak, pkg, {
329
+ await _fsExtra.default.writeJSON(projectPackagePath, pkg, {
321
330
  spaces: 2
322
331
  });
323
332
  const ignorefiles = [_path.default.join(root, '.gitignore'), _path.default.join(root, '.eslintignore')];
@@ -339,7 +348,10 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
339
348
 
340
349
  ${_kleur.default.yellow('Good luck!')}
341
350
  `));
342
- }).command('build', 'build files for publishing', {}, async argv => {
351
+ }).command('build', 'build files for publishing', args, async argv => {
352
+ if (!(await _fsExtra.default.pathExists(projectPackagePath))) {
353
+ throw new Error(`Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`);
354
+ }
343
355
  const result = await explorer.search();
344
356
  if (!result?.config) {
345
357
  logger.exit(`No configuration found. Run '${argv.$0} init' to create one automatically.`);
@@ -363,43 +375,58 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
363
375
  error: logger.error,
364
376
  success: logger.success
365
377
  };
366
- for (const target of options.targets) {
367
- const targetName = Array.isArray(target) ? target[0] : target;
368
- const targetOptions = Array.isArray(target) ? target[1] : undefined;
369
- report.info(`Building target ${_kleur.default.blue(targetName)}`);
370
- switch (targetName) {
371
- case 'commonjs':
372
- await (0, _commonjs.default)({
373
- root,
374
- source: _path.default.resolve(root, source),
375
- output: _path.default.resolve(root, output, 'commonjs'),
376
- exclude,
377
- options: targetOptions,
378
- report
379
- });
380
- break;
381
- case 'module':
382
- await (0, _module.default)({
383
- root,
384
- source: _path.default.resolve(root, source),
385
- output: _path.default.resolve(root, output, 'module'),
386
- exclude,
387
- options: targetOptions,
388
- report
389
- });
390
- break;
391
- case 'typescript':
392
- await (0, _typescript.default)({
393
- root,
394
- source: _path.default.resolve(root, source),
395
- output: _path.default.resolve(root, output, 'typescript'),
396
- options: targetOptions,
397
- report
398
- });
399
- break;
400
- default:
401
- logger.exit(`Invalid target ${_kleur.default.blue(targetName)}.`);
378
+ if (argv.target != null) {
379
+ buildTarget(argv.target, report, source, output, exclude);
380
+ } else {
381
+ for (const target of options.targets) {
382
+ buildTarget(target, report, source, output, exclude);
402
383
  }
403
384
  }
404
385
  }).demandCommand().recommendCommands().strict().argv;
386
+ async function buildTarget(target, report, source, output, exclude) {
387
+ const targetName = Array.isArray(target) ? target[0] : target;
388
+ const targetOptions = Array.isArray(target) ? target[1] : undefined;
389
+ report.info(`Building target ${_kleur.default.blue(targetName)}`);
390
+ switch (targetName) {
391
+ case 'commonjs':
392
+ await (0, _commonjs.default)({
393
+ root,
394
+ source: _path.default.resolve(root, source),
395
+ output: _path.default.resolve(root, output, 'commonjs'),
396
+ exclude,
397
+ options: targetOptions,
398
+ report
399
+ });
400
+ break;
401
+ case 'module':
402
+ await (0, _module.default)({
403
+ root,
404
+ source: _path.default.resolve(root, source),
405
+ output: _path.default.resolve(root, output, 'module'),
406
+ exclude,
407
+ options: targetOptions,
408
+ report
409
+ });
410
+ break;
411
+ case 'typescript':
412
+ await (0, _typescript.default)({
413
+ root,
414
+ source: _path.default.resolve(root, source),
415
+ output: _path.default.resolve(root, output, 'typescript'),
416
+ options: targetOptions,
417
+ report
418
+ });
419
+ break;
420
+ case 'codegen':
421
+ await (0, _codegen.default)({
422
+ root,
423
+ source: _path.default.resolve(root, source),
424
+ output: _path.default.resolve(root, output, 'typescript'),
425
+ report
426
+ });
427
+ break;
428
+ default:
429
+ logger.exit(`Invalid target ${_kleur.default.blue(targetName)}.`);
430
+ }
431
+ }
405
432
  //# 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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","name","version","root","process","cwd","explorer","cosmiconfig","stopDir","searchPlaces","FLOW_PRGAMA_REGEX","yargs","command","isGitDirty","shouldContinue","prompts","type","message","initial","exit","pak","path","join","fs","pathExists","pkg","JSON","parse","readFile","result","search","config","devDependencies","source","validate","input","Boolean","entryFile","fromEntries","entries","sort","b","localeCompare","questions","choices","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","target","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","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","$0","options","relative","filepath","exclude","report","info","warn","error","success","targetName","Array","isArray","targetOptions","blue","buildCommonJS","resolve","buildModule","buildTypescript","demandCommand","recommendCommands"],"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 type { Options } from './types';\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 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 const pak = path.join(root, 'package.json');\n\n if (!(await fs.pathExists(pak))) {\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(pak, '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 exports = {\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 (\n pkg.exports &&\n JSON.stringify(pkg.exports) !== JSON.stringify(exports)\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 = exports;\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(pak, 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', {}, async (argv) => {\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 for (const target of options.targets!) {\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 as string),\n output: path.resolve(root, output as string, '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 as string),\n output: path.resolve(root, output as string, '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 as string),\n output: path.resolve(root, output as string, 'typescript'),\n options: targetOptions,\n report,\n });\n break;\n default:\n logger.exit(`Invalid target ${kleur.blue(targetName)}.`);\n }\n }\n })\n .demandCommand()\n .recommendCommands()\n .strict().argv;\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,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,QAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,MAAA,GAAAC,uBAAA,CAAAT,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,OAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,WAAA,GAAAb,sBAAA,CAAAC,OAAA;AAAmD,SAAAa,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,SAAAL,wBAAAK,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,SAAAvB,uBAAAe,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAGnD;AACA,MAAM;EAAEmB,IAAI;EAAEC;AAAQ,CAAC,GAAGlC,OAAO,CAAC,iBAAiB,CAAC;AAEpD,MAAMmC,IAAI,GAAGC,OAAO,CAACC,GAAG,CAAC,CAAC;AAC1B,MAAMC,QAAQ,GAAG,IAAAC,wBAAW,EAACN,IAAI,EAAE;EACjCO,OAAO,EAAEL,IAAI;EACbM,YAAY,EAAE,CACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe;AAEnB,CAAC,CAAC;AAEF,MAAMC,iBAAiB,GAAG,kBAAkB;AAE5CC,cAAK,CACFC,OAAO,CAAC,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC,EAAE,YAAY;EACnE,IAAI,IAAAC,mBAAU,EAAC,CAAC,EAAE;IAChB,MAAM;MAAEC;IAAe,CAAC,GAAG,MAAM,IAAAC,gBAAO,EAAC;MACvCC,IAAI,EAAE,SAAS;MACff,IAAI,EAAE,gBAAgB;MACtBgB,OAAO,EAAE,4HAA4H;MACrIC,OAAO,EAAE;IACX,CAAC,CAAC;IAEF,IAAI,CAACJ,cAAc,EAAE;MACnBV,OAAO,CAACe,IAAI,CAAC,CAAC,CAAC;IACjB;EACF;EAEA,MAAMC,GAAG,GAAGC,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE,cAAc,CAAC;EAE3C,IAAI,EAAE,MAAMoB,gBAAE,CAACC,UAAU,CAACJ,GAAG,CAAC,CAAC,EAAE;IAC/B5C,MAAM,CAAC2C,IAAI,CACT,2CAA2ChB,IAAI,oCACjD,CAAC;EACH;EAEA,MAAMsB,GAAG,GAAGC,IAAI,CAACC,KAAK,CAAC,MAAMJ,gBAAE,CAACK,QAAQ,CAACR,GAAG,EAAE,OAAO,CAAC,CAAC;EACvD,MAAMS,MAAM,GAAG,MAAMvB,QAAQ,CAACwB,MAAM,CAAC,CAAC;EAEtC,IAAID,MAAM,EAAEE,MAAM,IAAIN,GAAG,CAACO,eAAe,IAAI/B,IAAI,IAAIwB,GAAG,CAACO,eAAe,EAAE;IACxE,MAAM;MAAElB;IAAe,CAAC,GAAG,MAAM,IAAAC,gBAAO,EAAC;MACvCC,IAAI,EAAE,SAAS;MACff,IAAI,EAAE,gBAAgB;MACtBgB,OAAO,EAAE,8GAA8G;MACvHC,OAAO,EAAE;IACX,CAAC,CAAC;IAEF,IAAI,CAACJ,cAAc,EAAE;MACnBV,OAAO,CAACe,IAAI,CAAC,CAAC,CAAC;IACjB;EACF;EAEA,MAAM;IAAEc;EAAO,CAAC,GAAG,MAAM,IAAAlB,gBAAO,EAAC;IAC/BC,IAAI,EAAE,MAAM;IACZf,IAAI,EAAE,QAAQ;IACdgB,OAAO,EAAE,8BAA8B;IACvCC,OAAO,EAAE,KAAK;IACdgB,QAAQ,EAAGC,KAAK,IAAKC,OAAO,CAACD,KAAK;EACpC,CAAC,CAAC;EAEF,IAAIE,SAAS;EAEb,IAAI,MAAMd,gBAAE,CAACC,UAAU,CAACH,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE8B,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE;IAC5DI,SAAS,GAAG,UAAU;EACxB,CAAC,MAAM,IAAI,MAAMd,gBAAE,CAACC,UAAU,CAACH,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE8B,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE;IACnEI,SAAS,GAAG,UAAU;EACxB,CAAC,MAAM,IAAI,MAAMd,gBAAE,CAACC,UAAU,CAACH,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE8B,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE;IACpEI,SAAS,GAAG,WAAW;EACzB;EAEA,IAAI,CAACA,SAAS,EAAE;IACd7D,MAAM,CAAC2C,IAAI,CACT,qEAAqEc,MAAM,gDAC7E,CAAC;IACD;EACF;EAEAR,GAAG,CAACO,eAAe,GAAGvC,MAAM,CAAC6C,WAAW,CACtC,CACE,GAAG7C,MAAM,CAAC8C,OAAO,CAACd,GAAG,CAACO,eAAe,IAAI,CAAC,CAAC,CAAC,EAC5C,CAAC/B,IAAI,EAAE,IAAIC,OAAO,EAAE,CAAC,CACtB,CAACsC,IAAI,CAAC,CAAC,CAAChD,CAAC,CAAC,EAAE,CAACiD,CAAC,CAAC,KAAKjD,CAAC,CAACkD,aAAa,CAACD,CAAC,CAAC,CACzC,CAAC;EAED,MAAME,SAAyB,GAAG,CAChC;IACE3B,IAAI,EAAE,MAAM;IACZf,IAAI,EAAE,QAAQ;IACdgB,OAAO,EAAE,iDAAiD;IAC1DC,OAAO,EAAE,KAAK;IACdgB,QAAQ,EAAGC,KAAa,IAAKC,OAAO,CAACD,KAAK;EAC5C,CAAC,EACD;IACEnB,IAAI,EAAE,aAAa;IACnBf,IAAI,EAAE,SAAS;IACfgB,OAAO,EAAE,qCAAqC;IAC9C2B,OAAO,EAAE,CACP;MACEC,KAAK,EAAE,kDAAkD;MACzDC,KAAK,EAAE,UAAU;MACjBC,QAAQ,EAAE;IACZ,CAAC,EACD;MACEF,KAAK,EAAE,6CAA6C;MACpDC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ,CAAC,EACD;MACEF,KAAK,EAAE,iDAAiD;MACxDC,KAAK,EAAE,YAAY;MACnBC,QAAQ,EAAE,SAAS,CAACC,IAAI,CAACX,SAAS;IACpC,CAAC,CACF;IACDH,QAAQ,EAAGC,KAAa,IAAKC,OAAO,CAACD,KAAK,CAACc,MAAM;EACnD,CAAC,CACF;EAED,IACEZ,SAAS,CAACa,QAAQ,CAAC,KAAK,CAAC,IACzBxC,iBAAiB,CAACsC,IAAI,CACpB,MAAMzB,gBAAE,CAACK,QAAQ,CAACP,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE8B,MAAM,EAAEI,SAAS,CAAC,EAAE,OAAO,CAC/D,CAAC,EACD;IACAM,SAAS,CAACQ,IAAI,CAAC;MACbnC,IAAI,EAAE,SAAS;MACff,IAAI,EAAE,MAAM;MACZgB,OAAO,EAAE,8CAA8C;MACvDC,OAAO,EAAEzB,MAAM,CAAC2D,IAAI,CAAC3B,GAAG,CAACO,eAAe,IAAI,CAAC,CAAC,CAAC,CAACqB,QAAQ,CAAC,UAAU;IACrE,CAAC,CAAC;EACJ;EAEA,MAAM;IAAEC,MAAM;IAAEC,OAAO;IAAEC;EAAK,CAAC,GAAG,MAAM,IAAAzC,gBAAO,EAAC4B,SAAS,CAAC;EAE1D,MAAMc,MAAM,GACVF,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,IAAIA,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,GAChDA,OAAO,CAAC,CAAC,CAAC,GACVG,SAAS;EAEf,MAAMnB,OAEL,GAAG;IACFN,MAAM,EAAE,KAAKZ,aAAI,CAACC,IAAI,CAACW,MAAM,EAAEI,SAAS,CAAC;EAC3C,CAAC;EAED,IAAIsB,GAAG,GAAG,KAAK;EAEf,IAAIJ,OAAO,CAACF,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC9BM,GAAG,GAAG,IAAI;IAEV,IAAIJ,OAAO,CAACF,QAAQ,CAAC,UAAU,CAAC,EAAE;MAChCd,OAAO,CAACqB,IAAI,GAAG,KAAKvC,aAAI,CAACC,IAAI,CAACgC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;IACjE;IAEAf,OAAO,CAACsB,MAAM,GAAG,KAAKxC,aAAI,CAACC,IAAI,CAACgC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;EACjE,CAAC,MAAM,IAAIC,OAAO,CAACF,QAAQ,CAAC,UAAU,CAAC,EAAE;IACvCd,OAAO,CAACqB,IAAI,GAAG,KAAKvC,aAAI,CAACC,IAAI,CAACgC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;EACjE,CAAC,MAAM;IACLf,OAAO,CAACqB,IAAI,GAAGrB,OAAO,CAACN,MAAM;EAC/B;EAEA,MAAM6B,KAEL,GAAG,CAAC,CAAC;EAEN,IAAIP,OAAO,CAACF,QAAQ,CAAC,YAAY,CAAC,EAAE;IAClCS,KAAK,CAAC9F,OAAO,GAAG,KAAKqD,aAAI,CAACC,IAAI,CAC5BgC,MAAM,EACN,YAAY,EACZ,UAAU,EACVrB,MAAM,EACN,YACF,CAAC,EAAE;IAEH6B,KAAK,CAACC,MAAM,GAAG,KAAK1C,aAAI,CAACC,IAAI,CAC3BgC,MAAM,EACN,YAAY,EACZ,QAAQ,EACRrB,MAAM,EACN,YACF,CAAC,EAAE;IAEHM,OAAO,CAACuB,KAAK,GAAGA,KAAK,CAAC9F,OAAO;IAE7B,IAAI,EAAE,MAAMuD,gBAAE,CAACC,UAAU,CAACH,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE;MAC5D,MAAM;QAAE6D;MAAS,CAAC,GAAG,MAAM,IAAAjD,gBAAO,EAAC;QACjCC,IAAI,EAAE,SAAS;QACff,IAAI,EAAE,UAAU;QAChBgB,OAAO,EAAE,qHAAqH;QAC9HC,OAAO,EAAE;MACX,CAAC,CAAC;MAEF,IAAI8C,QAAQ,EAAE;QACZ,MAAMzC,gBAAE,CAAC0C,SAAS,CAChB5C,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE,eAAe,CAAC,EAChC;UACE+D,eAAe,EAAE;YACfC,OAAO,EAAE,GAAG;YACZC,oBAAoB,EAAE,KAAK;YAC3BC,iBAAiB,EAAE,KAAK;YACxBC,eAAe,EAAE,IAAI;YACrBC,gCAAgC,EAAE,IAAI;YACtCC,GAAG,EAAE,WAAW;YAChBC,GAAG,EAAE,CAAC,QAAQ,CAAC;YACfZ,MAAM,EAAE,QAAQ;YAChBa,gBAAgB,EAAE,SAAS;YAC3BC,0BAA0B,EAAE,IAAI;YAChCC,iBAAiB,EAAE,IAAI;YACvBC,mBAAmB,EAAE,KAAK;YAC1BC,qBAAqB,EAAE,KAAK;YAC5BC,wBAAwB,EAAE,IAAI;YAC9BC,cAAc,EAAE,IAAI;YACpBC,kBAAkB,EAAE,IAAI;YACxBC,iBAAiB,EAAE,IAAI;YACvBC,YAAY,EAAE,IAAI;YAClBC,MAAM,EAAE,IAAI;YACZ3B,MAAM,EAAE,QAAQ;YAChB4B,oBAAoB,EAAE;UACxB;QACF,CAAC,EACD;UAAEC,MAAM,EAAE;QAAE,CACd,CAAC;MACH;IACF;EACF;EAEA,MAAMC,OAAO,GAAG,WAAW;EAC3B,MAAMC,KAAK,GAAG,CACZvD,MAAM,EACNqB,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,eAAe,CAChB;EAED,KAAK,MAAMmC,GAAG,IAAIlD,OAAO,EAAE;IACzB,MAAMmD,KAAK,GAAGnD,OAAO,CAACkD,GAAG,CAAyB;IAElD,IAAIhE,GAAG,CAACgE,GAAG,CAAC,IAAIhE,GAAG,CAACgE,GAAG,CAAC,KAAKC,KAAK,EAAE;MAClC,MAAM;QAAEC;MAAQ,CAAC,GAAG,MAAM,IAAA5E,gBAAO,EAAC;QAChCC,IAAI,EAAE,SAAS;QACff,IAAI,EAAE,SAAS;QACfgB,OAAO,EAAE,8BAA8BwE,GAAG,mBAAmBhE,GAAG,CAACgE,GAAG,CAAC,yCAAyCC,KAAK,IAAI;QACvHxE,OAAO,EAAE;MACX,CAAC,CAAC;MAEF,IAAIyE,OAAO,EAAE;QACXlE,GAAG,CAACgE,GAAG,CAAC,GAAGC,KAAK;MAClB;IACF,CAAC,MAAM;MACLjE,GAAG,CAACgE,GAAG,CAAC,GAAGC,KAAK;IAClB;EACF;EAEA,IAAI/B,GAAG,EAAE;IACP,IAAIgC,OAAO,GAAG,KAAK;IAEnB,MAAMC,OAAO,GAAG;MACd,GAAG,EAAE;QACH7B,MAAM,EAAE;UACN,IAAID,KAAK,CAACC,MAAM,GAAG;YAAED,KAAK,EAAEA,KAAK,CAACC;UAAO,CAAC,GAAG,IAAI,CAAC;UAClD,IAAIxB,OAAO,CAACsB,MAAM,GAAG;YAAE1E,OAAO,EAAEoD,OAAO,CAACsB;UAAO,CAAC,GAAG,IAAI;QACzD,CAAC;QACD7F,OAAO,EAAE;UACP,IAAI8F,KAAK,CAAC9F,OAAO,GAAG;YAAE8F,KAAK,EAAEA,KAAK,CAAC9F;UAAQ,CAAC,GAAG,IAAI,CAAC;UACpD,IAAIuE,OAAO,CAACqB,IAAI,GAAG;YAAEzE,OAAO,EAAEoD,OAAO,CAACqB;UAAK,CAAC,GAAG,IAAI;QACrD;MACF;IACF,CAAC;IAED,IACEnC,GAAG,CAACmE,OAAO,IACXlE,IAAI,CAACmE,SAAS,CAACpE,GAAG,CAACmE,OAAO,CAAC,KAAKlE,IAAI,CAACmE,SAAS,CAACD,OAAO,CAAC,EACvD;MACAD,OAAO,GAAG,CACR,MAAM,IAAA5E,gBAAO,EAAC;QACZC,IAAI,EAAE,SAAS;QACff,IAAI,EAAE,SAAS;QACfgB,OAAO,EAAE,0EAA0E;QACnFC,OAAO,EAAE;MACX,CAAC,CAAC,EACFyE,OAAO;IACX,CAAC,MAAM;MACLA,OAAO,GAAG,IAAI;IAChB;IAEA,IAAIA,OAAO,EAAE;MACXlE,GAAG,CAACmE,OAAO,GAAGA,OAAO;IACvB;EACF;EAEA,IACEnE,GAAG,CAAC,cAAc,CAAC,KAClBA,GAAG,CAAC,cAAc,CAAC,CAACqE,UAAU,CAAC7D,MAAM,CAAC,IACrCR,GAAG,CAAC,cAAc,CAAC,CAACqE,UAAU,CAAC,KAAK7D,MAAM,EAAE,CAAC,CAAC,EAChD;IACA,MAAM;MAAE8D;IAAO,CAAC,GAAG,MAAM,IAAAhF,gBAAO,EAAC;MAC/BC,IAAI,EAAE,SAAS;MACff,IAAI,EAAE,QAAQ;MACdgB,OAAO,EAAE,uKAAuK;MAChLC,OAAO,EAAE;IACX,CAAC,CAAC;IAEF,IAAI6E,MAAM,EAAE;MACV,OAAOtE,GAAG,CAAC,cAAc,CAAC;IAC5B;EACF;EAEA,IAAIA,GAAG,CAACuE,OAAO,EAAET,OAAO,IAAI9D,GAAG,CAACuE,OAAO,CAACT,OAAO,KAAKA,OAAO,EAAE;IAC3D,MAAM;MAAEI;IAAQ,CAAC,GAAG,MAAM,IAAA5E,gBAAO,EAAC;MAChCC,IAAI,EAAE,SAAS;MACff,IAAI,EAAE,SAAS;MACfgB,OAAO,EAAE,6DAA6DQ,GAAG,CAACuE,OAAO,CAACT,OAAO,yCAAyCA,OAAO,IAAI;MAC7IrE,OAAO,EAAE;IACX,CAAC,CAAC;IAEF,IAAIyE,OAAO,EAAE;MACXlE,GAAG,CAACuE,OAAO,CAACT,OAAO,GAAGA,OAAO;IAC/B;EACF,CAAC,MAAM;IACL9D,GAAG,CAACuE,OAAO,GAAGvE,GAAG,CAACuE,OAAO,IAAI,CAAC,CAAC;IAC/BvE,GAAG,CAACuE,OAAO,CAACT,OAAO,GAAGA,OAAO;EAC/B;EAEA,IAAI9D,GAAG,CAAC+D,KAAK,EAAE;IACb,MAAMS,QAAQ,GAAGxE,GAAG,CAAC+D,KAAK;IAE1B,IAAIA,KAAK,EAAEU,IAAI,CAAEC,IAAI,IAAK,CAACF,QAAQ,CAAC5C,QAAQ,CAAC8C,IAAI,CAAC,CAAC,EAAE;MACnD,MAAM;QAAEC;MAAO,CAAC,GAAG,MAAM,IAAArF,gBAAO,EAAC;QAC/BC,IAAI,EAAE,SAAS;QACff,IAAI,EAAE,QAAQ;QACdgB,OAAO,EAAE,6EAA6E;QACtFC,OAAO,EAAE;MACX,CAAC,CAAC;MAEF,IAAIkF,MAAM,EAAE;QACV3E,GAAG,CAAC+D,KAAK,GAAG,CACV,GAAGA,KAAK,EACR,GAAG/D,GAAG,CAAC+D,KAAK,CAACa,MAAM,CAAEF,IAAY,IAAK,CAACX,KAAK,CAACnC,QAAQ,CAAC8C,IAAI,CAAC,CAAC,CAC7D;MACH;IACF;EACF,CAAC,MAAM;IACL1E,GAAG,CAAC+D,KAAK,GAAGA,KAAK;EACnB;EAEA/D,GAAG,CAACxB,IAAI,CAAC,GAAG;IACVgC,MAAM;IACNqB,MAAM;IACNC,OAAO,EAAEA,OAAO,CAAC+C,GAAG,CAAErH,CAAS,IAAK;MAClC,IAAIA,CAAC,KAAKwE,MAAM,IAAID,IAAI,EAAE;QACxB,OAAO,CAACvE,CAAC,EAAE;UAAEsH,QAAQ,EAAE;QAAK,CAAC,CAAC;MAChC;MAEA,IAAItH,CAAC,KAAK,UAAU,IAAIA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,YAAY,EAAE;QAC5D,OAAO,CAACA,CAAC,EAAE;UAAE0E;QAAI,CAAC,CAAC;MACrB;MAEA,OAAO1E,CAAC;IACV,CAAC;EACH,CAAC;EAED,IAAIwC,GAAG,CAAC+E,IAAI,EAAE;IACZ,MAAMd,KAAK,GAAG,aAAapC,MAAM,GAAG;IAEpC,IAAI7B,GAAG,CAAC+E,IAAI,CAACC,wBAAwB,EAAE;MACrC,MAAM;QAAEA;MAAyB,CAAC,GAAGhF,GAAG,CAAC+E,IAAI;MAE7C,IAAI,CAACC,wBAAwB,CAACpD,QAAQ,CAACqC,KAAK,CAAC,EAAE;QAC7Ce,wBAAwB,CAACtD,IAAI,CAACuC,KAAK,CAAC;MACtC;IACF,CAAC,MAAM;MACLjE,GAAG,CAAC+E,IAAI,CAACC,wBAAwB,GAAG,CAACf,KAAK,CAAC;IAC7C;EACF;EAEAjE,GAAG,CAACiF,YAAY,GAAGjF,GAAG,CAACiF,YAAY,IAAI,CAAC,eAAe,CAAC;EAExD,IAAI,CAACjF,GAAG,CAACiF,YAAY,CAACrD,QAAQ,CAAC,GAAGC,MAAM,GAAG,CAAC,EAAE;IAC5C7B,GAAG,CAACiF,YAAY,CAACvD,IAAI,CAAC,GAAGG,MAAM,GAAG,CAAC;EACrC;EAEA,MAAM/B,gBAAE,CAAC0C,SAAS,CAAC7C,GAAG,EAAEK,GAAG,EAAE;IAC3B6D,MAAM,EAAE;EACV,CAAC,CAAC;EAEF,MAAMqB,WAAW,GAAG,CAClBtF,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE,YAAY,CAAC,EAC7BkB,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE,eAAe,CAAC,CACjC;EAED,KAAK,MAAMyG,UAAU,IAAID,WAAW,EAAE;IACpC,IAAI,MAAMpF,gBAAE,CAACC,UAAU,CAACoF,UAAU,CAAC,EAAE;MACnC,MAAMC,OAAO,GAAG,MAAMtF,gBAAE,CAACK,QAAQ,CAACgF,UAAU,EAAE,OAAO,CAAC;MAEtD,IAAI,CAACC,OAAO,CAACC,KAAK,CAAC,IAAI,CAAC,CAACzD,QAAQ,CAAC,GAAGC,MAAM,GAAG,CAAC,EAAE;QAC/C,MAAM/B,gBAAE,CAACwF,SAAS,CAChBH,UAAU,EACV,GAAGC,OAAO,yBAAyBvD,MAAM,KAC3C,CAAC;MACH;IACF;EACF;EAEA,MAAM0D,cAAc,GAAG,CAAC,MAAMzF,gBAAE,CAACC,UAAU,CAACH,aAAI,CAACC,IAAI,CAACnB,IAAI,EAAE,WAAW,CAAC,CAAC,IACrE,MAAM,GACN,KAAK;EAET8G,OAAO,CAACC,GAAG,CACT,IAAAC,eAAM,EAAC;AACb,gBAAgBC,cAAK,CAACC,MAAM,CAAC5F,GAAG,CAACxB,IAAI,CAAC;AACtC;AACA,QAAQmH,cAAK,CAACE,OAAO,CACb,GAAGF,cAAK,CAACG,IAAI,CAAC,oBAAoB,CAAC,aACrC,CAAC,GAAGH,cAAK,CAACI,IAAI,CAAC,GAAG,CAAC;AACzB;AACA,UAAUJ,cAAK,CAACI,IAAI,CAAC,GAAG,CAAC,IAAIR,cAAc;AAC3C;AACA,QAAQI,cAAK,CAACC,MAAM,CAAC,YAAY,CAAC;AAClC,KAAK,CACD,CAAC;AACH,CAAC,CAAC,CACDzG,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,MAAO6G,IAAI,IAAK;EAClE,MAAM5F,MAAM,GAAG,MAAMvB,QAAQ,CAACwB,MAAM,CAAC,CAAC;EAEtC,IAAI,CAACD,MAAM,EAAEE,MAAM,EAAE;IACnBvD,MAAM,CAAC2C,IAAI,CACT,gCAAgCsG,IAAI,CAACC,EAAE,qCACzC,CAAC;EACH;EAEA,MAAMC,OAAgB,GAAG9F,MAAM,CAAEE,MAAM;EAEvC,IAAI,CAAC4F,OAAO,CAACpE,OAAO,EAAEN,MAAM,EAAE;IAC5BzE,MAAM,CAAC2C,IAAI,CACT,6CAA6CE,aAAI,CAACuG,QAAQ,CACxDzH,IAAI,EACJ0B,MAAM,CAAEgG,QACV,CAAC,IACH,CAAC;EACH;EAEA,MAAM5F,MAAM,GAAG0F,OAAO,CAAC1F,MAAM;EAE7B,IAAI,CAACA,MAAM,EAAE;IACXzD,MAAM,CAAC2C,IAAI,CACT,mDAAmDE,aAAI,CAACuG,QAAQ,CAC9DzH,IAAI,EACJ0B,MAAM,CAAEgG,QACV,CAAC,IACH,CAAC;EACH;EAEA,MAAMvE,MAAM,GAAGqE,OAAO,CAACrE,MAAM;EAE7B,IAAI,CAACA,MAAM,EAAE;IACX9E,MAAM,CAAC2C,IAAI,CACT,mDAAmDE,aAAI,CAACuG,QAAQ,CAC9DzH,IAAI,EACJ0B,MAAM,CAAEgG,QACV,CAAC,IACH,CAAC;EACH;EAEA,MAAMC,OAAO,GACXH,OAAO,CAACG,OAAO,IAAI,0CAA0C;EAE/D,MAAMC,MAAM,GAAG;IACbC,IAAI,EAAExJ,MAAM,CAACwJ,IAAI;IACjBC,IAAI,EAAEzJ,MAAM,CAACyJ,IAAI;IACjBC,KAAK,EAAE1J,MAAM,CAAC0J,KAAK;IACnBC,OAAO,EAAE3J,MAAM,CAAC2J;EAClB,CAAC;EAED,KAAK,MAAM1E,MAAM,IAAIkE,OAAO,CAACpE,OAAO,EAAG;IACrC,MAAM6E,UAAU,GAAGC,KAAK,CAACC,OAAO,CAAC7E,MAAM,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM;IAC7D,MAAM8E,aAAa,GAAGF,KAAK,CAACC,OAAO,CAAC7E,MAAM,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAGC,SAAS;IAEnEqE,MAAM,CAACC,IAAI,CAAC,mBAAmBZ,cAAK,CAACoB,IAAI,CAACJ,UAAU,CAAC,EAAE,CAAC;IAExD,QAAQA,UAAU;MAChB,KAAK,UAAU;QACb,MAAM,IAAAK,iBAAa,EAAC;UAClBtI,IAAI;UACJ8B,MAAM,EAAEZ,aAAI,CAACqH,OAAO,CAACvI,IAAI,EAAE8B,MAAgB,CAAC;UAC5CqB,MAAM,EAAEjC,aAAI,CAACqH,OAAO,CAACvI,IAAI,EAAEmD,MAAM,EAAY,UAAU,CAAC;UACxDwE,OAAO;UACPH,OAAO,EAAEY,aAAa;UACtBR;QACF,CAAC,CAAC;QACF;MACF,KAAK,QAAQ;QACX,MAAM,IAAAY,eAAW,EAAC;UAChBxI,IAAI;UACJ8B,MAAM,EAAEZ,aAAI,CAACqH,OAAO,CAACvI,IAAI,EAAE8B,MAAgB,CAAC;UAC5CqB,MAAM,EAAEjC,aAAI,CAACqH,OAAO,CAACvI,IAAI,EAAEmD,MAAM,EAAY,QAAQ,CAAC;UACtDwE,OAAO;UACPH,OAAO,EAAEY,aAAa;UACtBR;QACF,CAAC,CAAC;QACF;MACF,KAAK,YAAY;QACf,MAAM,IAAAa,mBAAe,EAAC;UACpBzI,IAAI;UACJ8B,MAAM,EAAEZ,aAAI,CAACqH,OAAO,CAACvI,IAAI,EAAE8B,MAAgB,CAAC;UAC5CqB,MAAM,EAAEjC,aAAI,CAACqH,OAAO,CAACvI,IAAI,EAAEmD,MAAM,EAAY,YAAY,CAAC;UAC1DqE,OAAO,EAAEY,aAAa;UACtBR;QACF,CAAC,CAAC;QACF;MACF;QACEvJ,MAAM,CAAC2C,IAAI,CAAC,kBAAkBiG,cAAK,CAACoB,IAAI,CAACJ,UAAU,CAAC,GAAG,CAAC;IAC5D;EACF;AACF,CAAC,CAAC,CACDS,aAAa,CAAC,CAAC,CACfC,iBAAiB,CAAC,CAAC,CACnB1D,MAAM,CAAC,CAAC,CAACqC,IAAI","ignoreList":[]}
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","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 exports = {\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 (\n pkg.exports &&\n JSON.stringify(pkg.exports) !== JSON.stringify(exports)\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 = exports;\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":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = build;
7
+ var _kleur = _interopRequireDefault(require("kleur"));
8
+ var _patchCodegen = require("../utils/patchCodegen");
9
+ var _spawn = require("../utils/spawn");
10
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
+ var _path = _interopRequireDefault(require("path"));
12
+ var _del = _interopRequireDefault(require("del"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ async function build({
15
+ root,
16
+ report
17
+ }) {
18
+ const packageJsonPath = _path.default.resolve(root, 'package.json');
19
+ const packageJson = await _fsExtra.default.readJson(packageJsonPath);
20
+ const codegenIosPath = packageJson.codegenConfig?.outputDir?.ios;
21
+ if (codegenIosPath != null) {
22
+ report.info(`Cleaning up previous iOS codegen native code at ${_kleur.default.blue(_path.default.relative(root, codegenIosPath))}`);
23
+ await (0, _del.default)([codegenIosPath]);
24
+ }
25
+ const codegenAndroidPath = packageJson.codegenConfig?.outputDir?.android;
26
+ if (codegenAndroidPath != null) {
27
+ report.info(`Cleaning up previous Android codegen native code at ${_kleur.default.blue(_path.default.relative(root, codegenAndroidPath))}`);
28
+ await (0, _del.default)([codegenAndroidPath]);
29
+ }
30
+ try {
31
+ await (0, _spawn.spawn)('npx', ['react-native', 'codegen'], {
32
+ stdio: 'ignore'
33
+ });
34
+ (0, _patchCodegen.patchCodegen)(root, packageJson, report);
35
+ report.success('Generated native code with codegen');
36
+ } catch (e) {
37
+ if (e != null && typeof e === 'object') {
38
+ if ('stdout' in e && e.stdout != null) {
39
+ report.error(`Errors found while generating codegen files:\n${e.stdout.toString()}`);
40
+ } else if ('message' in e && typeof e.message === 'string') {
41
+ report.error(e.message);
42
+ } else {
43
+ throw e;
44
+ }
45
+ } else {
46
+ throw e;
47
+ }
48
+ throw new Error('Failed generate the codegen files.');
49
+ }
50
+ }
51
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","names":["_kleur","_interopRequireDefault","require","_patchCodegen","_spawn","_fsExtra","_path","_del","e","__esModule","default","build","root","report","packageJsonPath","path","resolve","packageJson","fs","readJson","codegenIosPath","codegenConfig","outputDir","ios","info","kleur","blue","relative","del","codegenAndroidPath","android","spawn","stdio","patchCodegen","success","stdout","error","toString","message","Error"],"sources":["../../src/targets/codegen.ts"],"sourcesContent":["import kleur from 'kleur';\nimport type { Input } from '../types';\nimport { patchCodegen } from '../utils/patchCodegen';\nimport { spawn } from '../utils/spawn';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport del from 'del';\n\ntype Options = Input;\n\nexport default async function build({ root, report }: Options) {\n const packageJsonPath = path.resolve(root, 'package.json');\n const packageJson = await fs.readJson(packageJsonPath);\n\n const codegenIosPath = packageJson.codegenConfig?.outputDir?.ios;\n if (codegenIosPath != null) {\n report.info(\n `Cleaning up previous iOS codegen native code at ${kleur.blue(\n path.relative(root, codegenIosPath)\n )}`\n );\n await del([codegenIosPath]);\n }\n\n const codegenAndroidPath = packageJson.codegenConfig?.outputDir?.android;\n if (codegenAndroidPath != null) {\n report.info(\n `Cleaning up previous Android codegen native code at ${kleur.blue(\n path.relative(root, codegenAndroidPath)\n )}`\n );\n await del([codegenAndroidPath]);\n }\n\n try {\n await spawn('npx', ['react-native', 'codegen'], {\n stdio: 'ignore',\n });\n\n patchCodegen(root, packageJson, report);\n\n report.success('Generated native code with codegen');\n } catch (e: unknown) {\n if (e != null && typeof e === 'object') {\n if ('stdout' in e && e.stdout != null) {\n report.error(\n `Errors found while generating codegen files:\\n${e.stdout.toString()}`\n );\n } else if ('message' in e && typeof e.message === 'string') {\n report.error(e.message);\n } else {\n throw e;\n }\n } else {\n throw e;\n }\n\n throw new Error('Failed generate the codegen files.');\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,IAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAsB,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIP,eAAeG,KAAKA,CAAC;EAAEC,IAAI;EAAEC;AAAgB,CAAC,EAAE;EAC7D,MAAMC,eAAe,GAAGC,aAAI,CAACC,OAAO,CAACJ,IAAI,EAAE,cAAc,CAAC;EAC1D,MAAMK,WAAW,GAAG,MAAMC,gBAAE,CAACC,QAAQ,CAACL,eAAe,CAAC;EAEtD,MAAMM,cAAc,GAAGH,WAAW,CAACI,aAAa,EAAEC,SAAS,EAAEC,GAAG;EAChE,IAAIH,cAAc,IAAI,IAAI,EAAE;IAC1BP,MAAM,CAACW,IAAI,CACT,mDAAmDC,cAAK,CAACC,IAAI,CAC3DX,aAAI,CAACY,QAAQ,CAACf,IAAI,EAAEQ,cAAc,CACpC,CAAC,EACH,CAAC;IACD,MAAM,IAAAQ,YAAG,EAAC,CAACR,cAAc,CAAC,CAAC;EAC7B;EAEA,MAAMS,kBAAkB,GAAGZ,WAAW,CAACI,aAAa,EAAEC,SAAS,EAAEQ,OAAO;EACxE,IAAID,kBAAkB,IAAI,IAAI,EAAE;IAC9BhB,MAAM,CAACW,IAAI,CACT,uDAAuDC,cAAK,CAACC,IAAI,CAC/DX,aAAI,CAACY,QAAQ,CAACf,IAAI,EAAEiB,kBAAkB,CACxC,CAAC,EACH,CAAC;IACD,MAAM,IAAAD,YAAG,EAAC,CAACC,kBAAkB,CAAC,CAAC;EACjC;EAEA,IAAI;IACF,MAAM,IAAAE,YAAK,EAAC,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;MAC9CC,KAAK,EAAE;IACT,CAAC,CAAC;IAEF,IAAAC,0BAAY,EAACrB,IAAI,EAAEK,WAAW,EAAEJ,MAAM,CAAC;IAEvCA,MAAM,CAACqB,OAAO,CAAC,oCAAoC,CAAC;EACtD,CAAC,CAAC,OAAO1B,CAAU,EAAE;IACnB,IAAIA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;MACtC,IAAI,QAAQ,IAAIA,CAAC,IAAIA,CAAC,CAAC2B,MAAM,IAAI,IAAI,EAAE;QACrCtB,MAAM,CAACuB,KAAK,CACV,iDAAiD5B,CAAC,CAAC2B,MAAM,CAACE,QAAQ,CAAC,CAAC,EACtE,CAAC;MACH,CAAC,MAAM,IAAI,SAAS,IAAI7B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,OAAO,KAAK,QAAQ,EAAE;QAC1DzB,MAAM,CAACuB,KAAK,CAAC5B,CAAC,CAAC8B,OAAO,CAAC;MACzB,CAAC,MAAM;QACL,MAAM9B,CAAC;MACT;IACF,CAAC,MAAM;MACL,MAAMA,CAAC;IACT;IAEA,MAAM,IAAI+B,KAAK,CAAC,oCAAoC,CAAC;EACvD;AACF","ignoreList":[]}
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';\n\nexport type Options = {\n source?: string;\n output?: string;\n targets?: (Target | [Target, object])[];\n exclude?: string;\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 = '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"],"mappings":"","ignoreList":[]}
@@ -41,7 +41,9 @@ async function compile({
41
41
  }
42
42
  await _fsExtra.default.mkdirp(output);
43
43
  await _fsExtra.default.writeJSON(_path.default.join(output, 'package.json'), {
44
- type: modules === 'commonjs' ? 'commonjs' : 'module'
44
+ // Treat code with ESM syntax as CommonJS if `esm` is not enabled
45
+ // This maintain compatibility with code written for CommonJS
46
+ type: modules === 'commonjs' || !esm ? 'commonjs' : 'module'
45
47
  });
46
48
  await Promise.all(files.map(async filepath => {
47
49
  const outputFilename = _path.default.join(output, _path.default.relative(source, filepath)).replace(sourceExt, '.$1js');
@@ -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 await fs.writeJSON(path.join(output, 'package.json'), {\n type: modules === 'commonjs' ? 'commonjs' : 'module',\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","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 await fs.writeJSON(path.join(output, 'package.json'), {\n // Treat code with ESM syntax as CommonJS if `esm` is not enabled\n // This maintain compatibility with code written for CommonJS\n type: modules === 'commonjs' || !esm ? 'commonjs' : 'module',\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":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.patchCodegen = patchCodegen;
7
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
8
+ var _path = _interopRequireDefault(require("path"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const CODEGEN_DOCS = 'https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-libraries-prerequisites.md#configure-codegen';
11
+
12
+ /**
13
+ * Currently, running react-native codegen generates java files with package name `com.facebook.fbreact.specs`.
14
+ * This is a known issue in react-native itself.
15
+ * You can find the relevant line here: https://github.com/facebook/react-native/blob/dc460147bb00d6f912cc0a829f8040d85faeeb13/packages/react-native/scripts/codegen/generate-artifacts-executor.js#L459.
16
+ * To workaround, this function renames the package name to the one provided in the codegenConfig.
17
+ * @throws if codegenConfig.outputDir.android or codegenConfig.android.javaPackageName is not defined in package.json
18
+ * @throws if the codegenAndroidPath does not exist
19
+ */
20
+ async function patchCodegen(projectPath,
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ packageJson, report) {
23
+ let codegenAndroidPath = packageJson.codegenConfig.outputDir.android;
24
+ if (!codegenAndroidPath) {
25
+ throw new Error(`Your package.json doesn't contain codegenConfig.outputDir.android. Please see ${CODEGEN_DOCS}`);
26
+ }
27
+ codegenAndroidPath = _path.default.resolve(projectPath, codegenAndroidPath);
28
+ if (!(await _fsExtra.default.pathExists(codegenAndroidPath))) {
29
+ throw new Error(`The codegen android path defined in your package.json: ${codegenAndroidPath} doesnt' exist.`);
30
+ }
31
+ const codegenJavaPackageName = packageJson.codegenConfig.android.javaPackageName;
32
+ if (!codegenJavaPackageName) {
33
+ throw new Error(`Your package.json doesn't contain codegenConfig.android.javaPackageName. Please see ${CODEGEN_DOCS}`);
34
+ }
35
+ const codegenJavaPath = _path.default.resolve(codegenAndroidPath, `java/com/facebook/fbreact/specs`);
36
+
37
+ // If this issue is ever fixed in react-native, this check will prevent the patching from running.
38
+ if (!(await _fsExtra.default.pathExists(codegenJavaPath))) {
39
+ report.info(`Could not find ${codegenJavaPath}. Skipping patching codegen java files.`);
40
+ return;
41
+ }
42
+ const javaFiles = await _fsExtra.default.readdir(codegenJavaPath);
43
+ await Promise.all(javaFiles.map(async file => {
44
+ const filePath = _path.default.resolve(codegenJavaPath, file);
45
+ const fileContent = await _fsExtra.default.readFile(filePath, 'utf8');
46
+ const newFileContent = fileContent.replace('package com.facebook.fbreact.specs', `package ${codegenJavaPackageName}`);
47
+ await _fsExtra.default.writeFile(filePath, newFileContent);
48
+ }));
49
+ const newPackagePath = _path.default.resolve(codegenAndroidPath, `java/${codegenJavaPackageName.replace(/\./g, '/')}`);
50
+ if (!(await _fsExtra.default.pathExists(newPackagePath))) {
51
+ await _fsExtra.default.mkdir(newPackagePath, {
52
+ recursive: true
53
+ });
54
+ }
55
+ await Promise.all(javaFiles.map(async file => {
56
+ const filePath = _path.default.resolve(codegenJavaPath, file);
57
+ const newFilePath = _path.default.resolve(newPackagePath, file);
58
+ await _fsExtra.default.rename(filePath, newFilePath);
59
+ }));
60
+ await _fsExtra.default.rm(_path.default.resolve(codegenAndroidPath, 'java/com/facebook'), {
61
+ recursive: true
62
+ });
63
+ }
64
+ //# sourceMappingURL=patchCodegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchCodegen.js","names":["_fsExtra","_interopRequireDefault","require","_path","e","__esModule","default","CODEGEN_DOCS","patchCodegen","projectPath","packageJson","report","codegenAndroidPath","codegenConfig","outputDir","android","Error","path","resolve","fs","pathExists","codegenJavaPackageName","javaPackageName","codegenJavaPath","info","javaFiles","readdir","Promise","all","map","file","filePath","fileContent","readFile","newFileContent","replace","writeFile","newPackagePath","mkdir","recursive","newFilePath","rename","rm"],"sources":["../../src/utils/patchCodegen.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport type { Report } from '../types';\n\nconst CODEGEN_DOCS =\n 'https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-libraries-prerequisites.md#configure-codegen';\n\n/**\n * Currently, running react-native codegen generates java files with package name `com.facebook.fbreact.specs`.\n * This is a known issue in react-native itself.\n * You can find the relevant line here: https://github.com/facebook/react-native/blob/dc460147bb00d6f912cc0a829f8040d85faeeb13/packages/react-native/scripts/codegen/generate-artifacts-executor.js#L459.\n * To workaround, this function renames the package name to the one provided in the codegenConfig.\n * @throws if codegenConfig.outputDir.android or codegenConfig.android.javaPackageName is not defined in package.json\n * @throws if the codegenAndroidPath does not exist\n */\nexport async function patchCodegen(\n projectPath: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n packageJson: any,\n report: Report\n) {\n let codegenAndroidPath: string | undefined =\n packageJson.codegenConfig.outputDir.android;\n if (!codegenAndroidPath) {\n throw new Error(\n `Your package.json doesn't contain codegenConfig.outputDir.android. Please see ${CODEGEN_DOCS}`\n );\n }\n codegenAndroidPath = path.resolve(projectPath, codegenAndroidPath);\n\n if (!(await fs.pathExists(codegenAndroidPath))) {\n throw new Error(\n `The codegen android path defined in your package.json: ${codegenAndroidPath} doesnt' exist.`\n );\n }\n\n const codegenJavaPackageName: string | undefined =\n packageJson.codegenConfig.android.javaPackageName;\n if (!codegenJavaPackageName) {\n throw new Error(\n `Your package.json doesn't contain codegenConfig.android.javaPackageName. Please see ${CODEGEN_DOCS}`\n );\n }\n\n const codegenJavaPath = path.resolve(\n codegenAndroidPath,\n `java/com/facebook/fbreact/specs`\n );\n\n // If this issue is ever fixed in react-native, this check will prevent the patching from running.\n if (!(await fs.pathExists(codegenJavaPath))) {\n report.info(\n `Could not find ${codegenJavaPath}. Skipping patching codegen java files.`\n );\n return;\n }\n\n const javaFiles = await fs.readdir(codegenJavaPath);\n\n await Promise.all(\n javaFiles.map(async (file) => {\n const filePath = path.resolve(codegenJavaPath, file);\n const fileContent = await fs.readFile(filePath, 'utf8');\n\n const newFileContent = fileContent.replace(\n 'package com.facebook.fbreact.specs',\n `package ${codegenJavaPackageName}`\n );\n\n await fs.writeFile(filePath, newFileContent);\n })\n );\n\n const newPackagePath = path.resolve(\n codegenAndroidPath,\n `java/${codegenJavaPackageName.replace(/\\./g, '/')}`\n );\n\n if (!(await fs.pathExists(newPackagePath))) {\n await fs.mkdir(newPackagePath, { recursive: true });\n }\n\n await Promise.all(\n javaFiles.map(async (file) => {\n const filePath = path.resolve(codegenJavaPath, file);\n const newFilePath = path.resolve(newPackagePath, file);\n\n await fs.rename(filePath, newFilePath);\n })\n );\n\n await fs.rm(path.resolve(codegenAndroidPath, 'java/com/facebook'), {\n recursive: true,\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.spawn = void 0;
7
+ var _crossSpawn = _interopRequireDefault(require("cross-spawn"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const spawn = async (...args) => {
10
+ return new Promise((resolve, reject) => {
11
+ const child = (0, _crossSpawn.default)(...args);
12
+ let stdout = '';
13
+ let stderr = '';
14
+ child.stdout?.setEncoding('utf8');
15
+ child.stdout?.on('data', data => {
16
+ stdout += data;
17
+ });
18
+ child.stderr?.setEncoding('utf8');
19
+ child.stderr?.on('data', data => {
20
+ stderr += data;
21
+ });
22
+ child.once('error', reject);
23
+ child.once('close', code => {
24
+ if (code === 0) {
25
+ resolve(stdout.trim());
26
+ } else {
27
+ reject(new Error(stderr.trim()));
28
+ }
29
+ });
30
+ });
31
+ };
32
+ exports.spawn = spawn;
33
+ //# sourceMappingURL=spawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.js","names":["_crossSpawn","_interopRequireDefault","require","e","__esModule","default","spawn","args","Promise","resolve","reject","child","crossSpawn","stdout","stderr","setEncoding","on","data","once","code","trim","Error","exports"],"sources":["../../src/utils/spawn.ts"],"sourcesContent":["import crossSpawn from 'cross-spawn';\n\nexport const spawn = async (...args: Parameters<typeof crossSpawn>) => {\n return new Promise<string>((resolve, reject) => {\n const child = crossSpawn(...args);\n\n let stdout = '';\n let stderr = '';\n\n child.stdout?.setEncoding('utf8');\n child.stdout?.on('data', (data) => {\n stdout += data;\n });\n\n child.stderr?.setEncoding('utf8');\n child.stderr?.on('data', (data) => {\n stderr += data;\n });\n\n child.once('error', reject);\n child.once('close', (code) => {\n if (code === 0) {\n resolve(stdout.trim());\n } else {\n reject(new Error(stderr.trim()));\n }\n });\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,KAAK,GAAG,MAAAA,CAAO,GAAGC,IAAmC,KAAK;EACrE,OAAO,IAAIC,OAAO,CAAS,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC9C,MAAMC,KAAK,GAAG,IAAAC,mBAAU,EAAC,GAAGL,IAAI,CAAC;IAEjC,IAAIM,MAAM,GAAG,EAAE;IACf,IAAIC,MAAM,GAAG,EAAE;IAEfH,KAAK,CAACE,MAAM,EAAEE,WAAW,CAAC,MAAM,CAAC;IACjCJ,KAAK,CAACE,MAAM,EAAEG,EAAE,CAAC,MAAM,EAAGC,IAAI,IAAK;MACjCJ,MAAM,IAAII,IAAI;IAChB,CAAC,CAAC;IAEFN,KAAK,CAACG,MAAM,EAAEC,WAAW,CAAC,MAAM,CAAC;IACjCJ,KAAK,CAACG,MAAM,EAAEE,EAAE,CAAC,MAAM,EAAGC,IAAI,IAAK;MACjCH,MAAM,IAAIG,IAAI;IAChB,CAAC,CAAC;IAEFN,KAAK,CAACO,IAAI,CAAC,OAAO,EAAER,MAAM,CAAC;IAC3BC,KAAK,CAACO,IAAI,CAAC,OAAO,EAAGC,IAAI,IAAK;MAC5B,IAAIA,IAAI,KAAK,CAAC,EAAE;QACdV,OAAO,CAACI,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;MACxB,CAAC,MAAM;QACLV,MAAM,CAAC,IAAIW,KAAK,CAACP,MAAM,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;MAClC;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAACE,OAAA,CAAAhB,KAAA,GAAAA,KAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-builder-bob",
3
- "version": "0.29.1",
3
+ "version": "0.30.1",
4
4
  "description": "CLI to build JavaScript files for React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -79,11 +79,13 @@
79
79
  "@types/fs-extra": "^9.0.13",
80
80
  "@types/glob": "^7.2.0",
81
81
  "@types/json5": "^2.2.0",
82
+ "@types/mock-fs": "^4.13.4",
82
83
  "@types/prompts": "^2.0.14",
83
84
  "@types/which": "^2.0.1",
84
85
  "@types/yargs": "^17.0.10",
85
86
  "concurrently": "^7.2.2",
86
- "jest": "^29.7.0"
87
+ "jest": "^29.7.0",
88
+ "mock-fs": "^5.2.0"
87
89
  },
88
- "gitHead": "8edf59069dc59358b6a2e7968f1dd243ae1d58a7"
90
+ "gitHead": "9e9e1fb6b22f58e8ca5b430c7fd1725774b05f34"
89
91
  }