react-native-builder-bob 0.20.0 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -2,10 +2,6 @@
2
2
 
3
3
  var _path = _interopRequireDefault(require("path"));
4
4
 
5
- var _os = _interopRequireDefault(require("os"));
6
-
7
- var _crossSpawn = _interopRequireDefault(require("cross-spawn"));
8
-
9
5
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
10
6
 
11
7
  var _kleur = _interopRequireDefault(require("kleur"));
@@ -393,43 +389,5 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
393
389
  logger.exit(`Invalid target ${_kleur.default.blue(targetName)}.`);
394
390
  }
395
391
  }
396
- }).command('run [script...]', 'run a package.json script', {
397
- cwd: {
398
- type: 'string',
399
- describe: 'specify the working directory'
400
- },
401
- script: {
402
- type: 'array'
403
- }
404
- }, async argv => {
405
- var _execpath$split$pop, _argv$script;
406
-
407
- const execpath = process.env.npm_execpath;
408
- const cli = execpath !== null && execpath !== void 0 && (_execpath$split$pop = execpath.split('/').pop()) !== null && _execpath$split$pop !== void 0 && _execpath$split$pop.includes('yarn') ? 'yarn' : 'npm';
409
- const args = ((_argv$script = argv.script) === null || _argv$script === void 0 ? void 0 : _argv$script.map(s => String(s))) ?? [];
410
- const cwd = argv.cwd ? _path.default.resolve(process.cwd(), argv.cwd) : process.cwd();
411
- const scripts = Object.keys(JSON.parse(_fsExtra.default.readFileSync(_path.default.join(cwd, 'package.json'), 'utf-8')).scripts || {});
412
-
413
- if (args[0] && scripts.includes(args[0])) {
414
- // If the script exists in package.json, then prefix with `run`
415
- // e.g. `yarn run build`
416
- args.unshift('run');
417
- }
418
-
419
- const options = {
420
- cwd,
421
- env: process.env,
422
- stdio: 'inherit',
423
- encoding: 'utf-8',
424
- shell: _os.default.type() === 'Windows_NT'
425
- };
426
-
427
- const dir = _path.default.relative(process.cwd(), cwd);
428
-
429
- logger.info(`Running ${_kleur.default.cyan(`${cli} ${args.join(' ')}`.trim())}${dir ? ` at ${_kleur.default.blue(dir)}` : ''}`);
430
-
431
- const result = _crossSpawn.default.sync(cli, args, options);
432
-
433
- process.exitCode = result.status ?? undefined;
434
392
  }).demandCommand().recommendCommands().strict().argv;
435
393
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["name","version","require","root","process","cwd","explorer","cosmiconfigSync","searchPlaces","FLOW_PRGAMA_REGEX","yargs","command","pak","path","join","isGitDirty","shouldContinue","prompts","type","message","initial","exit","fs","pathExists","logger","source","validate","input","Boolean","entryFile","pkg","JSON","parse","readFile","devDependencies","Object","fromEntries","entries","sort","a","b","localeCompare","questions","choices","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","target","undefined","module","types","tsconfig","writeFile","stringify","compilerOptions","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","prepare","files","key","entry","replace","scripts","slice","update","filter","file","map","t","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","console","log","dedent","kleur","yellow","magenta","bold","gray","argv","result","search","config","$0","options","relative","filepath","report","info","warn","error","success","targetName","Array","isArray","targetOptions","blue","buildAAR","resolve","buildCommonJS","buildModule","buildTypescript","describe","script","execpath","env","npm_execpath","cli","pop","args","s","String","readFileSync","unshift","stdio","encoding","shell","os","dir","cyan","trim","spawn","sync","exitCode","status","demandCommand","recommendCommands"],"sources":["../src/index.ts"],"sourcesContent":["import path from 'path';\nimport os from 'os';\nimport spawn from 'cross-spawn';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport dedent from 'dedent';\nimport yargs from 'yargs';\nimport { cosmiconfigSync } from 'cosmiconfig';\nimport isGitDirty from 'is-git-dirty';\nimport prompts, { PromptObject } from './utils/prompts';\nimport * as logger from './utils/logger';\nimport buildAAR from './targets/aar';\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\nconst { name, version } = require('../package.json');\n\nconst root = process.cwd();\nconst explorer = cosmiconfigSync(name, {\n searchPlaces: ['package.json', `bob.config.js`],\n});\n\nconst FLOW_PRGAMA_REGEX = /\\*?\\s*@(flow)\\b/m;\n\n// eslint-disable-next-line babel/no-unused-expressions\nyargs\n .command('init', 'configure the package to use bob', {}, async () => {\n const pak = path.join(root, 'package.json');\n\n if (isGitDirty()) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The working directory is not clean. You should commit or stash your changes before configuring bob. Continue anyway?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(1);\n }\n }\n\n if (!(await fs.pathExists(pak))) {\n logger.exit(\n `Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`\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}'. Please re-run the CLI after creating it.`\n );\n return;\n }\n\n const pkg = JSON.parse(await fs.readFile(pak, 'utf-8'));\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 title: 'aar - bundle android code to a binary',\n value: 'aar',\n selected: false,\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: { [key: string]: string } = {\n 'main': target\n ? path.join(output, target, 'index.js')\n : path.join(source, entryFile),\n 'react-native': path.join(source, entryFile),\n };\n\n if (targets.includes('module')) {\n entries.module = path.join(output, 'module', 'index.js');\n }\n\n if (targets.includes('typescript')) {\n entries.types = path.join(output, 'typescript', source, 'index.d.ts');\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. Generate one?`,\n initial: true,\n });\n\n if (tsconfig) {\n await fs.writeFile(\n path.join(root, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n allowUnreachableCode: false,\n allowUnusedLabels: false,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react',\n lib: ['esnext'],\n module: 'esnext',\n moduleResolution: 'node',\n noFallthroughCasesInSwitch: true,\n noImplicitReturns: true,\n noImplicitUseStrict: false,\n noStrictGenericChecks: false,\n noUnusedLocals: true,\n noUnusedParameters: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n strict: true,\n target: 'esnext',\n },\n },\n null,\n 2\n )\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];\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]}'. 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 (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}'. 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 (\n pkg.files &&\n JSON.stringify(pkg.files.slice().sort()) !==\n JSON.stringify(files.slice().sort())\n ) {\n const { update } = await prompts({\n type: 'confirm',\n name: 'update',\n message: `Your package.json already has a 'files' field. Do you want to update it?`,\n initial: true,\n });\n\n if (update) {\n pkg.files = [\n ...files,\n ...pkg.files.filter(\n (file: string) => !files.includes(file.replace(/\\/$/g, ''))\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, { flow }];\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.writeFile(pak, JSON.stringify(pkg, null, 2));\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 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(':')} yarn\n\n ${kleur.yellow('Good luck!')}\n `)\n );\n })\n .command('build', 'build files for publishing', {}, async (argv) => {\n const result = 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 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 'aar':\n await buildAAR({\n root,\n source: path.resolve(root, source as string),\n output: path.resolve(root, output as string, 'aar'),\n options: targetOptions,\n report,\n });\n break;\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 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 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 .command(\n 'run [script...]',\n 'run a package.json script',\n {\n cwd: {\n type: 'string',\n describe: 'specify the working directory',\n },\n script: {\n type: 'array',\n },\n },\n async (argv) => {\n const execpath = process.env.npm_execpath;\n const cli = execpath?.split('/').pop()?.includes('yarn') ? 'yarn' : 'npm';\n const args = argv.script?.map((s) => String(s)) ?? [];\n const cwd = argv.cwd\n ? path.resolve(process.cwd(), argv.cwd)\n : process.cwd();\n\n const scripts = Object.keys(\n JSON.parse(fs.readFileSync(path.join(cwd, 'package.json'), 'utf-8'))\n .scripts || {}\n );\n\n if (args[0] && scripts.includes(args[0])) {\n // If the script exists in package.json, then prefix with `run`\n // e.g. `yarn run build`\n args.unshift('run');\n }\n\n const options = {\n cwd,\n env: process.env,\n stdio: 'inherit',\n encoding: 'utf-8',\n shell: os.type() === 'Windows_NT',\n } as const;\n\n const dir = path.relative(process.cwd(), cwd);\n\n logger.info(\n `Running ${kleur.cyan(`${cli} ${args.join(' ')}`.trim())}${\n dir ? ` at ${kleur.blue(dir)}` : ''\n }`\n );\n\n const result = spawn.sync(cli, args, options);\n\n process.exitCode = result.status ?? undefined;\n }\n )\n .demandCommand()\n .recommendCommands()\n .strict().argv;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["name","version","require","root","process","cwd","explorer","cosmiconfigSync","searchPlaces","FLOW_PRGAMA_REGEX","yargs","command","pak","path","join","isGitDirty","shouldContinue","prompts","type","message","initial","exit","fs","pathExists","logger","source","validate","input","Boolean","entryFile","pkg","JSON","parse","readFile","devDependencies","Object","fromEntries","entries","sort","a","b","localeCompare","questions","choices","title","value","selected","test","length","endsWith","push","keys","includes","output","targets","flow","target","undefined","module","types","tsconfig","writeFile","stringify","compilerOptions","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","prepare","files","key","entry","replace","scripts","slice","update","filter","file","map","t","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","console","log","dedent","kleur","yellow","magenta","bold","gray","argv","result","search","config","$0","options","relative","filepath","report","info","warn","error","success","targetName","Array","isArray","targetOptions","blue","buildAAR","resolve","buildCommonJS","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 { cosmiconfigSync } from 'cosmiconfig';\nimport isGitDirty from 'is-git-dirty';\nimport prompts, { PromptObject } from './utils/prompts';\nimport * as logger from './utils/logger';\nimport buildAAR from './targets/aar';\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\nconst { name, version } = require('../package.json');\n\nconst root = process.cwd();\nconst explorer = cosmiconfigSync(name, {\n searchPlaces: ['package.json', `bob.config.js`],\n});\n\nconst FLOW_PRGAMA_REGEX = /\\*?\\s*@(flow)\\b/m;\n\n// eslint-disable-next-line babel/no-unused-expressions\nyargs\n .command('init', 'configure the package to use bob', {}, async () => {\n const pak = path.join(root, 'package.json');\n\n if (isGitDirty()) {\n const { shouldContinue } = await prompts({\n type: 'confirm',\n name: 'shouldContinue',\n message: `The working directory is not clean. You should commit or stash your changes before configuring bob. Continue anyway?`,\n initial: false,\n });\n\n if (!shouldContinue) {\n process.exit(1);\n }\n }\n\n if (!(await fs.pathExists(pak))) {\n logger.exit(\n `Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`\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}'. Please re-run the CLI after creating it.`\n );\n return;\n }\n\n const pkg = JSON.parse(await fs.readFile(pak, 'utf-8'));\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 title: 'aar - bundle android code to a binary',\n value: 'aar',\n selected: false,\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: { [key: string]: string } = {\n 'main': target\n ? path.join(output, target, 'index.js')\n : path.join(source, entryFile),\n 'react-native': path.join(source, entryFile),\n };\n\n if (targets.includes('module')) {\n entries.module = path.join(output, 'module', 'index.js');\n }\n\n if (targets.includes('typescript')) {\n entries.types = path.join(output, 'typescript', source, 'index.d.ts');\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. Generate one?`,\n initial: true,\n });\n\n if (tsconfig) {\n await fs.writeFile(\n path.join(root, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n allowUnreachableCode: false,\n allowUnusedLabels: false,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react',\n lib: ['esnext'],\n module: 'esnext',\n moduleResolution: 'node',\n noFallthroughCasesInSwitch: true,\n noImplicitReturns: true,\n noImplicitUseStrict: false,\n noStrictGenericChecks: false,\n noUnusedLocals: true,\n noUnusedParameters: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n strict: true,\n target: 'esnext',\n },\n },\n null,\n 2\n )\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];\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]}'. 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 (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}'. 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 (\n pkg.files &&\n JSON.stringify(pkg.files.slice().sort()) !==\n JSON.stringify(files.slice().sort())\n ) {\n const { update } = await prompts({\n type: 'confirm',\n name: 'update',\n message: `Your package.json already has a 'files' field. Do you want to update it?`,\n initial: true,\n });\n\n if (update) {\n pkg.files = [\n ...files,\n ...pkg.files.filter(\n (file: string) => !files.includes(file.replace(/\\/$/g, ''))\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, { flow }];\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.writeFile(pak, JSON.stringify(pkg, null, 2));\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 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(':')} yarn\n\n ${kleur.yellow('Good luck!')}\n `)\n );\n })\n .command('build', 'build files for publishing', {}, async (argv) => {\n const result = 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 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 'aar':\n await buildAAR({\n root,\n source: path.resolve(root, source as string),\n output: path.resolve(root, output as string, 'aar'),\n options: targetOptions,\n report,\n });\n break;\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 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 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":"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"}
@@ -71,17 +71,59 @@ async function build({
71
71
  throw new Error(`Couldn't find a ${_kleur.default.blue('tsconfig.json')} in the project root.`);
72
72
  }
73
73
 
74
- let tsc = options !== null && options !== void 0 && options.tsc ? _path.default.resolve(root, options.tsc) : _path.default.resolve(root, 'node_modules', '.bin', 'tsc') + ((0, _os.platform)() === 'win32' ? '.cmd' : '');
74
+ let tsc;
75
+
76
+ if (options !== null && options !== void 0 && options.tsc) {
77
+ tsc = _path.default.resolve(root, options.tsc);
78
+
79
+ if (!(await _fsExtra.default.pathExists(tsc))) {
80
+ throw new Error(`The ${_kleur.default.blue('tsc')} binary doesn't seem to be installed at ${_kleur.default.blue(tsc)}. Please specify the correct path in options or remove it to use the workspace's version.`);
81
+ }
82
+ } else {
83
+ var _execpath$split$pop;
84
+
85
+ const execpath = process.env.npm_execpath;
86
+ const cli = execpath !== null && execpath !== void 0 && (_execpath$split$pop = execpath.split('/').pop()) !== null && _execpath$split$pop !== void 0 && _execpath$split$pop.includes('yarn') ? 'yarn' : 'npm';
87
+
88
+ try {
89
+ if (cli === 'yarn') {
90
+ const result = _crossSpawn.default.sync('yarn', ['bin', 'tsc'], {
91
+ stdio: 'pipe',
92
+ encoding: 'utf-8',
93
+ cwd: root
94
+ });
95
+
96
+ tsc = result.stdout.trim();
97
+ } else {
98
+ const result = _crossSpawn.default.sync('npm', ['bin'], {
99
+ stdio: 'pipe',
100
+ encoding: 'utf-8',
101
+ cwd: root
102
+ });
103
+
104
+ tsc = _path.default.resolve(result.stdout.trim(), 'tsc');
105
+ }
106
+ } catch (e) {
107
+ tsc = _path.default.resolve(root, 'node_modules', '.bin', 'tsc');
108
+ }
109
+
110
+ if ((0, _os.platform)() === 'win32' && !tsc.endsWith('.cmd')) {
111
+ tsc += '.cmd';
112
+ }
113
+ }
75
114
 
76
115
  if (!(await _fsExtra.default.pathExists(tsc))) {
77
116
  try {
78
117
  tsc = await (0, _which.default)('tsc');
79
- report.warn(`Using a global version of ${_kleur.default.blue('tsc')}. Consider adding ${_kleur.default.blue('typescript')} to your ${_kleur.default.blue('devDependencies')} or specifying the ${_kleur.default.blue('tsc')} option for the typescript target.`);
118
+
119
+ if (await _fsExtra.default.pathExists(tsc)) {
120
+ report.warn(`Failed to locate 'tsc' in the workspace. Falling back to the globally installed version. Consider adding ${_kleur.default.blue('typescript')} to your ${_kleur.default.blue('devDependencies')} or specifying the ${_kleur.default.blue('tsc')} option for the typescript target.`);
121
+ }
80
122
  } catch (e) {// Ignore
81
123
  }
82
124
  }
83
125
 
84
- if (!(await _fsExtra.default.pathExists(tsc))) {
126
+ if (tsc == null || !(await _fsExtra.default.pathExists(tsc))) {
85
127
  throw new Error(`The ${_kleur.default.blue('tsc')} binary doesn't seem to be installed under ${_kleur.default.blue('node_modules')} or present in $PATH. Make sure you have added ${_kleur.default.blue('typescript')} to your ${_kleur.default.blue('devDependencies')} or specify the ${_kleur.default.blue('tsc')} option for typescript.`);
86
128
  }
87
129
 
@@ -93,7 +135,8 @@ async function build({
93
135
  }
94
136
 
95
137
  const result = _crossSpawn.default.sync(tsc, ['--pretty', '--declaration', '--declarationMap', '--emitDeclarationOnly', '--project', project, '--outDir', output], {
96
- stdio: 'inherit'
138
+ stdio: 'inherit',
139
+ cwd: root
97
140
  });
98
141
 
99
142
  if (result.status === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","names":["build","root","output","report","options","info","kleur","blue","path","relative","del","project","tsconfig","join","fs","pathExists","config","JSON5","parse","readFile","compilerOptions","conflicts","noEmit","undefined","push","emitDeclarationOnly","declarationDir","outDir","length","warn","reduce","acc","curr","gray","yellow","e","Error","tsc","resolve","platform","which","tsbuildinfo","replace","result","spawn","sync","stdio","status","success","stdout","error","toString","message"],"sources":["../../src/targets/typescript.ts"],"sourcesContent":["import kleur from 'kleur';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport which from 'which';\nimport spawn from 'cross-spawn';\nimport del from 'del';\nimport JSON5 from 'json5';\nimport { platform } from 'os';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: { project?: string; tsc?: string };\n};\n\nexport default async function build({\n root,\n output,\n report,\n options,\n}: Options) {\n report.info(\n `Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`\n );\n\n await del([output]);\n\n report.info(`Generating type definitions with ${kleur.blue('tsc')}`);\n\n const project = options?.project ? options.project : 'tsconfig.json';\n const tsconfig = path.join(root, project);\n\n try {\n if (await fs.pathExists(tsconfig)) {\n try {\n const config = JSON5.parse(await fs.readFile(tsconfig, 'utf-8'));\n\n if (config.compilerOptions) {\n const conflicts: string[] = [];\n\n if (config.compilerOptions.noEmit !== undefined) {\n conflicts.push('compilerOptions.noEmit');\n }\n\n if (config.compilerOptions.emitDeclarationOnly !== undefined) {\n conflicts.push('compilerOptions.emitDeclarationOnly');\n }\n\n if (config.compilerOptions.declarationDir) {\n conflicts.push('compilerOptions.declarationDir');\n }\n\n if (\n config.compilerOptions.outDir &&\n path.join(root, config.compilerOptions.outDir) !== output\n ) {\n conflicts.push('compilerOptions.outDir');\n }\n\n if (conflicts.length) {\n report.warn(\n `Found following options in the config file which can conflict with the CLI options. Please remove them from ${kleur.blue(\n project\n )}:${conflicts.reduce(\n (acc, curr) =>\n acc + `\\n${kleur.gray('-')} ${kleur.yellow(curr)}`,\n ''\n )}`\n );\n }\n }\n } catch (e) {\n report.warn(\n `Couldn't parse '${project}'. There might be validation errors.`\n );\n }\n } else {\n throw new Error(\n `Couldn't find a ${kleur.blue('tsconfig.json')} in the project root.`\n );\n }\n\n let tsc = options?.tsc\n ? path.resolve(root, options.tsc)\n : path.resolve(root, 'node_modules', '.bin', 'tsc') +\n (platform() === 'win32' ? '.cmd' : '');\n\n if (!(await fs.pathExists(tsc))) {\n try {\n tsc = await which('tsc');\n\n report.warn(\n `Using a global version of ${kleur.blue(\n 'tsc'\n )}. Consider adding ${kleur.blue('typescript')} to your ${kleur.blue(\n 'devDependencies'\n )} or specifying the ${kleur.blue(\n 'tsc'\n )} option for the typescript target.`\n );\n } catch (e) {\n // Ignore\n }\n }\n\n if (!(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed under ${kleur.blue(\n 'node_modules'\n )} or present in $PATH. Make sure you have added ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue('devDependencies')} or specify the ${kleur.blue(\n 'tsc'\n )} option for typescript.`\n );\n }\n\n const tsbuildinfo = path.join(\n output,\n project.replace(/\\.json$/, '.tsbuildinfo')\n );\n\n try {\n await del([tsbuildinfo]);\n } catch (e) {\n // Ignore\n }\n\n const result = spawn.sync(\n tsc,\n [\n '--pretty',\n '--declaration',\n '--declarationMap',\n '--emitDeclarationOnly',\n '--project',\n project,\n '--outDir',\n output,\n ],\n { stdio: 'inherit' }\n );\n\n if (result.status === 0) {\n await del([tsbuildinfo]);\n\n report.success(\n `Wrote definition files to ${kleur.blue(path.relative(root, output))}`\n );\n } else {\n throw new Error('Failed to build definition files.');\n }\n } catch (e: any) {\n if (e.stdout) {\n report.error(\n `Errors found when building definition files:\\n${e.stdout.toString()}`\n );\n } else {\n report.error(e.message);\n }\n\n throw new Error('Failed to build definition files.');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","names":["build","root","output","report","options","info","kleur","blue","path","relative","del","project","tsconfig","join","fs","pathExists","config","JSON5","parse","readFile","compilerOptions","conflicts","noEmit","undefined","push","emitDeclarationOnly","declarationDir","outDir","length","warn","reduce","acc","curr","gray","yellow","e","Error","tsc","resolve","execpath","process","env","npm_execpath","cli","split","pop","includes","result","spawn","sync","stdio","encoding","cwd","stdout","trim","platform","endsWith","which","tsbuildinfo","replace","status","success","error","toString","message"],"sources":["../../src/targets/typescript.ts"],"sourcesContent":["import kleur from 'kleur';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport which from 'which';\nimport spawn from 'cross-spawn';\nimport del from 'del';\nimport JSON5 from 'json5';\nimport { platform } from 'os';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: { project?: string; tsc?: string };\n};\n\nexport default async function build({\n root,\n output,\n report,\n options,\n}: Options) {\n report.info(\n `Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`\n );\n\n await del([output]);\n\n report.info(`Generating type definitions with ${kleur.blue('tsc')}`);\n\n const project = options?.project ? options.project : 'tsconfig.json';\n const tsconfig = path.join(root, project);\n\n try {\n if (await fs.pathExists(tsconfig)) {\n try {\n const config = JSON5.parse(await fs.readFile(tsconfig, 'utf-8'));\n\n if (config.compilerOptions) {\n const conflicts: string[] = [];\n\n if (config.compilerOptions.noEmit !== undefined) {\n conflicts.push('compilerOptions.noEmit');\n }\n\n if (config.compilerOptions.emitDeclarationOnly !== undefined) {\n conflicts.push('compilerOptions.emitDeclarationOnly');\n }\n\n if (config.compilerOptions.declarationDir) {\n conflicts.push('compilerOptions.declarationDir');\n }\n\n if (\n config.compilerOptions.outDir &&\n path.join(root, config.compilerOptions.outDir) !== output\n ) {\n conflicts.push('compilerOptions.outDir');\n }\n\n if (conflicts.length) {\n report.warn(\n `Found following options in the config file which can conflict with the CLI options. Please remove them from ${kleur.blue(\n project\n )}:${conflicts.reduce(\n (acc, curr) =>\n acc + `\\n${kleur.gray('-')} ${kleur.yellow(curr)}`,\n ''\n )}`\n );\n }\n }\n } catch (e) {\n report.warn(\n `Couldn't parse '${project}'. There might be validation errors.`\n );\n }\n } else {\n throw new Error(\n `Couldn't find a ${kleur.blue('tsconfig.json')} in the project root.`\n );\n }\n\n let tsc;\n\n if (options?.tsc) {\n tsc = path.resolve(root, options.tsc);\n\n if (!(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed at ${kleur.blue(\n tsc\n )}. Please specify the correct path in options or remove it to use the workspace's version.`\n );\n }\n } else {\n const execpath = process.env.npm_execpath;\n const cli = execpath?.split('/').pop()?.includes('yarn') ? 'yarn' : 'npm';\n\n try {\n if (cli === 'yarn') {\n const result = spawn.sync('yarn', ['bin', 'tsc'], {\n stdio: 'pipe',\n encoding: 'utf-8',\n cwd: root,\n });\n\n tsc = result.stdout.trim();\n } else {\n const result = spawn.sync('npm', ['bin'], {\n stdio: 'pipe',\n encoding: 'utf-8',\n cwd: root,\n });\n\n tsc = path.resolve(result.stdout.trim(), 'tsc');\n }\n } catch (e) {\n tsc = path.resolve(root, 'node_modules', '.bin', 'tsc');\n }\n\n if (platform() === 'win32' && !tsc.endsWith('.cmd')) {\n tsc += '.cmd';\n }\n }\n\n if (!(await fs.pathExists(tsc))) {\n try {\n tsc = await which('tsc');\n\n if (await fs.pathExists(tsc)) {\n report.warn(\n `Failed to locate 'tsc' in the workspace. Falling back to the globally installed version. Consider adding ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue(\n 'devDependencies'\n )} or specifying the ${kleur.blue(\n 'tsc'\n )} option for the typescript target.`\n );\n }\n } catch (e) {\n // Ignore\n }\n }\n\n if (tsc == null || !(await fs.pathExists(tsc))) {\n throw new Error(\n `The ${kleur.blue(\n 'tsc'\n )} binary doesn't seem to be installed under ${kleur.blue(\n 'node_modules'\n )} or present in $PATH. Make sure you have added ${kleur.blue(\n 'typescript'\n )} to your ${kleur.blue('devDependencies')} or specify the ${kleur.blue(\n 'tsc'\n )} option for typescript.`\n );\n }\n\n const tsbuildinfo = path.join(\n output,\n project.replace(/\\.json$/, '.tsbuildinfo')\n );\n\n try {\n await del([tsbuildinfo]);\n } catch (e) {\n // Ignore\n }\n\n const result = spawn.sync(\n tsc,\n [\n '--pretty',\n '--declaration',\n '--declarationMap',\n '--emitDeclarationOnly',\n '--project',\n project,\n '--outDir',\n output,\n ],\n {\n stdio: 'inherit',\n cwd: root,\n }\n );\n\n if (result.status === 0) {\n await del([tsbuildinfo]);\n\n report.success(\n `Wrote definition files to ${kleur.blue(path.relative(root, output))}`\n );\n } else {\n throw new Error('Failed to build definition files.');\n }\n } catch (e: any) {\n if (e.stdout) {\n report.error(\n `Errors found when building definition files:\\n${e.stdout.toString()}`\n );\n } else {\n report.error(e.message);\n }\n\n throw new Error('Failed to build definition files.');\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-builder-bob",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "description": "CLI to build JavaScript files for React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -74,5 +74,5 @@
74
74
  "@types/yargs": "^17.0.10",
75
75
  "concurrently": "^7.2.2"
76
76
  },
77
- "gitHead": "0b98ff188b786e2c70916b3af34cc57106d8eb9e"
77
+ "gitHead": "03252b0272a4ae3c3920c0fad394528ec0cfcc1c"
78
78
  }