react-native-builder-bob 0.21.2 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -18,8 +18,6 @@ var _prompts = _interopRequireDefault(require("./utils/prompts"));
18
18
 
19
19
  var logger = _interopRequireWildcard(require("./utils/logger"));
20
20
 
21
- var _aar = _interopRequireDefault(require("./targets/aar"));
22
-
23
21
  var _commonjs = _interopRequireDefault(require("./targets/commonjs"));
24
22
 
25
23
  var _module = _interopRequireDefault(require("./targets/module"));
@@ -40,13 +38,11 @@ const {
40
38
 
41
39
  const root = process.cwd();
42
40
  const explorer = (0, _cosmiconfig.cosmiconfigSync)(name, {
43
- searchPlaces: ['package.json', `bob.config.js`]
41
+ searchPlaces: ['package.json', `bob.config.js`, 'bob.config.cjs']
44
42
  });
45
43
  const FLOW_PRGAMA_REGEX = /\*?\s*@(flow)\b/m; // eslint-disable-next-line babel/no-unused-expressions
46
44
 
47
45
  _yargs.default.command('init', 'configure the package to use bob', {}, async () => {
48
- var _pkg$scripts;
49
-
50
46
  if ((0, _isGitDirty.default)()) {
51
47
  const {
52
48
  shouldContinue
@@ -71,7 +67,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
71
67
  const pkg = JSON.parse(await _fsExtra.default.readFile(pak, 'utf-8'));
72
68
  const result = explorer.search();
73
69
 
74
- if (result !== null && result !== void 0 && result.config && pkg.devDependencies && name in pkg.devDependencies) {
70
+ if (result?.config && pkg.devDependencies && name in pkg.devDependencies) {
75
71
  const {
76
72
  shouldContinue
77
73
  } = await (0, _prompts.default)({
@@ -133,10 +129,6 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
133
129
  title: 'typescript - declaration files for typechecking',
134
130
  value: 'typescript',
135
131
  selected: /\.tsx?$/.test(entryFile)
136
- }, {
137
- title: 'aar - bundle android code to a binary',
138
- value: 'aar',
139
- selected: false
140
132
  }],
141
133
  validate: input => Boolean(input.length)
142
134
  }];
@@ -158,7 +150,8 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
158
150
  const target = targets[0] === 'commonjs' || targets[0] === 'module' ? targets[0] : undefined;
159
151
  const entries = {
160
152
  'main': target ? _path.default.join(output, target, 'index.js') : _path.default.join(source, entryFile),
161
- 'react-native': _path.default.join(source, entryFile)
153
+ 'react-native': _path.default.join(source, entryFile),
154
+ 'source': _path.default.join(source, entryFile)
162
155
  };
163
156
 
164
157
  if (targets.includes('module')) {
@@ -181,6 +174,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
181
174
  if (tsconfig) {
182
175
  await _fsExtra.default.writeFile(_path.default.join(root, 'tsconfig.json'), JSON.stringify({
183
176
  compilerOptions: {
177
+ rootDir: '.',
184
178
  allowUnreachableCode: false,
185
179
  allowUnusedLabels: false,
186
180
  esModuleInterop: true,
@@ -231,7 +225,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
231
225
  }
232
226
  }
233
227
 
234
- if ((_pkg$scripts = pkg.scripts) !== null && _pkg$scripts !== void 0 && _pkg$scripts.prepack && pkg.scripts.prepack !== prepack) {
228
+ if (pkg.scripts?.prepack && pkg.scripts.prepack !== prepack) {
235
229
  const {
236
230
  replace
237
231
  } = await (0, _prompts.default)({
@@ -272,7 +266,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
272
266
  targets: targets.map(t => {
273
267
  if (t === target && flow) {
274
268
  return [t, {
275
- flow
269
+ copyFlow: true
276
270
  }];
277
271
  }
278
272
 
@@ -325,17 +319,15 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
325
319
  ${_kleur.default.yellow('Good luck!')}
326
320
  `));
327
321
  }).command('build', 'build files for publishing', {}, async argv => {
328
- var _options$targets;
329
-
330
322
  const result = explorer.search();
331
323
 
332
- if (!(result !== null && result !== void 0 && result.config)) {
324
+ if (!result?.config) {
333
325
  logger.exit(`No configuration found. Run '${argv.$0} init' to create one automatically.`);
334
326
  }
335
327
 
336
328
  const options = result.config;
337
329
 
338
- if (!((_options$targets = options.targets) !== null && _options$targets !== void 0 && _options$targets.length)) {
330
+ if (!options.targets?.length) {
339
331
  logger.exit(`No targets found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
340
332
  }
341
333
 
@@ -351,6 +343,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
351
343
  logger.exit(`No source option found in the configuration in '${_path.default.relative(root, result.filepath)}'.`);
352
344
  }
353
345
 
346
+ const exclude = options.exclude ?? '**/{__tests__,__fixtures__,__mocks__}/**';
354
347
  const report = {
355
348
  info: logger.info,
356
349
  warn: logger.warn,
@@ -364,21 +357,12 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
364
357
  report.info(`Building target ${_kleur.default.blue(targetName)}`);
365
358
 
366
359
  switch (targetName) {
367
- case 'aar':
368
- await (0, _aar.default)({
369
- root,
370
- source: _path.default.resolve(root, source),
371
- output: _path.default.resolve(root, output, 'aar'),
372
- options: targetOptions,
373
- report
374
- });
375
- break;
376
-
377
360
  case 'commonjs':
378
361
  await (0, _commonjs.default)({
379
362
  root,
380
363
  source: _path.default.resolve(root, source),
381
364
  output: _path.default.resolve(root, output, 'commonjs'),
365
+ exclude,
382
366
  options: targetOptions,
383
367
  report
384
368
  });
@@ -389,6 +373,7 @@ _yargs.default.command('init', 'configure the package to use bob', {}, async ()
389
373
  root,
390
374
  source: _path.default.resolve(root, source),
391
375
  output: _path.default.resolve(root, output, 'module'),
376
+ exclude,
392
377
  options: targetOptions,
393
378
  report
394
379
  });
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","isGitDirty","shouldContinue","prompts","type","message","initial","exit","pak","path","join","fs","pathExists","logger","pkg","JSON","parse","readFile","result","search","config","devDependencies","source","validate","input","Boolean","entryFile","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","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","verbatimModuleSyntax","prepack","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","$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, { type 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 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(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}'. Are you in a project folder?`\n );\n }\n\n const pkg = JSON.parse(await fs.readFile(pak, 'utf-8'));\n const result = 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. 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}'. 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 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 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 null,\n 2\n )\n );\n }\n }\n }\n\n const prepack = '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?.prepack && pkg.scripts.prepack !== prepack) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the 'scripts.prepack' field set to '${pkg.scripts.prepack}'. Do you want to replace it with '${prepack}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg.scripts.prepack = prepack;\n }\n } else {\n pkg.scripts = pkg.scripts || {};\n pkg.scripts.prepack = prepack;\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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"}
1
+ {"version":3,"file":"index.js","names":["name","version","require","root","process","cwd","explorer","cosmiconfigSync","searchPlaces","FLOW_PRGAMA_REGEX","yargs","command","isGitDirty","shouldContinue","prompts","type","message","initial","exit","pak","path","join","fs","pathExists","logger","pkg","JSON","parse","readFile","result","search","config","devDependencies","source","validate","input","Boolean","entryFile","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","rootDir","allowUnreachableCode","allowUnusedLabels","esModuleInterop","forceConsistentCasingInFileNames","jsx","lib","moduleResolution","noFallthroughCasesInSwitch","noImplicitReturns","noImplicitUseStrict","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","resolveJsonModule","skipLibCheck","strict","verbatimModuleSyntax","prepack","files","key","entry","replace","scripts","slice","update","filter","file","map","t","copyFlow","jest","modulePathIgnorePatterns","eslintIgnore","ignorefiles","ignorefile","content","split","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 { cosmiconfigSync } 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\nconst { name, version } = require('../package.json');\n\nconst root = process.cwd();\nconst explorer = cosmiconfigSync(name, {\n searchPlaces: ['package.json', `bob.config.js`, 'bob.config.cjs'],\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 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(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}'. Are you in a project folder?`\n );\n }\n\n const pkg = JSON.parse(await fs.readFile(pak, 'utf-8'));\n const result = 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. 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}'. 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: { [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 'source': 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 rootDir: '.',\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 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 null,\n 2\n )\n );\n }\n }\n }\n\n const prepack = '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?.prepack && pkg.scripts.prepack !== prepack) {\n const { replace } = await prompts({\n type: 'confirm',\n name: 'replace',\n message: `Your package.json has the 'scripts.prepack' field set to '${pkg.scripts.prepack}'. Do you want to replace it with '${prepack}'?`,\n initial: true,\n });\n\n if (replace) {\n pkg.scripts.prepack = prepack;\n }\n } else {\n pkg.scripts = pkg.scripts || {};\n pkg.scripts.prepack = prepack;\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, { copyFlow: true }];\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 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":"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"}
@@ -19,6 +19,7 @@ async function build({
19
19
  root,
20
20
  source,
21
21
  output,
22
+ exclude,
22
23
  options,
23
24
  report
24
25
  }) {
@@ -28,6 +29,7 @@ async function build({
28
29
  root,
29
30
  source,
30
31
  output,
32
+ exclude,
31
33
  modules: 'commonjs',
32
34
  report,
33
35
  field: 'main'
@@ -1 +1 @@
1
- {"version":3,"file":"commonjs.js","names":["build","root","source","output","options","report","info","kleur","blue","path","relative","del","compile","modules","field"],"sources":["../../src/targets/commonjs.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport del from 'del';\nimport compile from '../utils/compile';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n };\n};\n\nexport default async function build({\n root,\n source,\n output,\n options,\n report,\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 await compile({\n ...options,\n root,\n source,\n output,\n modules: 'commonjs',\n report,\n field: 'main',\n });\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAYe,eAAeA,KAAf,CAAqB;EAClCC,IADkC;EAElCC,MAFkC;EAGlCC,MAHkC;EAIlCC,OAJkC;EAKlCC;AALkC,CAArB,EAMH;EACVA,MAAM,CAACC,IAAP,CACG,iCAAgCC,cAAA,CAAMC,IAAN,CAAWC,aAAA,CAAKC,QAAL,CAAcT,IAAd,EAAoBE,MAApB,CAAX,CAAwC,EAD3E;EAIA,MAAM,IAAAQ,YAAA,EAAI,CAACR,MAAD,CAAJ,CAAN;EAEA,MAAM,IAAAS,gBAAA,EAAQ,EACZ,GAAGR,OADS;IAEZH,IAFY;IAGZC,MAHY;IAIZC,MAJY;IAKZU,OAAO,EAAE,UALG;IAMZR,MANY;IAOZS,KAAK,EAAE;EAPK,CAAR,CAAN;AASD"}
1
+ {"version":3,"file":"commonjs.js","names":["build","root","source","output","exclude","options","report","info","kleur","blue","path","relative","del","compile","modules","field"],"sources":["../../src/targets/commonjs.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport del from 'del';\nimport compile from '../utils/compile';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n };\n exclude: string;\n};\n\nexport default async function build({\n root,\n source,\n output,\n exclude,\n options,\n report,\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 await compile({\n ...options,\n root,\n source,\n output,\n exclude,\n modules: 'commonjs',\n report,\n field: 'main',\n });\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAae,eAAeA,KAAf,CAAqB;EAClCC,IADkC;EAElCC,MAFkC;EAGlCC,MAHkC;EAIlCC,OAJkC;EAKlCC,OALkC;EAMlCC;AANkC,CAArB,EAOH;EACVA,MAAM,CAACC,IAAP,CACG,iCAAgCC,cAAA,CAAMC,IAAN,CAAWC,aAAA,CAAKC,QAAL,CAAcV,IAAd,EAAoBE,MAApB,CAAX,CAAwC,EAD3E;EAIA,MAAM,IAAAS,YAAA,EAAI,CAACT,MAAD,CAAJ,CAAN;EAEA,MAAM,IAAAU,gBAAA,EAAQ,EACZ,GAAGR,OADS;IAEZJ,IAFY;IAGZC,MAHY;IAIZC,MAJY;IAKZC,OALY;IAMZU,OAAO,EAAE,UANG;IAOZR,MAPY;IAQZS,KAAK,EAAE;EARK,CAAR,CAAN;AAUD"}
@@ -19,6 +19,7 @@ async function build({
19
19
  root,
20
20
  source,
21
21
  output,
22
+ exclude,
22
23
  options,
23
24
  report
24
25
  }) {
@@ -28,6 +29,7 @@ async function build({
28
29
  root,
29
30
  source,
30
31
  output,
32
+ exclude,
31
33
  modules: false,
32
34
  report,
33
35
  field: 'module'
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","names":["build","root","source","output","options","report","info","kleur","blue","path","relative","del","compile","modules","field"],"sources":["../../src/targets/module.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport del from 'del';\nimport compile from '../utils/compile';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n };\n};\n\nexport default async function build({\n root,\n source,\n output,\n options,\n report,\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 await compile({\n ...options,\n root,\n source,\n output,\n modules: false,\n report,\n field: 'module',\n });\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAYe,eAAeA,KAAf,CAAqB;EAClCC,IADkC;EAElCC,MAFkC;EAGlCC,MAHkC;EAIlCC,OAJkC;EAKlCC;AALkC,CAArB,EAMH;EACVA,MAAM,CAACC,IAAP,CACG,iCAAgCC,cAAA,CAAMC,IAAN,CAAWC,aAAA,CAAKC,QAAL,CAAcT,IAAd,EAAoBE,MAApB,CAAX,CAAwC,EAD3E;EAIA,MAAM,IAAAQ,YAAA,EAAI,CAACR,MAAD,CAAJ,CAAN;EAEA,MAAM,IAAAS,gBAAA,EAAQ,EACZ,GAAGR,OADS;IAEZH,IAFY;IAGZC,MAHY;IAIZC,MAJY;IAKZU,OAAO,EAAE,KALG;IAMZR,MANY;IAOZS,KAAK,EAAE;EAPK,CAAR,CAAN;AASD"}
1
+ {"version":3,"file":"module.js","names":["build","root","source","output","exclude","options","report","info","kleur","blue","path","relative","del","compile","modules","field"],"sources":["../../src/targets/module.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport del from 'del';\nimport compile from '../utils/compile';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n options?: {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n };\n exclude: string;\n};\n\nexport default async function build({\n root,\n source,\n output,\n exclude,\n options,\n report,\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 await compile({\n ...options,\n root,\n source,\n output,\n exclude,\n modules: false,\n report,\n field: 'module',\n });\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAae,eAAeA,KAAf,CAAqB;EAClCC,IADkC;EAElCC,MAFkC;EAGlCC,MAHkC;EAIlCC,OAJkC;EAKlCC,OALkC;EAMlCC;AANkC,CAArB,EAOH;EACVA,MAAM,CAACC,IAAP,CACG,iCAAgCC,cAAA,CAAMC,IAAN,CAAWC,aAAA,CAAKC,QAAL,CAAcV,IAAd,EAAoBE,MAApB,CAAX,CAAwC,EAD3E;EAIA,MAAM,IAAAS,YAAA,EAAI,CAACT,MAAD,CAAJ,CAAN;EAEA,MAAM,IAAAU,gBAAA,EAAQ,EACZ,GAAGR,OADS;IAEZJ,IAFY;IAGZC,MAHY;IAIZC,MAJY;IAKZC,OALY;IAMZU,OAAO,EAAE,KANG;IAOZR,MAPY;IAQZS,KAAK,EAAE;EARK,CAAR,CAAN;AAUD"}
@@ -24,6 +24,7 @@ var _os = require("os");
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
26
26
  async function build({
27
+ source,
27
28
  root,
28
29
  output,
29
30
  report,
@@ -32,7 +33,7 @@ async function build({
32
33
  report.info(`Cleaning up previous build at ${_kleur.default.blue(_path.default.relative(root, output))}`);
33
34
  await (0, _del.default)([output]);
34
35
  report.info(`Generating type definitions with ${_kleur.default.blue('tsc')}`);
35
- const project = options !== null && options !== void 0 && options.project ? options.project : 'tsconfig.json';
36
+ const project = options?.project ? options.project : 'tsconfig.json';
36
37
 
37
38
  const tsconfig = _path.default.join(root, project);
38
39
 
@@ -73,37 +74,25 @@ async function build({
73
74
 
74
75
  let tsc;
75
76
 
76
- if (options !== null && options !== void 0 && options.tsc) {
77
+ if (options?.tsc) {
77
78
  tsc = _path.default.resolve(root, options.tsc);
78
79
 
79
80
  if (!(await _fsExtra.default.pathExists(tsc))) {
80
81
  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
  }
82
83
  } else {
83
- var _execpath$split$pop;
84
-
85
84
  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';
85
+ const cli = execpath?.split('/').pop()?.includes('yarn') ? 'yarn' : 'npm';
87
86
 
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) {
87
+ if (cli === 'yarn') {
88
+ const result = _crossSpawn.default.sync('yarn', ['bin', 'tsc'], {
89
+ stdio: 'pipe',
90
+ encoding: 'utf-8',
91
+ cwd: root
92
+ });
93
+
94
+ tsc = result.stdout.trim();
95
+ } else {
107
96
  tsc = _path.default.resolve(root, 'node_modules', '.bin', 'tsc');
108
97
  }
109
98
 
@@ -117,7 +106,7 @@ async function build({
117
106
  tsc = await (0, _which.default)('tsc');
118
107
 
119
108
  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.`);
109
+ report.warn(`Failed to locate ${_kleur.default.blue('tsc')} in the workspace. Falling back to the binary found in ${_kleur.default.blue('PATH')} at ${_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.`);
121
110
  }
122
111
  } catch (e) {// Ignore
123
112
  }
@@ -142,22 +131,39 @@ async function build({
142
131
  if (result.status === 0) {
143
132
  await (0, _del.default)([tsbuildinfo]);
144
133
  report.success(`Wrote definition files to ${_kleur.default.blue(_path.default.relative(root, output))}`);
145
- const packageJson = JSON.parse(await _fsExtra.default.readFile(_path.default.join(root, 'package.json'), 'utf-8'));
134
+ const pkg = JSON.parse(await _fsExtra.default.readFile(_path.default.join(root, 'package.json'), 'utf-8'));
146
135
 
147
- if ('types' in packageJson) {
148
- if (!packageJson.types.endsWith('.d.ts')) {
149
- report.error(`The ${_kleur.default.blue('types')} field in ${_kleur.default.blue('package.json')} doesn't point to a definition file. Verify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}.`);
150
- throw new Error("Found incorrect path in 'types' field.");
136
+ const getGeneratedTypesPath = async () => {
137
+ if (pkg.source) {
138
+ const indexDTsName = _path.default.basename(pkg.source).replace(/\.(jsx?|tsx?)$/, '') + '.d.ts';
139
+ const potentialPaths = [_path.default.join(output, _path.default.dirname(pkg.source), indexDTsName), _path.default.join(output, _path.default.dirname(_path.default.relative(source, _path.default.join(root, pkg.source))), indexDTsName)];
140
+
141
+ for (const potentialPath of potentialPaths) {
142
+ if (await _fsExtra.default.pathExists(potentialPath)) {
143
+ return _path.default.relative(root, potentialPath);
144
+ }
145
+ }
151
146
  }
152
147
 
153
- const typesPath = _path.default.join(root, packageJson.types);
148
+ return null;
149
+ };
150
+
151
+ if ('types' in pkg) {
152
+ const typesPath = _path.default.join(root, pkg.types);
154
153
 
155
154
  if (!(await _fsExtra.default.pathExists(typesPath))) {
156
- report.error(`The ${_kleur.default.blue('types')} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(packageJson.types)}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}.`);
155
+ const generatedTypesPath = await getGeneratedTypesPath();
156
+
157
+ if (!generatedTypesPath) {
158
+ report.warn(`Failed to detect the entry point for the generated types. Make sure you have a valid ${_kleur.default.blue('source')} field in your ${_kleur.default.blue('package.json')}.`);
159
+ }
160
+
161
+ report.error(`The ${_kleur.default.blue('types')} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(pkg.types)}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}${generatedTypesPath ? ` (found ${_kleur.default.blue(generatedTypesPath)}).` : '.'}`);
157
162
  throw new Error("Found incorrect path in 'types' field.");
158
163
  }
159
164
  } else {
160
- report.warn(`No ${_kleur.default.blue('types')} field found in ${_kleur.default.blue('package.json')}.\nConsider adding it so consumers can use the types.`);
165
+ const generatedTypesPath = await getGeneratedTypesPath();
166
+ report.warn(`No ${_kleur.default.blue('types')} field found in ${_kleur.default.blue('package.json')}.\nConsider ${generatedTypesPath ? `pointing it to ${_kleur.default.blue(generatedTypesPath)}` : 'adding it'} so that consumers of your package can use the types.`);
161
167
  }
162
168
  } else {
163
169
  throw new Error('Failed to build definition files.');
@@ -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","execpath","process","env","npm_execpath","cli","split","pop","includes","result","spawn","sync","stdio","encoding","cwd","stdout","trim","platform","endsWith","which","tsbuildinfo","replace","status","success","packageJson","JSON","types","error","typesPath","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\n const packageJson = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if ('types' in packageJson) {\n if (!packageJson.types.endsWith('.d.ts')) {\n report.error(\n `The ${kleur.blue('types')} field in ${kleur.blue(\n 'package.json'\n )} doesn't point to a definition file. Verify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}.`\n );\n\n throw new Error(\"Found incorrect path in 'types' field.\");\n }\n\n const typesPath = path.join(root, packageJson.types);\n\n if (!(await fs.pathExists(typesPath))) {\n report.error(\n `The ${kleur.blue('types')} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n packageJson.types\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}.`\n );\n\n throw new Error(\"Found incorrect path in 'types' field.\");\n }\n } else {\n report.warn(\n `No ${kleur.blue('types')} field found in ${kleur.blue(\n 'package.json'\n )}.\\nConsider adding it so consumers can use the types.`\n );\n }\n } else {\n throw new Error('Failed to build definition files.');\n }\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 when building definition 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 to build definition files.');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","names":["build","source","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","pkg","JSON","getGeneratedTypesPath","indexDTsName","basename","potentialPaths","dirname","potentialPath","typesPath","types","generatedTypesPath","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 source,\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 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 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 ${kleur.blue(\n 'tsc'\n )} in the workspace. Falling back to the binary found in ${kleur.blue(\n 'PATH'\n )} at ${kleur.blue(tsc)}. 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\n const pkg = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n const getGeneratedTypesPath = async () => {\n if (pkg.source) {\n const indexDTsName =\n path.basename(pkg.source).replace(/\\.(jsx?|tsx?)$/, '') + '.d.ts';\n\n const potentialPaths = [\n path.join(output, path.dirname(pkg.source), indexDTsName),\n path.join(\n output,\n path.dirname(path.relative(source, path.join(root, pkg.source))),\n indexDTsName\n ),\n ];\n\n for (const potentialPath of potentialPaths) {\n if (await fs.pathExists(potentialPath)) {\n return path.relative(root, potentialPath);\n }\n }\n }\n\n return null;\n };\n\n if ('types' in pkg) {\n const typesPath = path.join(root, pkg.types);\n\n if (!(await fs.pathExists(typesPath))) {\n const generatedTypesPath = await getGeneratedTypesPath();\n\n if (!generatedTypesPath) {\n report.warn(\n `Failed to detect the entry point for the generated types. 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('types')} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n pkg.types\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}${\n generatedTypesPath\n ? ` (found ${kleur.blue(generatedTypesPath)}).`\n : '.'\n }`\n );\n\n throw new Error(\"Found incorrect path in 'types' field.\");\n }\n } else {\n const generatedTypesPath = await getGeneratedTypesPath();\n\n report.warn(\n `No ${kleur.blue('types')} field found in ${kleur.blue(\n 'package.json'\n )}.\\nConsider ${\n generatedTypesPath\n ? `pointing it to ${kleur.blue(generatedTypesPath)}`\n : 'adding it'\n } so that consumers of your package can use the types.`\n );\n }\n } else {\n throw new Error('Failed to build definition files.');\n }\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 when building definition 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 to build definition files.');\n }\n}\n"],"mappings":"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"}
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 = 'aar' | 'commonjs' | 'module' | 'typescript';\n\nexport type Options = {\n source?: string;\n output?: string;\n targets?: (Target | [Target, object])[];\n};\n"],"mappings":""}
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":""}
@@ -29,6 +29,7 @@ async function compile({
29
29
  output,
30
30
  babelrc = false,
31
31
  configFile = false,
32
+ exclude,
32
33
  modules,
33
34
  copyFlow,
34
35
  sourceMaps = true,
@@ -39,10 +40,18 @@ async function compile({
39
40
  cwd: source,
40
41
  absolute: true,
41
42
  nodir: true,
42
- ignore: '**/{__tests__,__fixtures__,__mocks__}/**'
43
+ ignore: exclude
43
44
  });
44
45
 
45
46
  report.info(`Compiling ${_kleur.default.blue(String(files.length))} files in ${_kleur.default.blue(_path.default.relative(root, source))} with ${_kleur.default.blue('babel')}`);
47
+ const pkg = JSON.parse(await _fsExtra.default.readFile(_path.default.join(root, 'package.json'), 'utf-8'));
48
+
49
+ if (copyFlow) {
50
+ if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {
51
+ report.warn(`The ${_kleur.default.blue('copyFlow')} option was specified, but couldn't find ${_kleur.default.blue('flow-bin')} in ${_kleur.default.blue('package.json')}.\nIf the project is using ${_kleur.default.blue('flow')}, then make sure you have added ${_kleur.default.blue('flow-bin')} to your ${_kleur.default.blue('devDependencies')}, otherwise remove the ${_kleur.default.blue('copyFlow')} option.`);
52
+ }
53
+ }
54
+
46
55
  await Promise.all(files.map(async filepath => {
47
56
  const outputFilename = _path.default.join(output, _path.default.relative(source, filepath)).replace(/\.(jsx?|tsx?)$/, '.js');
48
57
 
@@ -68,7 +77,7 @@ async function compile({
68
77
  presets: [[require.resolve('@babel/preset-env'), {
69
78
  targets: _browserslist.default.findConfig(root) ?? {
70
79
  browsers: ['>1%', 'last 2 chrome versions', 'last 2 edge versions', 'last 2 firefox versions', 'last 2 safari versions', 'not dead', 'not ie <= 11', 'not op_mini all', 'not android <= 4.4', 'not samsung <= 4'],
71
- node: '16'
80
+ node: '18'
72
81
  },
73
82
  useBuiltIns: false,
74
83
  modules
@@ -98,21 +107,41 @@ async function compile({
98
107
  }
99
108
  }));
100
109
  report.success(`Wrote files to ${_kleur.default.blue(_path.default.relative(root, output))}`);
101
- const packageJson = JSON.parse(await _fsExtra.default.readFile(_path.default.join(root, 'package.json'), 'utf-8'));
102
110
 
103
- if (field in packageJson) {
111
+ const getGeneratedEntryPath = async () => {
112
+ if (pkg.source) {
113
+ const indexName = _path.default.basename(pkg.source).replace(/\.(jsx?|tsx?)$/, '') + '.js';
114
+
115
+ const potentialPath = _path.default.join(output, _path.default.dirname(_path.default.relative(source, _path.default.join(root, pkg.source))), indexName);
116
+
117
+ if (await _fsExtra.default.pathExists(potentialPath)) {
118
+ return _path.default.relative(root, potentialPath);
119
+ }
120
+ }
121
+
122
+ return null;
123
+ };
124
+
125
+ if (field in pkg) {
104
126
  try {
105
- require.resolve(_path.default.join(root, packageJson[field]));
127
+ require.resolve(_path.default.join(root, pkg[field]));
106
128
  } catch (e) {
107
129
  if (e != null && typeof e === 'object' && 'code' in e && e.code === 'MODULE_NOT_FOUND') {
108
- report.error(`The ${_kleur.default.blue(field)} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(packageJson[field])}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}.`);
130
+ const generatedEntryPath = await getGeneratedEntryPath();
131
+
132
+ if (!generatedEntryPath) {
133
+ report.warn(`Failed to detect the entry point for the generated files. Make sure you have a valid ${_kleur.default.blue('source')} field in your ${_kleur.default.blue('package.json')}.`);
134
+ }
135
+
136
+ report.error(`The ${_kleur.default.blue(field)} field in ${_kleur.default.blue('package.json')} points to a non-existent file: ${_kleur.default.blue(pkg[field])}.\nVerify the path points to the correct file under ${_kleur.default.blue(_path.default.relative(root, output))}${generatedEntryPath ? ` (found ${_kleur.default.blue(generatedEntryPath)}).` : '.'}`);
109
137
  throw new Error(`Found incorrect path in '${field}' field.`);
110
138
  }
111
139
 
112
140
  throw e;
113
141
  }
114
142
  } else {
115
- report.warn(`No ${_kleur.default.blue(field)} field found in ${_kleur.default.blue('package.json')}. Add it to your ${_kleur.default.blue('package.json')} so that consumers of your package can use it.`);
143
+ const generatedEntryPath = await getGeneratedEntryPath();
144
+ report.warn(`No ${_kleur.default.blue(field)} field found in ${_kleur.default.blue('package.json')}. Consider ${generatedEntryPath ? `pointing it to ${_kleur.default.blue(generatedEntryPath)}` : 'adding it'} so that consumers of your package can use it.`);
116
145
  }
117
146
  }
118
147
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","names":["compile","root","source","output","babelrc","configFile","modules","copyFlow","sourceMaps","report","field","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","Promise","all","map","filepath","outputFilename","join","replace","fs","mkdirp","dirname","test","copy","content","readFile","result","babel","transformAsync","sourceRoot","sourceFileName","filename","presets","require","resolve","targets","browserslist","findConfig","browsers","node","useBuiltIns","Error","code","mapFilename","basename","sourcesContent","undefined","writeFileSync","JSON","stringify","writeFile","success","packageJson","parse","e","error","warn"],"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 browserslist from 'browserslist';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n modules: 'commonjs' | false;\n field: 'main' | 'module';\n};\n\nexport default async function compile({\n root,\n source,\n output,\n babelrc = false,\n configFile = false,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n field,\n}: Options) {\n const files = glob.sync('**/*', {\n cwd: source,\n absolute: true,\n nodir: true,\n ignore: '**/{__tests__,__fixtures__,__mocks__}/**',\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 await Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(/\\.(jsx?|tsx?)$/, '.js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!/\\.(jsx?|tsx?)$/.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-env'),\n {\n targets: browserslist.findConfig(root) ?? {\n browsers: [\n '>1%',\n 'last 2 chrome versions',\n 'last 2 edge versions',\n 'last 2 firefox versions',\n 'last 2 safari versions',\n 'not dead',\n 'not ie <= 11',\n 'not op_mini all',\n 'not android <= 4.4',\n 'not samsung <= 4',\n ],\n node: '16',\n },\n useBuiltIns: false,\n modules,\n },\n ],\n require.resolve('@babel/preset-react'),\n require.resolve('@babel/preset-typescript'),\n require.resolve('@babel/preset-flow'),\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 fs.writeFileSync(mapFilename, JSON.stringify(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 packageJson = JSON.parse(\n await fs.readFile(path.join(root, 'package.json'), 'utf-8')\n );\n\n if (field in packageJson) {\n try {\n require.resolve(path.join(root, packageJson[field]));\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 report.error(\n `The ${kleur.blue(field)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n packageJson[field]\n )}.\\nVerify the path points to the correct file under ${kleur.blue(\n path.relative(root, output)\n )}.`\n );\n\n throw new Error(`Found incorrect path in '${field}' field.`);\n }\n\n throw e;\n }\n } else {\n report.warn(\n `No ${kleur.blue(field)} field found in ${kleur.blue(\n 'package.json'\n )}. Add it to your ${kleur.blue(\n 'package.json'\n )} so that consumers of your package can use it.`\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","names":["compile","root","source","output","babelrc","configFile","exclude","modules","copyFlow","sourceMaps","report","field","files","glob","sync","cwd","absolute","nodir","ignore","info","kleur","blue","String","length","path","relative","pkg","JSON","parse","fs","readFile","join","Object","keys","devDependencies","includes","warn","Promise","all","map","filepath","outputFilename","replace","mkdirp","dirname","test","copy","content","result","babel","transformAsync","sourceRoot","sourceFileName","filename","presets","require","resolve","targets","browserslist","findConfig","browsers","node","useBuiltIns","Error","code","mapFilename","basename","sourcesContent","undefined","writeFileSync","stringify","writeFile","success","getGeneratedEntryPath","indexName","potentialPath","pathExists","e","generatedEntryPath","error"],"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 browserslist from 'browserslist';\nimport glob from 'glob';\nimport type { Input } from '../types';\n\ntype Options = Input & {\n babelrc?: boolean | null;\n configFile?: string | false | null;\n sourceMaps?: boolean;\n copyFlow?: boolean;\n modules: 'commonjs' | false;\n field: 'main' | 'module';\n exclude: string;\n};\n\nexport default async function compile({\n root,\n source,\n output,\n babelrc = false,\n configFile = false,\n exclude,\n modules,\n copyFlow,\n sourceMaps = true,\n report,\n field,\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 Promise.all(\n files.map(async (filepath) => {\n const outputFilename = path\n .join(output, path.relative(source, filepath))\n .replace(/\\.(jsx?|tsx?)$/, '.js');\n\n await fs.mkdirp(path.dirname(outputFilename));\n\n if (!/\\.(jsx?|tsx?)$/.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-env'),\n {\n targets: browserslist.findConfig(root) ?? {\n browsers: [\n '>1%',\n 'last 2 chrome versions',\n 'last 2 edge versions',\n 'last 2 firefox versions',\n 'last 2 safari versions',\n 'not dead',\n 'not ie <= 11',\n 'not op_mini all',\n 'not android <= 4.4',\n 'not samsung <= 4',\n ],\n node: '18',\n },\n useBuiltIns: false,\n modules,\n },\n ],\n require.resolve('@babel/preset-react'),\n require.resolve('@babel/preset-typescript'),\n require.resolve('@babel/preset-flow'),\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 fs.writeFileSync(mapFilename, JSON.stringify(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 const indexName =\n path.basename(pkg.source).replace(/\\.(jsx?|tsx?)$/, '') + '.js';\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 return null;\n };\n\n if (field in pkg) {\n try {\n require.resolve(path.join(root, pkg[field]));\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(field)} field in ${kleur.blue(\n 'package.json'\n )} points to a non-existent file: ${kleur.blue(\n pkg[field]\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 '${field}' field.`);\n }\n\n throw e;\n }\n } else {\n const generatedEntryPath = await getGeneratedEntryPath();\n\n report.warn(\n `No ${kleur.blue(field)} field found in ${kleur.blue(\n 'package.json'\n )}. Consider ${\n generatedEntryPath\n ? `pointing it to ${kleur.blue(generatedEntryPath)}`\n : 'adding it'\n } so that consumers of your package can use it.`\n );\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.21.2",
3
+ "version": "0.22.0",
4
4
  "description": "CLI to build JavaScript files for React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -26,7 +26,7 @@
26
26
  "lib"
27
27
  ],
28
28
  "engines": {
29
- "node": ">= 16.0.0"
29
+ "node": ">= 18.0.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public",
@@ -56,9 +56,6 @@
56
56
  "which": "^2.0.2",
57
57
  "yargs": "^17.5.1"
58
58
  },
59
- "optionalDependencies": {
60
- "jetifier": "^2.0.0"
61
- },
62
59
  "devDependencies": {
63
60
  "@babel/cli": "^7.17.10",
64
61
  "@types/babel__core": "^7.1.19",
@@ -74,5 +71,5 @@
74
71
  "@types/yargs": "^17.0.10",
75
72
  "concurrently": "^7.2.2"
76
73
  },
77
- "gitHead": "2fe844a037e535f590c6542b7aceb0e261d877b1"
74
+ "gitHead": "2a92f26b642637b853c0dfe7f59e2d561d6394af"
78
75
  }
@@ -1,89 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = build;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _kleur = _interopRequireDefault(require("kleur"));
11
-
12
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
13
-
14
- var _del = _interopRequireDefault(require("del"));
15
-
16
- var _androidAssemble = _interopRequireDefault(require("../utils/androidAssemble"));
17
-
18
- var _jetifier = _interopRequireDefault(require("../utils/jetifier"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- const defaultOptions = {
23
- androidPath: 'android',
24
- androidBundleName: 'android.aar',
25
- reverseJetify: false
26
- };
27
-
28
- async function createGradleFile(file) {
29
- await _fsExtra.default.createFile(file);
30
- await _fsExtra.default.writeFile(file, 'configurations.maybeCreate("default")\nartifacts.add("default", file(\'android.aar\'))');
31
- }
32
-
33
- async function build({
34
- root,
35
- output,
36
- options,
37
- report
38
- }) {
39
- const targetOptions = { ...defaultOptions,
40
- ...options
41
- };
42
- report.info(`Cleaning up previous build at ${_kleur.default.blue(_path.default.relative(root, output))}`);
43
- await (0, _del.default)([output]);
44
- await (0, _androidAssemble.default)({
45
- root,
46
- androidPath: targetOptions.androidPath,
47
- report
48
- });
49
- report.info(`Creating new output directory at ${_kleur.default.blue(_path.default.relative(root, output))}`);
50
- await _fsExtra.default.mkdir(output);
51
-
52
- const sourceAar = _path.default.join(targetOptions.androidPath, 'build', 'outputs', 'aar', targetOptions.androidBundleName);
53
-
54
- const targetAar = _path.default.join(output, targetOptions.androidBundleName);
55
-
56
- report.info(`Copying AAR from ${_kleur.default.blue(_path.default.relative(root, sourceAar))} to ${_kleur.default.blue(_path.default.relative(root, targetAar))}`);
57
- await _fsExtra.default.copyFile(sourceAar, targetAar);
58
-
59
- const gradleFile = _path.default.join(output, 'build.gradle');
60
-
61
- report.info(`Creating AAR Gradle file at ${_kleur.default.blue(_path.default.relative(root, gradleFile))}`);
62
- await createGradleFile(gradleFile);
63
-
64
- if (targetOptions.reverseJetify) {
65
- const supportOutputPath = _path.default.join(output, 'support');
66
-
67
- report.info(`Creating new support output directory at ${_kleur.default.blue(_path.default.relative(root, supportOutputPath))}`);
68
- await _fsExtra.default.mkdir(supportOutputPath);
69
-
70
- const supportAar = _path.default.join(supportOutputPath, targetOptions.androidBundleName);
71
-
72
- report.info(`Using Jetifier to convert AAR from AndroidX to Support AAR at ${_kleur.default.blue(_path.default.relative(root, supportAar))}`);
73
- await (0, _jetifier.default)({
74
- root,
75
- report,
76
- input: targetAar,
77
- output: supportAar,
78
- reverse: true
79
- });
80
-
81
- const supportGradleFile = _path.default.join(supportOutputPath, 'build.gradle');
82
-
83
- report.info(`Creating Support AAR Gradle file at ${_kleur.default.blue(_path.default.relative(root, supportGradleFile))}`);
84
- await createGradleFile(supportGradleFile);
85
- }
86
-
87
- report.success(`Wrote files to ${_kleur.default.blue(_path.default.relative(root, output))}`);
88
- }
89
- //# sourceMappingURL=aar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aar.js","names":["defaultOptions","androidPath","androidBundleName","reverseJetify","createGradleFile","file","fs","createFile","writeFile","build","root","output","options","report","targetOptions","info","kleur","blue","path","relative","del","androidAssemble","mkdir","sourceAar","join","targetAar","copyFile","gradleFile","supportOutputPath","supportAar","jetifier","input","reverse","supportGradleFile","success"],"sources":["../../src/targets/aar.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport fs from 'fs-extra';\nimport del from 'del';\nimport androidAssemble from '../utils/androidAssemble';\nimport jetifier from '../utils/jetifier';\nimport type { Input } from '../types';\n\ntype TargetOptions = {\n androidPath: string;\n androidBundleName: string;\n reverseJetify: boolean;\n};\n\nconst defaultOptions: TargetOptions = {\n androidPath: 'android',\n androidBundleName: 'android.aar',\n reverseJetify: false,\n};\n\ntype Options = Input & {\n options?: Partial<TargetOptions>;\n};\n\nasync function createGradleFile(file: string) {\n await fs.createFile(file);\n await fs.writeFile(\n file,\n 'configurations.maybeCreate(\"default\")\\nartifacts.add(\"default\", file(\\'android.aar\\'))'\n );\n}\n\nexport default async function build({\n root,\n output,\n options,\n report,\n}: Options) {\n const targetOptions = {\n ...defaultOptions,\n ...options,\n };\n\n report.info(\n `Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`\n );\n\n await del([output]);\n\n await androidAssemble({\n root,\n androidPath: targetOptions.androidPath,\n report,\n });\n\n report.info(\n `Creating new output directory at ${kleur.blue(\n path.relative(root, output)\n )}`\n );\n await fs.mkdir(output);\n\n const sourceAar = path.join(\n targetOptions.androidPath,\n 'build',\n 'outputs',\n 'aar',\n targetOptions.androidBundleName\n );\n const targetAar = path.join(output, targetOptions.androidBundleName);\n\n report.info(\n `Copying AAR from ${kleur.blue(\n path.relative(root, sourceAar)\n )} to ${kleur.blue(path.relative(root, targetAar))}`\n );\n await fs.copyFile(sourceAar, targetAar);\n\n const gradleFile = path.join(output, 'build.gradle');\n report.info(\n `Creating AAR Gradle file at ${kleur.blue(path.relative(root, gradleFile))}`\n );\n await createGradleFile(gradleFile);\n\n if (targetOptions.reverseJetify) {\n const supportOutputPath = path.join(output, 'support');\n report.info(\n `Creating new support output directory at ${kleur.blue(\n path.relative(root, supportOutputPath)\n )}`\n );\n await fs.mkdir(supportOutputPath);\n\n const supportAar = path.join(\n supportOutputPath,\n targetOptions.androidBundleName\n );\n report.info(\n `Using Jetifier to convert AAR from AndroidX to Support AAR at ${kleur.blue(\n path.relative(root, supportAar)\n )}`\n );\n\n await jetifier({\n root,\n report,\n input: targetAar,\n output: supportAar,\n reverse: true,\n });\n\n const supportGradleFile = path.join(supportOutputPath, 'build.gradle');\n report.info(\n `Creating Support AAR Gradle file at ${kleur.blue(\n path.relative(root, supportGradleFile)\n )}`\n );\n await createGradleFile(supportGradleFile);\n }\n\n report.success(`Wrote files to ${kleur.blue(path.relative(root, output))}`);\n}\n"],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = jetifier;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _kleur = _interopRequireDefault(require("kleur"));
11
-
12
- var _child_process = require("child_process");
13
-
14
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- async function jetifier({
19
- root,
20
- input,
21
- output,
22
- reverse
23
- }) {
24
- const jetifierStandalone = _path.default.join(root, 'node_modules', '.bin', 'jetifier-standalone');
25
-
26
- if (await _fsExtra.default.pathExists(jetifierStandalone)) {
27
- const args = ['-i', input, '-o', output];
28
-
29
- if (reverse) {
30
- args.push('-r');
31
- }
32
-
33
- (0, _child_process.execFileSync)(jetifierStandalone, args);
34
- } else {
35
- throw new Error(`The ${_kleur.default.blue('jetifier')} binary doesn't seem to be installed under ${_kleur.default.blue('node_modules')}. Make sure you have added ${_kleur.default.blue('jetifier')} to your ${_kleur.default.blue('devDependencies')}.`);
36
- }
37
- }
38
- //# sourceMappingURL=jetifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jetifier.js","names":["jetifier","root","input","output","reverse","jetifierStandalone","path","join","fs","pathExists","args","push","execFileSync","Error","kleur","blue"],"sources":["../../src/utils/jetifier.ts"],"sourcesContent":["import path from 'path';\nimport kleur from 'kleur';\nimport { execFileSync } from 'child_process';\nimport fs from 'fs-extra';\nimport type { Report } from '../types';\n\ntype Options = {\n root: string;\n input: string;\n output: string;\n reverse: boolean;\n report: Report;\n};\n\nexport default async function jetifier({\n root,\n input,\n output,\n reverse,\n}: Options) {\n const jetifierStandalone = path.join(\n root,\n 'node_modules',\n '.bin',\n 'jetifier-standalone'\n );\n\n if (await fs.pathExists(jetifierStandalone)) {\n const args = ['-i', input, '-o', output];\n if (reverse) {\n args.push('-r');\n }\n\n execFileSync(jetifierStandalone, args);\n } else {\n throw new Error(\n `The ${kleur.blue(\n 'jetifier'\n )} binary doesn't seem to be installed under ${kleur.blue(\n 'node_modules'\n )}. Make sure you have added ${kleur.blue(\n 'jetifier'\n )} to your ${kleur.blue('devDependencies')}.`\n );\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAWe,eAAeA,QAAf,CAAwB;EACrCC,IADqC;EAErCC,KAFqC;EAGrCC,MAHqC;EAIrCC;AAJqC,CAAxB,EAKH;EACV,MAAMC,kBAAkB,GAAGC,aAAA,CAAKC,IAAL,CACzBN,IADyB,EAEzB,cAFyB,EAGzB,MAHyB,EAIzB,qBAJyB,CAA3B;;EAOA,IAAI,MAAMO,gBAAA,CAAGC,UAAH,CAAcJ,kBAAd,CAAV,EAA6C;IAC3C,MAAMK,IAAI,GAAG,CAAC,IAAD,EAAOR,KAAP,EAAc,IAAd,EAAoBC,MAApB,CAAb;;IACA,IAAIC,OAAJ,EAAa;MACXM,IAAI,CAACC,IAAL,CAAU,IAAV;IACD;;IAED,IAAAC,2BAAA,EAAaP,kBAAb,EAAiCK,IAAjC;EACD,CAPD,MAOO;IACL,MAAM,IAAIG,KAAJ,CACH,OAAMC,cAAA,CAAMC,IAAN,CACL,UADK,CAEL,8CAA6CD,cAAA,CAAMC,IAAN,CAC7C,cAD6C,CAE7C,8BAA6BD,cAAA,CAAMC,IAAN,CAC7B,UAD6B,CAE7B,YAAWD,cAAA,CAAMC,IAAN,CAAW,iBAAX,CAA8B,GAPvC,CAAN;EASD;AACF"}