create-react-native-library 0.44.0 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assertOptions = assertOptions;
3
7
  var _path = _interopRequireDefault(require("path"));
4
8
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
5
9
  var _ejs = _interopRequireDefault(require("ejs"));
@@ -326,80 +330,51 @@ async function create(_argv) {
326
330
  }
327
331
  });
328
332
  }
329
- const validate = answers => {
330
- for (const [key, value] of Object.entries(answers)) {
331
- if (value == null) {
332
- continue;
333
- }
334
- const question = questions.find(q => q.name === key);
335
- if (question == null) {
336
- continue;
337
- }
338
- let valid = question.validate ? question.validate(String(value)) : true;
333
+ assertOptions(questions, argv);
334
+ const singleChoiceAnswers = {};
335
+ const finalQuestions = [];
336
+ for (const question of questions) {
337
+ // Skip questions which are passed as parameter and pass validation
338
+ if (argv[question.name] != null && question.validate?.(argv[question.name]) !== false) {
339
+ continue;
340
+ }
339
341
 
340
- // We also need to guard against invalid choices
341
- // If we don't already have a validation message to provide a better error
342
- if (typeof valid !== 'string' && 'choices' in question) {
343
- const choices = typeof question.choices === 'function' ? question.choices(undefined,
344
- // @ts-expect-error: it complains about optional values, but it should be fine
345
- answers, question) : question.choices;
346
- if (choices && !choices.some(choice => choice.value === value)) {
347
- valid = `Supported values are - ${choices.map(c => _kleur.default.green(c.value))}`;
348
- }
349
- }
350
- if (valid !== true) {
351
- let message = `Invalid value ${_kleur.default.red(String(value))} passed for ${_kleur.default.blue(key)}`;
352
- if (typeof valid === 'string') {
353
- message += `: ${valid}`;
354
- }
355
- console.log(message);
356
- process.exit(1);
357
- }
342
+ // Don't prompt questions with a single choice
343
+ if (Array.isArray(question.choices) && question.choices.length === 1) {
344
+ const onlyChoice = question.choices[0];
345
+ singleChoiceAnswers[question.name] = onlyChoice.value;
346
+ continue;
358
347
  }
359
- };
348
+ const {
349
+ type,
350
+ choices
351
+ } = question;
360
352
 
361
- // Validate arguments passed to the CLI
362
- validate(argv);
353
+ // Don't prompt dynamic questions with a single choice
354
+ if (type === 'select' && typeof choices === 'function') {
355
+ question.type = (prev, values, prompt) => {
356
+ const dynamicChoices = choices(prev, {
357
+ ...argv,
358
+ ...values
359
+ }, prompt);
360
+ if (dynamicChoices && dynamicChoices.length === 1) {
361
+ const onlyChoice = dynamicChoices[0];
362
+ singleChoiceAnswers[question.name] = onlyChoice.value;
363
+ return null;
364
+ }
365
+ return type;
366
+ };
367
+ }
368
+ finalQuestions.push(question);
369
+ }
370
+ const promptAnswers = await (0, _prompts.default)(finalQuestions);
363
371
  const answers = {
364
372
  ...argv,
365
373
  local,
366
- ...(await (0, _prompts.default)(questions.filter(question => {
367
- // Skip questions which are passed as parameter and pass validation
368
- if (argv[question.name] != null && question.validate?.(argv[question.name]) !== false) {
369
- return false;
370
- }
371
-
372
- // Skip questions with a single choice
373
- if (Array.isArray(question.choices) && question.choices.length === 1) {
374
- return false;
375
- }
376
- return true;
377
- }).map(question => {
378
- const {
379
- type,
380
- choices
381
- } = question;
382
-
383
- // Skip dynamic questions with a single choice
384
- if (type === 'select' && typeof choices === 'function') {
385
- return {
386
- ...question,
387
- type: (prev, values, prompt) => {
388
- const result = choices(prev, {
389
- ...argv,
390
- ...values
391
- }, prompt);
392
- if (result && result.length === 1) {
393
- return null;
394
- }
395
- return type;
396
- }
397
- };
398
- }
399
- return question;
400
- })))
374
+ ...singleChoiceAnswers,
375
+ ...promptAnswers
401
376
  };
402
- validate(answers);
377
+ assertOptions(questions, answers);
403
378
  const {
404
379
  slug,
405
380
  description,
@@ -672,4 +647,39 @@ _yargs.default.command('$0 [name]', 'create a react native library', args, creat
672
647
  // don't pass kebab-case args to handler.
673
648
  'strip-dashed': true
674
649
  }).strict().argv;
650
+
651
+ /**
652
+ * Makes sure the answers are in expected form and ends the process with error if they are not
653
+ */
654
+ function assertOptions(questions, answers) {
655
+ for (const [key, value] of Object.entries(answers)) {
656
+ if (value == null) {
657
+ continue;
658
+ }
659
+ const question = questions.find(q => q.name === key);
660
+ if (question == null) {
661
+ continue;
662
+ }
663
+ let valid = question.validate ? question.validate(String(value)) : true;
664
+
665
+ // We also need to guard against invalid choices
666
+ // If we don't already have a validation message to provide a better error
667
+ if (typeof valid !== 'string' && 'choices' in question) {
668
+ const choices = typeof question.choices === 'function' ? question.choices(undefined,
669
+ // @ts-expect-error: it complains about optional values, but it should be fine
670
+ answers, question) : question.choices;
671
+ if (choices && !choices.some(choice => choice.value === value)) {
672
+ valid = `Supported values are - ${choices.map(c => _kleur.default.green(c.value))}`;
673
+ }
674
+ }
675
+ if (valid !== true) {
676
+ let message = `Invalid value ${_kleur.default.red(String(value))} passed for ${_kleur.default.blue(key)}`;
677
+ if (typeof valid === 'string') {
678
+ message += `: ${valid}`;
679
+ }
680
+ console.log(message);
681
+ process.exit(1);
682
+ }
683
+ }
684
+ }
675
685
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_path","_interopRequireDefault","require","_fsExtra","_ejs","_dedent","_kleur","_yargs","_ora","_nodeAssert","_validateNpmPackageName","_githubUsername","_prompts","_generateExampleApp","_spawn","_package","_addCodegenBuildScript","e","__esModule","default","FALLBACK_BOB_VERSION","BINARIES","COMMON_FILES","path","resolve","__dirname","COMMON_EXAMPLE_FILES","COMMON_LOCAL_FILES","JS_FILES","EXPO_FILES","CPP_FILES","NATIVE_COMMON_FILES","NATIVE_COMMON_EXAMPLE_FILES","NATIVE_FILES","module_legacy","module_new","module_mixed","view_legacy","view_mixed","view_new","OBJC_FILES","module_common","KOTLIN_FILES","SWIFT_FILES","LANGUAGE_CHOICES","title","value","types","EXAMPLE_CHOICES","description","disabled","process","env","CRNL_ENABLE_TEST_APP","filter","choice","NEWARCH_DESCRIPTION","BACKCOMPAT_DESCRIPTION","TYPE_CHOICES","args","type","choices","map","create","_argv","_","$0","argv","bobVersionPromise","spawn","local","hasPackageJson","fs","pathExists","join","cwd","answers","prompts","name","message","initial","folder","includes","validate","input","pathExistsSync","console","log","kleur","blue","exit","error","code","email","basename","questions","validateNpmPackage","validForNewPackages","test","undefined","Boolean","previous","username","githubUsername","authorUrl","slug","replace","values","push","key","Object","entries","question","find","q","valid","String","some","c","green","red","Array","isArray","length","prev","prompt","result","authorName","authorEmail","repoUrl","languages","example","reactNativeVersion","bobVersion","Promise","race","setTimeout","moduleType","startsWith","arch","project","namespace","split","toLowerCase","pack","options","bob","version","charAt","toUpperCase","$1","slice","package","package_dir","package_cpp","identifier","native","cpp","swift","view","module","author","url","repo","year","Date","getFullYear","copyDir","source","dest","mkdirp","files","readdir","f","target","ejs","render","openDelimiter","closeDelimiter","file","stats","stat","isDirectory","r","content","readFile","writeFile","copyFile","cyan","warn","yellow","spinner","ora","start","text","generateExampleApp","templateType","remove","rootPackageJson","readJson","examplePackageJson","readJSON","dependencies","react","devDependencies","exampleCommunityCLIVersion","assert","addCodegenBuildScript","ignoredAnswers","libraryMetadata","fromEntries","answer","writeJson","spaces","isInGitRepo","succeed","relative","linked","packageManager","packageJsonPath","packageJson","isReactNativeProject","writeJSON","dedent","magenta","bold","gray","platforms","ios","color","android","web","script","yargs","command","demandCommand","recommendCommands","fail","parserConfiguration","strict"],"sources":["../src/index.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport ejs from 'ejs';\nimport dedent from 'dedent';\nimport kleur from 'kleur';\nimport yargs from 'yargs';\nimport ora from 'ora';\nimport assert from 'node:assert';\nimport validateNpmPackage from 'validate-npm-package-name';\nimport githubUsername from 'github-username';\nimport prompts, { type PromptObject } from './utils/prompts';\nimport generateExampleApp, {\n type ExampleType,\n} from './utils/generateExampleApp';\nimport { spawn } from './utils/spawn';\nimport { version } from '../package.json';\nimport { addCodegenBuildScript } from './utils/addCodegenBuildScript';\n\nconst FALLBACK_BOB_VERSION = '0.29.0';\n\nconst BINARIES = [\n /(gradlew|\\.(jar|keystore|png|jpg|gif))$/,\n /\\$\\.yarn(?![a-z])/,\n];\n\nconst COMMON_FILES = path.resolve(__dirname, '../templates/common');\nconst COMMON_EXAMPLE_FILES = path.resolve(\n __dirname,\n '../templates/common-example'\n);\nconst COMMON_LOCAL_FILES = path.resolve(__dirname, '../templates/common-local');\nconst JS_FILES = path.resolve(__dirname, '../templates/js-library');\nconst EXPO_FILES = path.resolve(__dirname, '../templates/expo-library');\nconst CPP_FILES = path.resolve(__dirname, '../templates/cpp-library');\nconst NATIVE_COMMON_FILES = path.resolve(\n __dirname,\n '../templates/native-common'\n);\nconst NATIVE_COMMON_EXAMPLE_FILES = path.resolve(\n __dirname,\n '../templates/native-common-example'\n);\n\nconst NATIVE_FILES = {\n module_legacy: path.resolve(__dirname, '../templates/native-library-legacy'),\n module_new: path.resolve(__dirname, '../templates/native-library-new'),\n module_mixed: path.resolve(__dirname, '../templates/native-library-mixed'),\n view_legacy: path.resolve(__dirname, '../templates/native-view-legacy'),\n view_mixed: path.resolve(__dirname, '../templates/native-view-mixed'),\n view_new: path.resolve(__dirname, '../templates/native-view-new'),\n} as const;\n\nconst OBJC_FILES = {\n module_common: path.resolve(__dirname, '../templates/objc-library'),\n view_legacy: path.resolve(__dirname, '../templates/objc-view-legacy'),\n view_mixed: path.resolve(__dirname, '../templates/objc-view-mixed'),\n view_new: path.resolve(__dirname, '../templates/objc-view-new'),\n} as const;\n\nconst KOTLIN_FILES = {\n module_legacy: path.resolve(__dirname, '../templates/kotlin-library-legacy'),\n module_new: path.resolve(__dirname, '../templates/kotlin-library-new'),\n module_mixed: path.resolve(__dirname, '../templates/kotlin-library-mixed'),\n view_legacy: path.resolve(__dirname, '../templates/kotlin-view-legacy'),\n view_mixed: path.resolve(__dirname, '../templates/kotlin-view-mixed'),\n view_new: path.resolve(__dirname, '../templates/kotlin-view-new'),\n} as const;\n\nconst SWIFT_FILES = {\n module_legacy: path.resolve(__dirname, '../templates/swift-library-legacy'),\n view_legacy: path.resolve(__dirname, '../templates/swift-view-legacy'),\n} as const;\n\ntype ArgName =\n | 'slug'\n | 'description'\n | 'author-name'\n | 'author-email'\n | 'author-url'\n | 'repo-url'\n | 'languages'\n | 'type'\n | 'local'\n | 'example'\n | 'react-native-version';\n\ntype ProjectLanguages = 'kotlin-objc' | 'kotlin-swift' | 'cpp' | 'js';\n\ntype ProjectType =\n | 'module-legacy'\n | 'module-new'\n | 'module-mixed'\n | 'view-mixed'\n | 'view-new'\n | 'view-legacy'\n | 'library';\n\ntype Answers = {\n name: string;\n slug: string;\n description: string;\n authorName: string;\n authorEmail: string;\n authorUrl: string;\n repoUrl: string;\n languages: ProjectLanguages;\n type?: ProjectType;\n example?: ExampleType;\n reactNativeVersion?: string;\n local?: boolean;\n};\n\nconst LANGUAGE_CHOICES: {\n title: string;\n value: ProjectLanguages;\n types: ProjectType[];\n}[] = [\n {\n title: 'Kotlin & Objective-C',\n value: 'kotlin-objc',\n types: [\n 'module-legacy',\n 'module-new',\n 'module-mixed',\n 'view-mixed',\n 'view-new',\n 'view-legacy',\n ],\n },\n {\n title: 'Kotlin & Swift',\n value: 'kotlin-swift',\n types: ['module-legacy', 'view-legacy'],\n },\n {\n title: 'C++ for Android & iOS',\n value: 'cpp',\n types: ['module-legacy', 'module-mixed', 'module-new'],\n },\n {\n title: 'JavaScript for Android, iOS & Web',\n value: 'js',\n types: ['library'],\n },\n];\n\nconst EXAMPLE_CHOICES = (\n [\n {\n title: 'Vanilla',\n value: 'vanilla',\n description: \"provides access to app's native code\",\n disabled: false,\n },\n {\n title: 'Test app',\n value: 'test-app',\n description: \"app's native code is abstracted away\",\n // The test app is disabled for now until proper\n // Codegen spec shipping is implemented\n disabled: !process.env.CRNL_ENABLE_TEST_APP,\n },\n {\n title: 'Expo',\n value: 'expo',\n description: 'managed expo project with web support',\n disabled: false,\n },\n ] as const\n).filter((choice) => !choice.disabled);\n\nconst NEWARCH_DESCRIPTION = 'requires new arch (experimental)';\nconst BACKCOMPAT_DESCRIPTION = 'supports new arch (experimental)';\n\nconst TYPE_CHOICES: {\n title: string;\n value: ProjectType;\n description: string;\n}[] = [\n {\n title: 'JavaScript library',\n value: 'library',\n description: 'supports Expo Go and Web',\n },\n {\n title: 'Native module',\n value: 'module-legacy',\n description: 'bridge for native APIs to JS',\n },\n {\n title: 'Native view',\n value: 'view-legacy',\n description: 'bridge for native views to JS',\n },\n {\n title: 'Turbo module with backward compat',\n value: 'module-mixed',\n description: BACKCOMPAT_DESCRIPTION,\n },\n {\n title: 'Turbo module',\n value: 'module-new',\n description: NEWARCH_DESCRIPTION,\n },\n {\n title: 'Fabric view with backward compat',\n value: 'view-mixed',\n description: BACKCOMPAT_DESCRIPTION,\n },\n {\n title: 'Fabric view',\n value: 'view-new',\n description: NEWARCH_DESCRIPTION,\n },\n];\n\nconst args: Record<ArgName, yargs.Options> = {\n 'slug': {\n description: 'Name of the npm package',\n type: 'string',\n },\n 'description': {\n description: 'Description of the npm package',\n type: 'string',\n },\n 'author-name': {\n description: 'Name of the package author',\n type: 'string',\n },\n 'author-email': {\n description: 'Email address of the package author',\n type: 'string',\n },\n 'author-url': {\n description: 'URL for the package author',\n type: 'string',\n },\n 'repo-url': {\n description: 'URL for the repository',\n type: 'string',\n },\n 'languages': {\n description: 'Languages you want to use',\n choices: LANGUAGE_CHOICES.map(({ value }) => value),\n },\n 'type': {\n description: 'Type of library you want to develop',\n choices: TYPE_CHOICES.map(({ value }) => value),\n },\n 'react-native-version': {\n description: 'Version of React Native to use, uses latest if not specified',\n type: 'string',\n },\n 'local': {\n description: 'Whether to create a local library',\n type: 'boolean',\n },\n 'example': {\n description: 'Type of the example app to create',\n type: 'string',\n choices: EXAMPLE_CHOICES.map(({ value }) => value),\n },\n};\n\n// FIXME: fix the type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function create(_argv: yargs.Arguments<any>) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _, $0, ...argv } = _argv;\n\n // Prefetch bob version in background while asking questions\n const bobVersionPromise = spawn('npm', [\n 'view',\n 'react-native-builder-bob',\n 'dist-tags.latest',\n ]);\n\n let local = false;\n\n if (typeof argv.local === 'boolean') {\n local = argv.local;\n } else {\n const hasPackageJson = await fs.pathExists(\n path.join(process.cwd(), 'package.json')\n );\n\n if (hasPackageJson) {\n // If we're under a project with package.json, ask the user if they want to create a local library\n const answers = await prompts({\n type: 'confirm',\n name: 'local',\n message: `Looks like you're under a project folder. Do you want to create a local library?`,\n initial: true,\n });\n\n local = answers.local;\n }\n }\n\n let folder;\n\n if (argv.name && !local) {\n folder = path.join(process.cwd(), argv.name);\n } else {\n const answers = await prompts({\n type: 'text',\n name: 'folder',\n message: `Where do you want to create the library?`,\n initial:\n local && argv.name && !argv.name.includes('/')\n ? `modules/${argv.name}`\n : argv.name,\n validate: (input) => {\n if (!input) {\n return 'Cannot be empty';\n }\n\n if (fs.pathExistsSync(path.join(process.cwd(), input))) {\n return 'Folder already exists';\n }\n\n return true;\n },\n });\n\n folder = path.join(process.cwd(), answers.folder);\n }\n\n if (await fs.pathExists(folder)) {\n console.log(\n `A folder already exists at ${kleur.blue(\n folder\n )}! Please specify another folder name or delete the existing one.`\n );\n\n process.exit(1);\n }\n\n try {\n await spawn('npx', ['--help']);\n } catch (error) {\n // @ts-expect-error: TS doesn't know about `code`\n if (error != null && error.code === 'ENOENT') {\n console.log(\n `Couldn't find ${kleur.blue(\n 'npx'\n )}! Please install it by running ${kleur.blue('npm install -g npx')}`\n );\n\n process.exit(1);\n } else {\n throw error;\n }\n }\n\n let name, email;\n\n try {\n name = await spawn('git', ['config', '--get', 'user.name']);\n email = await spawn('git', ['config', '--get', 'user.email']);\n } catch (e) {\n // Ignore error\n }\n\n const basename = path.basename(folder);\n\n const questions: (Omit<PromptObject<keyof Answers>, 'validate' | 'name'> & {\n validate?: (value: string) => boolean | string;\n name: string;\n })[] = [\n {\n type: 'text',\n name: 'slug',\n message: 'What is the name of the npm package?',\n initial: validateNpmPackage(basename).validForNewPackages\n ? /^(@|react-native)/.test(basename)\n ? basename\n : `react-native-${basename}`\n : undefined,\n validate: (input) =>\n validateNpmPackage(input).validForNewPackages ||\n 'Must be a valid npm package name',\n },\n {\n type: 'text',\n name: 'description',\n message: 'What is the description for the package?',\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: local ? null : 'text',\n name: 'authorName',\n message: 'What is the name of package author?',\n initial: name,\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: local ? null : 'text',\n name: 'authorEmail',\n message: 'What is the email address for the package author?',\n initial: email,\n validate: (input) =>\n /^\\S+@\\S+$/.test(input) || 'Must be a valid email address',\n },\n {\n type: local ? null : 'text',\n name: 'authorUrl',\n message: 'What is the URL for the package author?',\n // @ts-expect-error this is supported, but types are wrong\n initial: async (previous: string) => {\n try {\n const username = await githubUsername(previous);\n\n return `https://github.com/${username}`;\n } catch (e) {\n // Ignore error\n }\n\n return undefined;\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: local ? null : 'text',\n name: 'repoUrl',\n message: 'What is the URL for the repository?',\n initial: (_: string, answers: Answers) => {\n if (/^https?:\\/\\/github.com\\/[^/]+/.test(answers.authorUrl)) {\n return `${answers.authorUrl}/${answers.slug\n .replace(/^@/, '')\n .replace(/\\//g, '-')}`;\n }\n\n return '';\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: 'select',\n name: 'type',\n message: 'What type of library do you want to develop?',\n choices: TYPE_CHOICES,\n },\n {\n type: 'select',\n name: 'languages',\n message: 'Which languages do you want to use?',\n choices: (_, values) => {\n return LANGUAGE_CHOICES.filter((choice) => {\n if (choice.types) {\n return choice.types.includes(values.type);\n }\n\n return true;\n });\n },\n },\n ];\n\n if (!local) {\n questions.push({\n type: 'select',\n name: 'example',\n message: 'What type of example app do you want to create?',\n choices: (_, values) => {\n return EXAMPLE_CHOICES.filter((choice) => {\n if (values.type) {\n return values.type === 'library'\n ? choice.value === 'expo'\n : choice.value !== 'expo';\n }\n\n return true;\n });\n },\n });\n }\n\n const validate = (answers: Answers) => {\n for (const [key, value] of Object.entries(answers)) {\n if (value == null) {\n continue;\n }\n\n const question = questions.find((q) => q.name === key);\n\n if (question == null) {\n continue;\n }\n\n let valid = question.validate ? question.validate(String(value)) : true;\n\n // We also need to guard against invalid choices\n // If we don't already have a validation message to provide a better error\n if (typeof valid !== 'string' && 'choices' in question) {\n const choices =\n typeof question.choices === 'function'\n ? question.choices(\n undefined,\n // @ts-expect-error: it complains about optional values, but it should be fine\n answers,\n question\n )\n : question.choices;\n\n if (choices && !choices.some((choice) => choice.value === value)) {\n valid = `Supported values are - ${choices.map((c) =>\n kleur.green(c.value)\n )}`;\n }\n }\n\n if (valid !== true) {\n let message = `Invalid value ${kleur.red(\n String(value)\n )} passed for ${kleur.blue(key)}`;\n\n if (typeof valid === 'string') {\n message += `: ${valid}`;\n }\n\n console.log(message);\n\n process.exit(1);\n }\n }\n };\n\n // Validate arguments passed to the CLI\n validate(argv);\n\n const answers = {\n ...argv,\n local,\n ...(await prompts(\n questions\n .filter((question) => {\n // Skip questions which are passed as parameter and pass validation\n if (\n argv[question.name] != null &&\n question.validate?.(argv[question.name]) !== false\n ) {\n return false;\n }\n\n // Skip questions with a single choice\n if (\n Array.isArray(question.choices) &&\n question.choices.length === 1\n ) {\n return false;\n }\n\n return true;\n })\n .map((question) => {\n const { type, choices } = question;\n\n // Skip dynamic questions with a single choice\n if (type === 'select' && typeof choices === 'function') {\n return {\n ...question,\n type: (prev, values, prompt) => {\n const result = choices(prev, { ...argv, ...values }, prompt);\n\n if (result && result.length === 1) {\n return null;\n }\n\n return type;\n },\n };\n }\n\n return question;\n })\n )),\n } as Answers;\n\n validate(answers);\n\n const {\n slug,\n description,\n authorName,\n authorEmail,\n authorUrl,\n repoUrl,\n type = 'module-mixed',\n languages = type === 'library' ? 'js' : 'kotlin-objc',\n example = local ? 'none' : type === 'library' ? 'expo' : 'vanilla',\n reactNativeVersion,\n } = answers;\n\n // Get latest version of Bob from NPM\n let bobVersion: string;\n\n try {\n bobVersion = await Promise.race([\n new Promise<string>((resolve) => {\n setTimeout(() => resolve(FALLBACK_BOB_VERSION), 1000);\n }),\n bobVersionPromise,\n ]);\n } catch (e) {\n // Fallback to a known version if we couldn't fetch\n bobVersion = FALLBACK_BOB_VERSION;\n }\n\n const moduleType = type.startsWith('view-') ? 'view' : 'module';\n const arch =\n type === 'module-new' || type === 'view-new'\n ? 'new'\n : type === 'module-mixed' || type === 'view-mixed'\n ? 'mixed'\n : 'legacy';\n\n const project = slug.replace(/^(react-native-|@[^/]+\\/)/, '');\n\n let namespace: string | undefined;\n\n if (slug.startsWith('@') && slug.includes('/')) {\n namespace = slug\n .split('/')[0]\n ?.replace(/[^a-z0-9]/g, '')\n .toLowerCase();\n }\n\n // Create a package identifier with specified namespace when possible\n const pack = `${namespace ? `${namespace}.` : ''}${project\n .replace(/[^a-z0-9]/g, '')\n .toLowerCase()}`;\n\n const options = {\n bob: {\n version: bobVersion || FALLBACK_BOB_VERSION,\n },\n project: {\n slug,\n description,\n name:\n /^[A-Z]/.test(basename) && /^[a-z0-9]+$/i.test(basename)\n ? // If the project name is already in PascalCase, use it as-is\n basename\n : // Otherwise, convert it to PascalCase and remove any non-alphanumeric characters\n `${project.charAt(0).toUpperCase()}${project\n .replace(/[^a-z0-9](\\w)/g, (_, $1) => $1.toUpperCase())\n .slice(1)}`,\n package: pack,\n package_dir: pack.replace(/\\./g, '/'),\n package_cpp: pack.replace(/\\./g, '_'),\n identifier: slug.replace(/[^a-z0-9]+/g, '-').replace(/^-/, ''),\n native: languages !== 'js',\n arch,\n cpp: languages === 'cpp',\n swift: languages === 'kotlin-swift',\n view: moduleType === 'view',\n module: moduleType === 'module',\n },\n author: {\n name: authorName,\n email: authorEmail,\n url: authorUrl,\n },\n repo: repoUrl,\n example,\n year: new Date().getFullYear(),\n };\n\n const copyDir = async (source: string, dest: string) => {\n await fs.mkdirp(dest);\n\n const files = await fs.readdir(source);\n\n for (const f of files) {\n const target = path.join(\n dest,\n ejs.render(f.replace(/^\\$/, ''), options, {\n openDelimiter: '{',\n closeDelimiter: '}',\n })\n );\n\n const file = path.join(source, f);\n const stats = await fs.stat(file);\n\n if (stats.isDirectory()) {\n await copyDir(file, target);\n } else if (!BINARIES.some((r) => r.test(file))) {\n const content = await fs.readFile(file, 'utf8');\n\n await fs.writeFile(target, ejs.render(content, options));\n } else {\n await fs.copyFile(file, target);\n }\n }\n };\n\n await fs.mkdirp(folder);\n\n if (reactNativeVersion != null) {\n if (example === 'vanilla') {\n console.log(\n `${kleur.blue('ℹ')} Using ${kleur.cyan(\n `react-native@${reactNativeVersion}`\n )} for the example`\n );\n } else {\n console.warn(\n `${kleur.yellow(\n '⚠'\n )} Ignoring --react-native-version for unsupported example type: ${kleur.cyan(\n example\n )}`\n );\n }\n }\n\n const spinner = ora().start();\n\n if (example !== 'none') {\n spinner.text = 'Generating example app';\n\n await generateExampleApp({\n type: example,\n dest: folder,\n arch,\n project: options.project,\n bobVersion,\n reactNativeVersion,\n });\n }\n\n spinner.text = 'Copying files';\n\n if (local) {\n await copyDir(COMMON_LOCAL_FILES, folder);\n } else {\n await copyDir(COMMON_FILES, folder);\n\n if (example !== 'none') {\n await copyDir(COMMON_EXAMPLE_FILES, folder);\n }\n }\n\n if (languages === 'js') {\n await copyDir(JS_FILES, folder);\n await copyDir(EXPO_FILES, folder);\n } else {\n await copyDir(NATIVE_COMMON_FILES, folder);\n\n if (example !== 'none') {\n await copyDir(NATIVE_COMMON_EXAMPLE_FILES, folder);\n }\n\n if (moduleType === 'module') {\n await copyDir(NATIVE_FILES[`${moduleType}_${arch}`], folder);\n } else {\n await copyDir(NATIVE_FILES[`${moduleType}_${arch}`], folder);\n }\n\n if (options.project.swift) {\n await copyDir(SWIFT_FILES[`${moduleType}_legacy`], folder);\n } else {\n if (moduleType === 'module') {\n await copyDir(OBJC_FILES[`${moduleType}_common`], folder);\n } else {\n await copyDir(OBJC_FILES[`view_${arch}`], folder);\n }\n }\n\n const templateType = `${moduleType}_${arch}` as const;\n\n await copyDir(KOTLIN_FILES[templateType], folder);\n\n if (options.project.cpp) {\n await copyDir(CPP_FILES, folder);\n await fs.remove(path.join(folder, 'ios', `${options.project.name}.m`));\n }\n }\n\n const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));\n\n if (example !== 'none') {\n // Set `react` and `react-native` versions of root `package.json` from example `package.json`\n const examplePackageJson = await fs.readJSON(\n path.join(folder, 'example', 'package.json')\n );\n\n if (\n examplePackageJson.dependencies?.react &&\n examplePackageJson.dependencies?.['react-native']\n ) {\n rootPackageJson.devDependencies = rootPackageJson.devDependencies || {};\n rootPackageJson.devDependencies.react =\n examplePackageJson.dependencies.react;\n rootPackageJson.devDependencies['react-native'] =\n examplePackageJson.dependencies['react-native'];\n }\n\n if (example === 'vanilla') {\n // React Native doesn't provide the community CLI as a dependency.\n // We have to get read the version from the example app and put to the root package json\n const exampleCommunityCLIVersion =\n examplePackageJson.devDependencies['@react-native-community/cli'];\n assert(\n exampleCommunityCLIVersion !== undefined,\n \"The generated example app doesn't have community CLI installed\"\n );\n\n rootPackageJson.devDependencies = rootPackageJson.devDependencies || {};\n rootPackageJson.devDependencies['@react-native-community/cli'] =\n exampleCommunityCLIVersion;\n\n if (arch !== 'legacy') {\n addCodegenBuildScript(folder);\n }\n }\n }\n\n // Some of the passed args can already be derived from the generated package.json file.\n const ignoredAnswers: (keyof Answers)[] = [\n 'name',\n 'slug',\n 'description',\n 'authorName',\n 'authorEmail',\n 'authorUrl',\n 'repoUrl',\n 'example',\n 'reactNativeVersion',\n 'local',\n ];\n\n type AnswerEntries<T extends keyof Answers = keyof Answers> = [\n T,\n Answers[T],\n ][];\n\n const libraryMetadata = Object.fromEntries(\n (Object.entries(answers) as AnswerEntries).filter(\n ([answer]) => !ignoredAnswers.includes(answer)\n )\n );\n\n libraryMetadata.version = version;\n rootPackageJson['create-react-native-library'] = libraryMetadata;\n\n await fs.writeJson(path.join(folder, 'package.json'), rootPackageJson, {\n spaces: 2,\n });\n\n if (!local) {\n let isInGitRepo = false;\n\n try {\n isInGitRepo =\n (await spawn('git', ['rev-parse', '--is-inside-work-tree'])) === 'true';\n } catch (e) {\n // Ignore error\n }\n\n if (!isInGitRepo) {\n try {\n await spawn('git', ['init'], { cwd: folder });\n await spawn('git', ['branch', '-M', 'main'], { cwd: folder });\n await spawn('git', ['add', '.'], { cwd: folder });\n await spawn('git', ['commit', '-m', 'chore: initial commit'], {\n cwd: folder,\n });\n } catch (e) {\n // Ignore error\n }\n }\n }\n\n spinner.succeed(\n `Project created successfully at ${kleur.yellow(\n path.relative(process.cwd(), folder)\n )}!\\n`\n );\n\n if (local) {\n let linked;\n\n const packageManager = (await fs.pathExists(\n path.join(process.cwd(), 'yarn.lock')\n ))\n ? 'yarn'\n : 'npm';\n\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n\n if (await fs.pathExists(packageJsonPath)) {\n const packageJson = await fs.readJSON(packageJsonPath);\n const isReactNativeProject = Boolean(\n packageJson.dependencies?.['react-native']\n );\n\n if (isReactNativeProject) {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.dependencies[slug] =\n packageManager === 'yarn'\n ? `link:./${path.relative(process.cwd(), folder)}`\n : `file:./${path.relative(process.cwd(), folder)}`;\n\n await fs.writeJSON(packageJsonPath, packageJson, {\n spaces: 2,\n });\n\n linked = true;\n }\n }\n\n console.log(\n dedent(`\n ${kleur.magenta(\n `${kleur.bold('Get started')} with the project`\n )}${kleur.gray(':')}\n\n ${\n (linked\n ? `- Run ${kleur.blue(\n `${packageManager} install`\n )} to link the library\\n`\n : `- Link the library at ${kleur.blue(\n path.relative(process.cwd(), folder)\n )} based on your project setup'\\n`) +\n `- Run ${kleur.blue(\n 'pod install --project-directory=ios'\n )} to install dependencies with CocoaPods\\n` +\n `- Run ${kleur.blue('npx react-native run-android')} or ${kleur.blue(\n 'npx react-native run-ios'\n )} to build and run the app\\n` +\n `- Import from ${kleur.blue(slug)} and use it in your app.`\n }\n\n ${kleur.yellow(`Good luck!`)}\n `)\n );\n } else {\n const platforms = {\n ios: { name: 'iOS', color: 'cyan' },\n android: { name: 'Android', color: 'green' },\n ...(example === 'expo'\n ? ({ web: { name: 'Web', color: 'blue' } } as const)\n : null),\n } as const;\n\n console.log(\n dedent(`\n ${kleur.magenta(\n `${kleur.bold('Get started')} with the project`\n )}${kleur.gray(':')}\n\n ${kleur.gray('$')} yarn\n ${Object.entries(platforms)\n .map(\n ([script, { name, color }]) => `\n ${kleur[color](`Run the example app on ${kleur.bold(name)}`)}${kleur.gray(\n ':'\n )}\n\n ${kleur.gray('$')} yarn example ${script}`\n )\n .join('\\n')}\n\n ${kleur.yellow(\n `See ${kleur.bold('CONTRIBUTING.md')} for more details. Good luck!`\n )}\n `)\n );\n }\n}\n\nyargs\n .command('$0 [name]', 'create a react native library', args, create)\n .demandCommand()\n .recommendCommands()\n .fail((message, error) => {\n console.log('\\n');\n\n if (error) {\n console.log(kleur.red(error.message));\n throw error;\n }\n\n if (message) {\n console.log(kleur.red(message));\n } else {\n console.log(\n kleur.red(`An unknown error occurred. See '--help' for usage guide.`)\n );\n }\n\n process.exit(1);\n })\n .parserConfiguration({\n // don't pass kebab-case args to handler.\n 'strip-dashed': true,\n })\n .strict().argv;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_path","_interopRequireDefault","require","_fsExtra","_ejs","_dedent","_kleur","_yargs","_ora","_nodeAssert","_validateNpmPackageName","_githubUsername","_prompts","_generateExampleApp","_spawn","_package","_addCodegenBuildScript","e","__esModule","default","FALLBACK_BOB_VERSION","BINARIES","COMMON_FILES","path","resolve","__dirname","COMMON_EXAMPLE_FILES","COMMON_LOCAL_FILES","JS_FILES","EXPO_FILES","CPP_FILES","NATIVE_COMMON_FILES","NATIVE_COMMON_EXAMPLE_FILES","NATIVE_FILES","module_legacy","module_new","module_mixed","view_legacy","view_mixed","view_new","OBJC_FILES","module_common","KOTLIN_FILES","SWIFT_FILES","LANGUAGE_CHOICES","title","value","types","EXAMPLE_CHOICES","description","disabled","process","env","CRNL_ENABLE_TEST_APP","filter","choice","NEWARCH_DESCRIPTION","BACKCOMPAT_DESCRIPTION","TYPE_CHOICES","args","type","choices","map","create","_argv","_","$0","argv","bobVersionPromise","spawn","local","hasPackageJson","fs","pathExists","join","cwd","answers","prompts","name","message","initial","folder","includes","validate","input","pathExistsSync","console","log","kleur","blue","exit","error","code","email","basename","questions","validateNpmPackage","validForNewPackages","test","undefined","Boolean","previous","username","githubUsername","authorUrl","slug","replace","values","push","assertOptions","singleChoiceAnswers","finalQuestions","question","Array","isArray","length","onlyChoice","prev","prompt","dynamicChoices","promptAnswers","authorName","authorEmail","repoUrl","languages","example","reactNativeVersion","bobVersion","Promise","race","setTimeout","moduleType","startsWith","arch","project","namespace","split","toLowerCase","pack","options","bob","version","charAt","toUpperCase","$1","slice","package","package_dir","package_cpp","identifier","native","cpp","swift","view","module","author","url","repo","year","Date","getFullYear","copyDir","source","dest","mkdirp","files","readdir","f","target","ejs","render","openDelimiter","closeDelimiter","file","stats","stat","isDirectory","some","r","content","readFile","writeFile","copyFile","cyan","warn","yellow","spinner","ora","start","text","generateExampleApp","templateType","remove","rootPackageJson","readJson","examplePackageJson","readJSON","dependencies","react","devDependencies","exampleCommunityCLIVersion","assert","addCodegenBuildScript","ignoredAnswers","libraryMetadata","Object","fromEntries","entries","answer","writeJson","spaces","isInGitRepo","succeed","relative","linked","packageManager","packageJsonPath","packageJson","isReactNativeProject","writeJSON","dedent","magenta","bold","gray","platforms","ios","color","android","web","script","yargs","command","demandCommand","recommendCommands","fail","red","parserConfiguration","strict","key","find","q","valid","String","c","green"],"sources":["../src/index.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport ejs from 'ejs';\nimport dedent from 'dedent';\nimport kleur from 'kleur';\nimport yargs from 'yargs';\nimport ora from 'ora';\nimport assert from 'node:assert';\nimport validateNpmPackage from 'validate-npm-package-name';\nimport githubUsername from 'github-username';\nimport prompts, { type PromptObject } from './utils/prompts';\nimport generateExampleApp, {\n type ExampleType,\n} from './utils/generateExampleApp';\nimport { spawn } from './utils/spawn';\nimport { version } from '../package.json';\nimport { addCodegenBuildScript } from './utils/addCodegenBuildScript';\n\nconst FALLBACK_BOB_VERSION = '0.29.0';\n\nconst BINARIES = [\n /(gradlew|\\.(jar|keystore|png|jpg|gif))$/,\n /\\$\\.yarn(?![a-z])/,\n];\n\nconst COMMON_FILES = path.resolve(__dirname, '../templates/common');\nconst COMMON_EXAMPLE_FILES = path.resolve(\n __dirname,\n '../templates/common-example'\n);\nconst COMMON_LOCAL_FILES = path.resolve(__dirname, '../templates/common-local');\nconst JS_FILES = path.resolve(__dirname, '../templates/js-library');\nconst EXPO_FILES = path.resolve(__dirname, '../templates/expo-library');\nconst CPP_FILES = path.resolve(__dirname, '../templates/cpp-library');\nconst NATIVE_COMMON_FILES = path.resolve(\n __dirname,\n '../templates/native-common'\n);\nconst NATIVE_COMMON_EXAMPLE_FILES = path.resolve(\n __dirname,\n '../templates/native-common-example'\n);\n\nconst NATIVE_FILES = {\n module_legacy: path.resolve(__dirname, '../templates/native-library-legacy'),\n module_new: path.resolve(__dirname, '../templates/native-library-new'),\n module_mixed: path.resolve(__dirname, '../templates/native-library-mixed'),\n view_legacy: path.resolve(__dirname, '../templates/native-view-legacy'),\n view_mixed: path.resolve(__dirname, '../templates/native-view-mixed'),\n view_new: path.resolve(__dirname, '../templates/native-view-new'),\n} as const;\n\nconst OBJC_FILES = {\n module_common: path.resolve(__dirname, '../templates/objc-library'),\n view_legacy: path.resolve(__dirname, '../templates/objc-view-legacy'),\n view_mixed: path.resolve(__dirname, '../templates/objc-view-mixed'),\n view_new: path.resolve(__dirname, '../templates/objc-view-new'),\n} as const;\n\nconst KOTLIN_FILES = {\n module_legacy: path.resolve(__dirname, '../templates/kotlin-library-legacy'),\n module_new: path.resolve(__dirname, '../templates/kotlin-library-new'),\n module_mixed: path.resolve(__dirname, '../templates/kotlin-library-mixed'),\n view_legacy: path.resolve(__dirname, '../templates/kotlin-view-legacy'),\n view_mixed: path.resolve(__dirname, '../templates/kotlin-view-mixed'),\n view_new: path.resolve(__dirname, '../templates/kotlin-view-new'),\n} as const;\n\nconst SWIFT_FILES = {\n module_legacy: path.resolve(__dirname, '../templates/swift-library-legacy'),\n view_legacy: path.resolve(__dirname, '../templates/swift-view-legacy'),\n} as const;\n\ntype ArgName =\n | 'slug'\n | 'description'\n | 'author-name'\n | 'author-email'\n | 'author-url'\n | 'repo-url'\n | 'languages'\n | 'type'\n | 'local'\n | 'example'\n | 'react-native-version';\n\ntype ProjectLanguages = 'kotlin-objc' | 'kotlin-swift' | 'cpp' | 'js';\n\ntype ProjectType =\n | 'module-legacy'\n | 'module-new'\n | 'module-mixed'\n | 'view-mixed'\n | 'view-new'\n | 'view-legacy'\n | 'library';\n\ntype Answers = {\n name: string;\n slug: string;\n description: string;\n authorName: string;\n authorEmail: string;\n authorUrl: string;\n repoUrl: string;\n languages: ProjectLanguages;\n type?: ProjectType;\n example?: ExampleType;\n reactNativeVersion?: string;\n local?: boolean;\n};\n\nconst LANGUAGE_CHOICES: {\n title: string;\n value: ProjectLanguages;\n types: ProjectType[];\n}[] = [\n {\n title: 'Kotlin & Objective-C',\n value: 'kotlin-objc',\n types: [\n 'module-legacy',\n 'module-new',\n 'module-mixed',\n 'view-mixed',\n 'view-new',\n 'view-legacy',\n ],\n },\n {\n title: 'Kotlin & Swift',\n value: 'kotlin-swift',\n types: ['module-legacy', 'view-legacy'],\n },\n {\n title: 'C++ for Android & iOS',\n value: 'cpp',\n types: ['module-legacy', 'module-mixed', 'module-new'],\n },\n {\n title: 'JavaScript for Android, iOS & Web',\n value: 'js',\n types: ['library'],\n },\n];\n\nconst EXAMPLE_CHOICES = (\n [\n {\n title: 'Vanilla',\n value: 'vanilla',\n description: \"provides access to app's native code\",\n disabled: false,\n },\n {\n title: 'Test app',\n value: 'test-app',\n description: \"app's native code is abstracted away\",\n // The test app is disabled for now until proper\n // Codegen spec shipping is implemented\n disabled: !process.env.CRNL_ENABLE_TEST_APP,\n },\n {\n title: 'Expo',\n value: 'expo',\n description: 'managed expo project with web support',\n disabled: false,\n },\n ] as const\n).filter((choice) => !choice.disabled);\n\nconst NEWARCH_DESCRIPTION = 'requires new arch (experimental)';\nconst BACKCOMPAT_DESCRIPTION = 'supports new arch (experimental)';\n\nconst TYPE_CHOICES: {\n title: string;\n value: ProjectType;\n description: string;\n}[] = [\n {\n title: 'JavaScript library',\n value: 'library',\n description: 'supports Expo Go and Web',\n },\n {\n title: 'Native module',\n value: 'module-legacy',\n description: 'bridge for native APIs to JS',\n },\n {\n title: 'Native view',\n value: 'view-legacy',\n description: 'bridge for native views to JS',\n },\n {\n title: 'Turbo module with backward compat',\n value: 'module-mixed',\n description: BACKCOMPAT_DESCRIPTION,\n },\n {\n title: 'Turbo module',\n value: 'module-new',\n description: NEWARCH_DESCRIPTION,\n },\n {\n title: 'Fabric view with backward compat',\n value: 'view-mixed',\n description: BACKCOMPAT_DESCRIPTION,\n },\n {\n title: 'Fabric view',\n value: 'view-new',\n description: NEWARCH_DESCRIPTION,\n },\n];\n\ntype Question = Omit<PromptObject<keyof Answers>, 'validate' | 'name'> & {\n validate?: (value: string) => boolean | string;\n name: keyof Answers;\n};\n\nconst args: Record<ArgName, yargs.Options> = {\n 'slug': {\n description: 'Name of the npm package',\n type: 'string',\n },\n 'description': {\n description: 'Description of the npm package',\n type: 'string',\n },\n 'author-name': {\n description: 'Name of the package author',\n type: 'string',\n },\n 'author-email': {\n description: 'Email address of the package author',\n type: 'string',\n },\n 'author-url': {\n description: 'URL for the package author',\n type: 'string',\n },\n 'repo-url': {\n description: 'URL for the repository',\n type: 'string',\n },\n 'languages': {\n description: 'Languages you want to use',\n choices: LANGUAGE_CHOICES.map(({ value }) => value),\n },\n 'type': {\n description: 'Type of library you want to develop',\n choices: TYPE_CHOICES.map(({ value }) => value),\n },\n 'react-native-version': {\n description: 'Version of React Native to use, uses latest if not specified',\n type: 'string',\n },\n 'local': {\n description: 'Whether to create a local library',\n type: 'boolean',\n },\n 'example': {\n description: 'Type of the example app to create',\n type: 'string',\n choices: EXAMPLE_CHOICES.map(({ value }) => value),\n },\n};\n\n// FIXME: fix the type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function create(_argv: yargs.Arguments<any>) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _, $0, ...argv } = _argv;\n\n // Prefetch bob version in background while asking questions\n const bobVersionPromise = spawn('npm', [\n 'view',\n 'react-native-builder-bob',\n 'dist-tags.latest',\n ]);\n\n let local = false;\n\n if (typeof argv.local === 'boolean') {\n local = argv.local;\n } else {\n const hasPackageJson = await fs.pathExists(\n path.join(process.cwd(), 'package.json')\n );\n\n if (hasPackageJson) {\n // If we're under a project with package.json, ask the user if they want to create a local library\n const answers = await prompts({\n type: 'confirm',\n name: 'local',\n message: `Looks like you're under a project folder. Do you want to create a local library?`,\n initial: true,\n });\n\n local = answers.local;\n }\n }\n\n let folder;\n\n if (argv.name && !local) {\n folder = path.join(process.cwd(), argv.name);\n } else {\n const answers = await prompts({\n type: 'text',\n name: 'folder',\n message: `Where do you want to create the library?`,\n initial:\n local && argv.name && !argv.name.includes('/')\n ? `modules/${argv.name}`\n : argv.name,\n validate: (input) => {\n if (!input) {\n return 'Cannot be empty';\n }\n\n if (fs.pathExistsSync(path.join(process.cwd(), input))) {\n return 'Folder already exists';\n }\n\n return true;\n },\n });\n\n folder = path.join(process.cwd(), answers.folder);\n }\n\n if (await fs.pathExists(folder)) {\n console.log(\n `A folder already exists at ${kleur.blue(\n folder\n )}! Please specify another folder name or delete the existing one.`\n );\n\n process.exit(1);\n }\n\n try {\n await spawn('npx', ['--help']);\n } catch (error) {\n // @ts-expect-error: TS doesn't know about `code`\n if (error != null && error.code === 'ENOENT') {\n console.log(\n `Couldn't find ${kleur.blue(\n 'npx'\n )}! Please install it by running ${kleur.blue('npm install -g npx')}`\n );\n\n process.exit(1);\n } else {\n throw error;\n }\n }\n\n let name, email;\n\n try {\n name = await spawn('git', ['config', '--get', 'user.name']);\n email = await spawn('git', ['config', '--get', 'user.email']);\n } catch (e) {\n // Ignore error\n }\n\n const basename = path.basename(folder);\n\n const questions: Question[] = [\n {\n type: 'text',\n name: 'slug',\n message: 'What is the name of the npm package?',\n initial: validateNpmPackage(basename).validForNewPackages\n ? /^(@|react-native)/.test(basename)\n ? basename\n : `react-native-${basename}`\n : undefined,\n validate: (input) =>\n validateNpmPackage(input).validForNewPackages ||\n 'Must be a valid npm package name',\n },\n {\n type: 'text',\n name: 'description',\n message: 'What is the description for the package?',\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: local ? null : 'text',\n name: 'authorName',\n message: 'What is the name of package author?',\n initial: name,\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: local ? null : 'text',\n name: 'authorEmail',\n message: 'What is the email address for the package author?',\n initial: email,\n validate: (input) =>\n /^\\S+@\\S+$/.test(input) || 'Must be a valid email address',\n },\n {\n type: local ? null : 'text',\n name: 'authorUrl',\n message: 'What is the URL for the package author?',\n // @ts-expect-error this is supported, but types are wrong\n initial: async (previous: string) => {\n try {\n const username = await githubUsername(previous);\n\n return `https://github.com/${username}`;\n } catch (e) {\n // Ignore error\n }\n\n return undefined;\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: local ? null : 'text',\n name: 'repoUrl',\n message: 'What is the URL for the repository?',\n initial: (_: string, answers: Answers) => {\n if (/^https?:\\/\\/github.com\\/[^/]+/.test(answers.authorUrl)) {\n return `${answers.authorUrl}/${answers.slug\n .replace(/^@/, '')\n .replace(/\\//g, '-')}`;\n }\n\n return '';\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: 'select',\n name: 'type',\n message: 'What type of library do you want to develop?',\n choices: TYPE_CHOICES,\n },\n {\n type: 'select',\n name: 'languages',\n message: 'Which languages do you want to use?',\n choices: (_, values) => {\n return LANGUAGE_CHOICES.filter((choice) => {\n if (choice.types) {\n return choice.types.includes(values.type);\n }\n\n return true;\n });\n },\n },\n ];\n\n if (!local) {\n questions.push({\n type: 'select',\n name: 'example',\n message: 'What type of example app do you want to create?',\n choices: (_, values) => {\n return EXAMPLE_CHOICES.filter((choice) => {\n if (values.type) {\n return values.type === 'library'\n ? choice.value === 'expo'\n : choice.value !== 'expo';\n }\n\n return true;\n });\n },\n });\n }\n\n assertOptions(questions, argv);\n\n const singleChoiceAnswers: Partial<Answers> = {};\n const finalQuestions: Question[] = [];\n\n for (const question of questions) {\n // Skip questions which are passed as parameter and pass validation\n if (\n argv[question.name] != null &&\n question.validate?.(argv[question.name]) !== false\n ) {\n continue;\n }\n\n // Don't prompt questions with a single choice\n if (Array.isArray(question.choices) && question.choices.length === 1) {\n const onlyChoice = question.choices[0]!;\n singleChoiceAnswers[question.name] = onlyChoice.value;\n\n continue;\n }\n\n const { type, choices } = question;\n\n // Don't prompt dynamic questions with a single choice\n if (type === 'select' && typeof choices === 'function') {\n question.type = (prev, values, prompt) => {\n const dynamicChoices = choices(prev, { ...argv, ...values }, prompt);\n\n if (dynamicChoices && dynamicChoices.length === 1) {\n const onlyChoice = dynamicChoices[0]!;\n singleChoiceAnswers[question.name] = onlyChoice.value;\n return null;\n }\n\n return type;\n };\n }\n\n finalQuestions.push(question);\n }\n\n const promptAnswers = await prompts(finalQuestions);\n\n const answers = {\n ...argv,\n local,\n ...singleChoiceAnswers,\n ...promptAnswers,\n } as Answers;\n\n assertOptions(questions, answers);\n\n const {\n slug,\n description,\n authorName,\n authorEmail,\n authorUrl,\n repoUrl,\n type = 'module-mixed',\n languages = type === 'library' ? 'js' : 'kotlin-objc',\n example = local ? 'none' : type === 'library' ? 'expo' : 'vanilla',\n reactNativeVersion,\n } = answers;\n\n // Get latest version of Bob from NPM\n let bobVersion: string;\n\n try {\n bobVersion = await Promise.race([\n new Promise<string>((resolve) => {\n setTimeout(() => resolve(FALLBACK_BOB_VERSION), 1000);\n }),\n bobVersionPromise,\n ]);\n } catch (e) {\n // Fallback to a known version if we couldn't fetch\n bobVersion = FALLBACK_BOB_VERSION;\n }\n\n const moduleType = type.startsWith('view-') ? 'view' : 'module';\n const arch =\n type === 'module-new' || type === 'view-new'\n ? 'new'\n : type === 'module-mixed' || type === 'view-mixed'\n ? 'mixed'\n : 'legacy';\n\n const project = slug.replace(/^(react-native-|@[^/]+\\/)/, '');\n\n let namespace: string | undefined;\n\n if (slug.startsWith('@') && slug.includes('/')) {\n namespace = slug\n .split('/')[0]\n ?.replace(/[^a-z0-9]/g, '')\n .toLowerCase();\n }\n\n // Create a package identifier with specified namespace when possible\n const pack = `${namespace ? `${namespace}.` : ''}${project\n .replace(/[^a-z0-9]/g, '')\n .toLowerCase()}`;\n\n const options = {\n bob: {\n version: bobVersion || FALLBACK_BOB_VERSION,\n },\n project: {\n slug,\n description,\n name:\n /^[A-Z]/.test(basename) && /^[a-z0-9]+$/i.test(basename)\n ? // If the project name is already in PascalCase, use it as-is\n basename\n : // Otherwise, convert it to PascalCase and remove any non-alphanumeric characters\n `${project.charAt(0).toUpperCase()}${project\n .replace(/[^a-z0-9](\\w)/g, (_, $1) => $1.toUpperCase())\n .slice(1)}`,\n package: pack,\n package_dir: pack.replace(/\\./g, '/'),\n package_cpp: pack.replace(/\\./g, '_'),\n identifier: slug.replace(/[^a-z0-9]+/g, '-').replace(/^-/, ''),\n native: languages !== 'js',\n arch,\n cpp: languages === 'cpp',\n swift: languages === 'kotlin-swift',\n view: moduleType === 'view',\n module: moduleType === 'module',\n },\n author: {\n name: authorName,\n email: authorEmail,\n url: authorUrl,\n },\n repo: repoUrl,\n example,\n year: new Date().getFullYear(),\n };\n\n const copyDir = async (source: string, dest: string) => {\n await fs.mkdirp(dest);\n\n const files = await fs.readdir(source);\n\n for (const f of files) {\n const target = path.join(\n dest,\n ejs.render(f.replace(/^\\$/, ''), options, {\n openDelimiter: '{',\n closeDelimiter: '}',\n })\n );\n\n const file = path.join(source, f);\n const stats = await fs.stat(file);\n\n if (stats.isDirectory()) {\n await copyDir(file, target);\n } else if (!BINARIES.some((r) => r.test(file))) {\n const content = await fs.readFile(file, 'utf8');\n\n await fs.writeFile(target, ejs.render(content, options));\n } else {\n await fs.copyFile(file, target);\n }\n }\n };\n\n await fs.mkdirp(folder);\n\n if (reactNativeVersion != null) {\n if (example === 'vanilla') {\n console.log(\n `${kleur.blue('ℹ')} Using ${kleur.cyan(\n `react-native@${reactNativeVersion}`\n )} for the example`\n );\n } else {\n console.warn(\n `${kleur.yellow(\n '⚠'\n )} Ignoring --react-native-version for unsupported example type: ${kleur.cyan(\n example\n )}`\n );\n }\n }\n\n const spinner = ora().start();\n\n if (example !== 'none') {\n spinner.text = 'Generating example app';\n\n await generateExampleApp({\n type: example,\n dest: folder,\n arch,\n project: options.project,\n bobVersion,\n reactNativeVersion,\n });\n }\n\n spinner.text = 'Copying files';\n\n if (local) {\n await copyDir(COMMON_LOCAL_FILES, folder);\n } else {\n await copyDir(COMMON_FILES, folder);\n\n if (example !== 'none') {\n await copyDir(COMMON_EXAMPLE_FILES, folder);\n }\n }\n\n if (languages === 'js') {\n await copyDir(JS_FILES, folder);\n await copyDir(EXPO_FILES, folder);\n } else {\n await copyDir(NATIVE_COMMON_FILES, folder);\n\n if (example !== 'none') {\n await copyDir(NATIVE_COMMON_EXAMPLE_FILES, folder);\n }\n\n if (moduleType === 'module') {\n await copyDir(NATIVE_FILES[`${moduleType}_${arch}`], folder);\n } else {\n await copyDir(NATIVE_FILES[`${moduleType}_${arch}`], folder);\n }\n\n if (options.project.swift) {\n await copyDir(SWIFT_FILES[`${moduleType}_legacy`], folder);\n } else {\n if (moduleType === 'module') {\n await copyDir(OBJC_FILES[`${moduleType}_common`], folder);\n } else {\n await copyDir(OBJC_FILES[`view_${arch}`], folder);\n }\n }\n\n const templateType = `${moduleType}_${arch}` as const;\n\n await copyDir(KOTLIN_FILES[templateType], folder);\n\n if (options.project.cpp) {\n await copyDir(CPP_FILES, folder);\n await fs.remove(path.join(folder, 'ios', `${options.project.name}.m`));\n }\n }\n\n const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));\n\n if (example !== 'none') {\n // Set `react` and `react-native` versions of root `package.json` from example `package.json`\n const examplePackageJson = await fs.readJSON(\n path.join(folder, 'example', 'package.json')\n );\n\n if (\n examplePackageJson.dependencies?.react &&\n examplePackageJson.dependencies?.['react-native']\n ) {\n rootPackageJson.devDependencies = rootPackageJson.devDependencies || {};\n rootPackageJson.devDependencies.react =\n examplePackageJson.dependencies.react;\n rootPackageJson.devDependencies['react-native'] =\n examplePackageJson.dependencies['react-native'];\n }\n\n if (example === 'vanilla') {\n // React Native doesn't provide the community CLI as a dependency.\n // We have to get read the version from the example app and put to the root package json\n const exampleCommunityCLIVersion =\n examplePackageJson.devDependencies['@react-native-community/cli'];\n assert(\n exampleCommunityCLIVersion !== undefined,\n \"The generated example app doesn't have community CLI installed\"\n );\n\n rootPackageJson.devDependencies = rootPackageJson.devDependencies || {};\n rootPackageJson.devDependencies['@react-native-community/cli'] =\n exampleCommunityCLIVersion;\n\n if (arch !== 'legacy') {\n addCodegenBuildScript(folder);\n }\n }\n }\n\n // Some of the passed args can already be derived from the generated package.json file.\n const ignoredAnswers: (keyof Answers)[] = [\n 'name',\n 'slug',\n 'description',\n 'authorName',\n 'authorEmail',\n 'authorUrl',\n 'repoUrl',\n 'example',\n 'reactNativeVersion',\n 'local',\n ];\n\n type AnswerEntries<T extends keyof Answers = keyof Answers> = [\n T,\n Answers[T],\n ][];\n\n const libraryMetadata = Object.fromEntries(\n (Object.entries(answers) as AnswerEntries).filter(\n ([answer]) => !ignoredAnswers.includes(answer)\n )\n );\n\n libraryMetadata.version = version;\n rootPackageJson['create-react-native-library'] = libraryMetadata;\n\n await fs.writeJson(path.join(folder, 'package.json'), rootPackageJson, {\n spaces: 2,\n });\n\n if (!local) {\n let isInGitRepo = false;\n\n try {\n isInGitRepo =\n (await spawn('git', ['rev-parse', '--is-inside-work-tree'])) === 'true';\n } catch (e) {\n // Ignore error\n }\n\n if (!isInGitRepo) {\n try {\n await spawn('git', ['init'], { cwd: folder });\n await spawn('git', ['branch', '-M', 'main'], { cwd: folder });\n await spawn('git', ['add', '.'], { cwd: folder });\n await spawn('git', ['commit', '-m', 'chore: initial commit'], {\n cwd: folder,\n });\n } catch (e) {\n // Ignore error\n }\n }\n }\n\n spinner.succeed(\n `Project created successfully at ${kleur.yellow(\n path.relative(process.cwd(), folder)\n )}!\\n`\n );\n\n if (local) {\n let linked;\n\n const packageManager = (await fs.pathExists(\n path.join(process.cwd(), 'yarn.lock')\n ))\n ? 'yarn'\n : 'npm';\n\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n\n if (await fs.pathExists(packageJsonPath)) {\n const packageJson = await fs.readJSON(packageJsonPath);\n const isReactNativeProject = Boolean(\n packageJson.dependencies?.['react-native']\n );\n\n if (isReactNativeProject) {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.dependencies[slug] =\n packageManager === 'yarn'\n ? `link:./${path.relative(process.cwd(), folder)}`\n : `file:./${path.relative(process.cwd(), folder)}`;\n\n await fs.writeJSON(packageJsonPath, packageJson, {\n spaces: 2,\n });\n\n linked = true;\n }\n }\n\n console.log(\n dedent(`\n ${kleur.magenta(\n `${kleur.bold('Get started')} with the project`\n )}${kleur.gray(':')}\n\n ${\n (linked\n ? `- Run ${kleur.blue(\n `${packageManager} install`\n )} to link the library\\n`\n : `- Link the library at ${kleur.blue(\n path.relative(process.cwd(), folder)\n )} based on your project setup'\\n`) +\n `- Run ${kleur.blue(\n 'pod install --project-directory=ios'\n )} to install dependencies with CocoaPods\\n` +\n `- Run ${kleur.blue('npx react-native run-android')} or ${kleur.blue(\n 'npx react-native run-ios'\n )} to build and run the app\\n` +\n `- Import from ${kleur.blue(slug)} and use it in your app.`\n }\n\n ${kleur.yellow(`Good luck!`)}\n `)\n );\n } else {\n const platforms = {\n ios: { name: 'iOS', color: 'cyan' },\n android: { name: 'Android', color: 'green' },\n ...(example === 'expo'\n ? ({ web: { name: 'Web', color: 'blue' } } as const)\n : null),\n } as const;\n\n console.log(\n dedent(`\n ${kleur.magenta(\n `${kleur.bold('Get started')} with the project`\n )}${kleur.gray(':')}\n\n ${kleur.gray('$')} yarn\n ${Object.entries(platforms)\n .map(\n ([script, { name, color }]) => `\n ${kleur[color](`Run the example app on ${kleur.bold(name)}`)}${kleur.gray(\n ':'\n )}\n\n ${kleur.gray('$')} yarn example ${script}`\n )\n .join('\\n')}\n\n ${kleur.yellow(\n `See ${kleur.bold('CONTRIBUTING.md')} for more details. Good luck!`\n )}\n `)\n );\n }\n}\n\nyargs\n .command('$0 [name]', 'create a react native library', args, create)\n .demandCommand()\n .recommendCommands()\n .fail((message, error) => {\n console.log('\\n');\n\n if (error) {\n console.log(kleur.red(error.message));\n throw error;\n }\n\n if (message) {\n console.log(kleur.red(message));\n } else {\n console.log(\n kleur.red(`An unknown error occurred. See '--help' for usage guide.`)\n );\n }\n\n process.exit(1);\n })\n .parserConfiguration({\n // don't pass kebab-case args to handler.\n 'strip-dashed': true,\n })\n .strict().argv;\n\n/**\n * Makes sure the answers are in expected form and ends the process with error if they are not\n */\nexport function assertOptions(questions: Question[], answers: Answers) {\n for (const [key, value] of Object.entries(answers)) {\n if (value == null) {\n continue;\n }\n\n const question = questions.find((q) => q.name === key);\n\n if (question == null) {\n continue;\n }\n\n let valid = question.validate ? question.validate(String(value)) : true;\n\n // We also need to guard against invalid choices\n // If we don't already have a validation message to provide a better error\n if (typeof valid !== 'string' && 'choices' in question) {\n const choices =\n typeof question.choices === 'function'\n ? question.choices(\n undefined,\n // @ts-expect-error: it complains about optional values, but it should be fine\n answers,\n question\n )\n : question.choices;\n\n if (choices && !choices.some((choice) => choice.value === value)) {\n valid = `Supported values are - ${choices.map((c) =>\n kleur.green(c.value)\n )}`;\n }\n }\n\n if (valid !== true) {\n let message = `Invalid value ${kleur.red(\n String(value)\n )} passed for ${kleur.blue(key)}`;\n\n if (typeof valid === 'string') {\n message += `: ${valid}`;\n }\n\n console.log(message);\n\n process.exit(1);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-react-native-library",
3
- "version": "0.44.0",
3
+ "version": "0.44.1",
4
4
  "description": "CLI to scaffold React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -65,5 +65,5 @@
65
65
  "@types/validate-npm-package-name": "^3.0.3",
66
66
  "@types/yargs": "^17.0.10"
67
67
  },
68
- "gitHead": "99128be2d7b530718fccf4add3d16793a5a0d5c3"
68
+ "gitHead": "941e35c0940896a05f4163cf200802eaba385326"
69
69
  }