create-react-native-library 0.49.6 → 0.49.8
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 +4 -2
- package/lib/index.js.map +1 -1
- package/lib/inform.js +1 -1
- package/lib/inform.js.map +1 -1
- package/lib/input.js.map +1 -1
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -16,8 +16,9 @@ var _initialCommit = require("./utils/initialCommit");
|
|
|
16
16
|
var _prompt = require("./utils/prompt");
|
|
17
17
|
var _resolveNpmPackageVersion = require("./utils/resolveNpmPackageVersion");
|
|
18
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
-
const FALLBACK_BOB_VERSION = '0.
|
|
19
|
+
const FALLBACK_BOB_VERSION = '0.40.5';
|
|
20
20
|
const FALLBACK_NITRO_MODULES_VERSION = '0.22.1';
|
|
21
|
+
const SUPPORTED_REACT_NATIVE_VERSION = '0.78.2';
|
|
21
22
|
|
|
22
23
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
23
24
|
_yargs.default.command('$0 [name]', 'create a react native library', _input.acceptedArgs,
|
|
@@ -49,6 +50,7 @@ async function create(_argv) {
|
|
|
49
50
|
const promptAnswers = await (0, _prompt.prompt)(questions, argv);
|
|
50
51
|
const answers = {
|
|
51
52
|
...promptAnswers,
|
|
53
|
+
reactNativeVersion: promptAnswers.reactNativeVersion ?? SUPPORTED_REACT_NATIVE_VERSION,
|
|
52
54
|
local
|
|
53
55
|
};
|
|
54
56
|
(0, _assert.assertUserInput)(questions, answers);
|
|
@@ -65,7 +67,7 @@ async function create(_argv) {
|
|
|
65
67
|
answers
|
|
66
68
|
});
|
|
67
69
|
await _fsExtra.default.mkdirp(folder);
|
|
68
|
-
if (answers.reactNativeVersion
|
|
70
|
+
if (answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION) {
|
|
69
71
|
(0, _inform.printUsedRNVersion)(answers.reactNativeVersion, config);
|
|
70
72
|
}
|
|
71
73
|
const spinner = (0, _ora.default)().start();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_fsExtra","_interopRequireDefault","require","_kleur","_ora","_path","_yargs","_addCodegenBuildScript","_dependencies","_generateExampleApp","_inform","_input","_template","_assert","_initialCommit","_prompt","_resolveNpmPackageVersion","e","__esModule","default","FALLBACK_BOB_VERSION","FALLBACK_NITRO_MODULES_VERSION","yargs","command","acceptedArgs","create","demandCommand","recommendCommands","fail","printErrorHelp","parserConfiguration","strict","argv","_argv","_","$0","bobVersionPromise","resolveNpmPackageVersion","nitroModulesVersionPromise","local","promptLocalLibrary","folder","promptPath","assertNpxExists","basename","path","questions","createQuestions","assertUserInput","promptAnswers","prompt","answers","bobVersion","nitroModulesVersion","type","undefined","config","generateTemplateConfiguration","versions","bob","nitroModules","nitroCodegen","fs","mkdirp","reactNativeVersion","printUsedRNVersion","spinner","ora","start","example","text","generateExampleApp","destination","applyTemplates","rootPackageJson","readJson","join","alignDependencyVersionsWithExampleApp","project","moduleConfig","viewConfig","addCodegenBuildScript","libraryMetadata","createMetadata","writeJson","spaces","createInitialGitCommit","succeed","kleur","yellow","relative","process","cwd","printNextSteps","hasPackageJson","pathExists","name","message","initial","includes","validate","input","pathExistsSync","Error","blue"],"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport kleur from 'kleur';\nimport ora from 'ora';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { addCodegenBuildScript } from './exampleApp/addCodegenBuildScript';\nimport { alignDependencyVersionsWithExampleApp } from './exampleApp/dependencies';\nimport generateExampleApp from './exampleApp/generateExampleApp';\nimport { printErrorHelp, printNextSteps, printUsedRNVersion } from './inform';\nimport {\n acceptedArgs,\n createMetadata,\n createQuestions,\n type Answers,\n type Args,\n} from './input';\nimport { applyTemplates, generateTemplateConfiguration } from './template';\nimport { assertNpxExists, assertUserInput } from './utils/assert';\nimport { createInitialGitCommit } from './utils/initialCommit';\nimport { prompt } from './utils/prompt';\nimport { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';\n\nconst FALLBACK_BOB_VERSION = '0.38.3';\nconst FALLBACK_NITRO_MODULES_VERSION = '0.22.1';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nyargs\n .command(\n '$0 [name]',\n 'create a react native library',\n acceptedArgs,\n // @ts-expect-error Some types are still incompatible\n create\n )\n .demandCommand()\n .recommendCommands()\n .fail(printErrorHelp)\n .parserConfiguration({\n // don't pass kebab-case args to handler.\n 'strip-dashed': true,\n })\n .strict().argv;\n\nasync function create(_argv: yargs.Arguments<Args>) {\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 = resolveNpmPackageVersion(\n 'react-native-builder-bob',\n FALLBACK_BOB_VERSION\n );\n const nitroModulesVersionPromise = resolveNpmPackageVersion(\n 'react-native-nitro-modules',\n FALLBACK_NITRO_MODULES_VERSION\n );\n\n const local = await promptLocalLibrary(argv);\n const folder = await promptPath(argv, local);\n\n await assertNpxExists();\n\n const basename = path.basename(folder);\n\n const questions = await createQuestions({ basename, local });\n\n assertUserInput(questions, argv);\n\n const promptAnswers = await prompt(questions, argv);\n const answers: Answers = {\n ...promptAnswers,\n local,\n };\n\n assertUserInput(questions, answers);\n\n const bobVersion = await bobVersionPromise;\n\n const nitroModulesVersion =\n answers.type === 'nitro-module'\n ? await nitroModulesVersionPromise\n : undefined;\n\n const config = generateTemplateConfiguration({\n versions: {\n bob: bobVersion,\n nitroModules: nitroModulesVersion,\n // Nitro codegen's version is always the same as nitro modules version.\n nitroCodegen: nitroModulesVersion,\n },\n basename,\n answers,\n });\n\n await fs.mkdirp(folder);\n\n if (answers.reactNativeVersion != null) {\n printUsedRNVersion(answers.reactNativeVersion, config);\n }\n\n const spinner = ora().start();\n\n if (config.example !== 'none') {\n spinner.text = 'Generating example app';\n\n await generateExampleApp({\n destination: folder,\n reactNativeVersion: answers.reactNativeVersion,\n config,\n });\n }\n\n spinner.text = 'Copying files';\n\n await applyTemplates(answers, config, folder);\n\n const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));\n\n if (config.example !== 'none') {\n await alignDependencyVersionsWithExampleApp(\n rootPackageJson,\n folder,\n config\n );\n }\n\n if (\n config.example === 'vanilla' &&\n (config.project.moduleConfig === 'turbo-modules' ||\n config.project.viewConfig === 'fabric-view')\n ) {\n addCodegenBuildScript(folder);\n }\n\n const libraryMetadata = createMetadata(answers);\n\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 await createInitialGitCommit(folder);\n }\n\n spinner.succeed(\n `Project created successfully at ${kleur.yellow(\n path.relative(process.cwd(), folder)\n )}!\\n`\n );\n\n await printNextSteps(local, folder, config);\n}\n\nasync function promptLocalLibrary(argv: Args) {\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 prompt({\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 return local;\n}\n\nasync function promptPath(argv: Args, local: boolean) {\n let folder: string;\n\n if (argv.name && !local) {\n folder = path.join(process.cwd(), argv.name);\n } else {\n const answers = await prompt({\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 throw new Error(\n `A folder already exists at ${kleur.blue(\n folder\n )}! Please specify another folder name or delete the existing one.`\n );\n }\n\n return folder;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_fsExtra","_interopRequireDefault","require","_kleur","_ora","_path","_yargs","_addCodegenBuildScript","_dependencies","_generateExampleApp","_inform","_input","_template","_assert","_initialCommit","_prompt","_resolveNpmPackageVersion","e","__esModule","default","FALLBACK_BOB_VERSION","FALLBACK_NITRO_MODULES_VERSION","SUPPORTED_REACT_NATIVE_VERSION","yargs","command","acceptedArgs","create","demandCommand","recommendCommands","fail","printErrorHelp","parserConfiguration","strict","argv","_argv","_","$0","bobVersionPromise","resolveNpmPackageVersion","nitroModulesVersionPromise","local","promptLocalLibrary","folder","promptPath","assertNpxExists","basename","path","questions","createQuestions","assertUserInput","promptAnswers","prompt","answers","reactNativeVersion","bobVersion","nitroModulesVersion","type","undefined","config","generateTemplateConfiguration","versions","bob","nitroModules","nitroCodegen","fs","mkdirp","printUsedRNVersion","spinner","ora","start","example","text","generateExampleApp","destination","applyTemplates","rootPackageJson","readJson","join","alignDependencyVersionsWithExampleApp","project","moduleConfig","viewConfig","addCodegenBuildScript","libraryMetadata","createMetadata","writeJson","spaces","createInitialGitCommit","succeed","kleur","yellow","relative","process","cwd","printNextSteps","hasPackageJson","pathExists","name","message","initial","includes","validate","input","pathExistsSync","Error","blue"],"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport kleur from 'kleur';\nimport ora from 'ora';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { addCodegenBuildScript } from './exampleApp/addCodegenBuildScript';\nimport { alignDependencyVersionsWithExampleApp } from './exampleApp/dependencies';\nimport generateExampleApp from './exampleApp/generateExampleApp';\nimport { printErrorHelp, printNextSteps, printUsedRNVersion } from './inform';\nimport {\n acceptedArgs,\n createMetadata,\n createQuestions,\n type Answers,\n type Args,\n} from './input';\nimport { applyTemplates, generateTemplateConfiguration } from './template';\nimport { assertNpxExists, assertUserInput } from './utils/assert';\nimport { createInitialGitCommit } from './utils/initialCommit';\nimport { prompt } from './utils/prompt';\nimport { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';\n\nconst FALLBACK_BOB_VERSION = '0.40.5';\nconst FALLBACK_NITRO_MODULES_VERSION = '0.22.1';\nconst SUPPORTED_REACT_NATIVE_VERSION = '0.78.2';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nyargs\n .command(\n '$0 [name]',\n 'create a react native library',\n acceptedArgs,\n // @ts-expect-error Some types are still incompatible\n create\n )\n .demandCommand()\n .recommendCommands()\n .fail(printErrorHelp)\n .parserConfiguration({\n // don't pass kebab-case args to handler.\n 'strip-dashed': true,\n })\n .strict().argv;\n\nasync function create(_argv: yargs.Arguments<Args>) {\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 = resolveNpmPackageVersion(\n 'react-native-builder-bob',\n FALLBACK_BOB_VERSION\n );\n const nitroModulesVersionPromise = resolveNpmPackageVersion(\n 'react-native-nitro-modules',\n FALLBACK_NITRO_MODULES_VERSION\n );\n\n const local = await promptLocalLibrary(argv);\n const folder = await promptPath(argv, local);\n\n await assertNpxExists();\n\n const basename = path.basename(folder);\n\n const questions = await createQuestions({ basename, local });\n\n assertUserInput(questions, argv);\n\n const promptAnswers = await prompt(questions, argv);\n const answers: Answers = {\n ...promptAnswers,\n reactNativeVersion:\n promptAnswers.reactNativeVersion ?? SUPPORTED_REACT_NATIVE_VERSION,\n local,\n };\n\n assertUserInput(questions, answers);\n\n const bobVersion = await bobVersionPromise;\n\n const nitroModulesVersion =\n answers.type === 'nitro-module'\n ? await nitroModulesVersionPromise\n : undefined;\n\n const config = generateTemplateConfiguration({\n versions: {\n bob: bobVersion,\n nitroModules: nitroModulesVersion,\n // Nitro codegen's version is always the same as nitro modules version.\n nitroCodegen: nitroModulesVersion,\n },\n basename,\n answers,\n });\n\n await fs.mkdirp(folder);\n\n if (answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION) {\n printUsedRNVersion(answers.reactNativeVersion, config);\n }\n\n const spinner = ora().start();\n\n if (config.example !== 'none') {\n spinner.text = 'Generating example app';\n\n await generateExampleApp({\n destination: folder,\n reactNativeVersion: answers.reactNativeVersion,\n config,\n });\n }\n\n spinner.text = 'Copying files';\n\n await applyTemplates(answers, config, folder);\n\n const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));\n\n if (config.example !== 'none') {\n await alignDependencyVersionsWithExampleApp(\n rootPackageJson,\n folder,\n config\n );\n }\n\n if (\n config.example === 'vanilla' &&\n (config.project.moduleConfig === 'turbo-modules' ||\n config.project.viewConfig === 'fabric-view')\n ) {\n addCodegenBuildScript(folder);\n }\n\n const libraryMetadata = createMetadata(answers);\n\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 await createInitialGitCommit(folder);\n }\n\n spinner.succeed(\n `Project created successfully at ${kleur.yellow(\n path.relative(process.cwd(), folder)\n )}!\\n`\n );\n\n await printNextSteps(local, folder, config);\n}\n\nasync function promptLocalLibrary(argv: Args) {\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 prompt({\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 return local;\n}\n\nasync function promptPath(argv: Args, local: boolean) {\n let folder: string;\n\n if (argv.name && !local) {\n folder = path.join(process.cwd(), argv.name);\n } else {\n const answers = await prompt({\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 throw new Error(\n `A folder already exists at ${kleur.blue(\n folder\n )}! Please specify another folder name or delete the existing one.`\n );\n }\n\n return folder;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/inform.js
CHANGED
|
@@ -83,7 +83,7 @@ function printErrorHelp(message, error) {
|
|
|
83
83
|
}
|
|
84
84
|
function printUsedRNVersion(version, config) {
|
|
85
85
|
if (config.example === 'vanilla') {
|
|
86
|
-
console.log(`${_kleur.default.blue('ℹ')} Using ${_kleur.default.cyan(`react-native@${version}`)} for the example`);
|
|
86
|
+
console.log(`${_kleur.default.blue('ℹ')} Using untested ${_kleur.default.cyan(`react-native@${version}`)} for the example`);
|
|
87
87
|
} else {
|
|
88
88
|
console.warn(`${_kleur.default.yellow('⚠')} Ignoring --react-native-version for unsupported example type: ${_kleur.default.cyan(config.example)}`);
|
|
89
89
|
}
|
package/lib/inform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inform.js","names":["_path","_interopRequireDefault","require","_fsExtra","_dedent","_kleur","e","__esModule","default","printNextSteps","local","folder","config","linked","packageManager","fs","pathExists","path","join","process","cwd","packageJsonPath","packageJson","readJSON","isReactNativeProject","Boolean","dependencies","project","slug","relative","writeJSON","spaces","console","log","dedent","kleur","magenta","bold","gray","blue","yellow","platforms","ios","name","color","android","example","web","Object","entries","map","script","printErrorHelp","message","error","red","exit","printUsedRNVersion","version","cyan","warn"],"sources":["../src/inform.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport dedent from 'dedent';\nimport type { TemplateConfiguration } from './template';\nimport kleur from 'kleur';\n\nexport async function printNextSteps(\n local: boolean,\n folder: string,\n config: TemplateConfiguration\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[config.project.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(\n config.project.slug\n )} 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 ...(config.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\nexport function printErrorHelp(message: string, error: 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\nexport function printUsedRNVersion(\n version: string,\n config: TemplateConfiguration\n) {\n if (config.example === 'vanilla') {\n console.log(\n `${kleur.blue('ℹ')} Using ${kleur.cyan(\n `react-native@${version}`\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 config.example\n )}`\n );\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnB,eAAeG,cAAcA,CAClCC,KAAc,EACdC,MAAc,EACdC,MAA6B,EAC7B;EACA,IAAIF,KAAK,EAAE;IACT,IAAIG,MAAM;IAEV,MAAMC,cAAc,GAAG,CAAC,MAAMC,gBAAE,CAACC,UAAU,CACzCC,aAAI,CAACC,IAAI,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,WAAW,CACtC,CAAC,IACG,MAAM,GACN,KAAK;IAET,MAAMC,eAAe,GAAGJ,aAAI,CAACC,IAAI,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;IAEhE,IAAI,MAAML,gBAAE,CAACC,UAAU,CAACK,eAAe,CAAC,EAAE;MACxC,MAAMC,WAAW,GAAG,MAAMP,gBAAE,CAACQ,QAAQ,CAACF,eAAe,CAAC;MACtD,MAAMG,oBAAoB,GAAGC,OAAO,CAClCH,WAAW,CAACI,YAAY,GAAG,cAAc,CAC3C,CAAC;MAED,IAAIF,oBAAoB,EAAE;QACxBF,WAAW,CAACI,YAAY,GAAGJ,WAAW,CAACI,YAAY,IAAI,CAAC,CAAC;QACzDJ,WAAW,CAACI,YAAY,CAACd,MAAM,CAACe,OAAO,CAACC,IAAI,CAAC,GAC3Cd,cAAc,KAAK,MAAM,GACrB,UAAUG,aAAI,CAACY,QAAQ,CAACV,OAAO,CAACC,GAAG,CAAC,CAAC,EAAET,MAAM,CAAC,EAAE,GAChD,UAAUM,aAAI,CAACY,QAAQ,CAACV,OAAO,CAACC,GAAG,CAAC,CAAC,EAAET,MAAM,CAAC,EAAE;QAEtD,MAAMI,gBAAE,CAACe,SAAS,CAACT,eAAe,EAAEC,WAAW,EAAE;UAC/CS,MAAM,EAAE;QACV,CAAC,CAAC;QAEFlB,MAAM,GAAG,IAAI;MACf;IACF;IAEAmB,OAAO,CAACC,GAAG,CACT,IAAAC,eAAM,EAAC;AACb,QAAQC,cAAK,CAACC,OAAO,CACb,GAAGD,cAAK,CAACE,IAAI,CAAC,aAAa,CAAC,mBAC9B,CAAC,GAAGF,cAAK,CAACG,IAAI,CAAC,GAAG,CAAC;AACzB;AACA,QACQ,CAACzB,MAAM,GACH,SAASsB,cAAK,CAACI,IAAI,CACjB,GAAGzB,cAAc,UACnB,CAAC,wBAAwB,GACzB,yBAAyBqB,cAAK,CAACI,IAAI,CACjCtB,aAAI,CAACY,QAAQ,CAACV,OAAO,CAACC,GAAG,CAAC,CAAC,EAAET,MAAM,CACrC,CAAC,gCAAgC,IACrC,SAASwB,cAAK,CAACI,IAAI,CACjB,qCACF,CAAC,2CAA2C,GAC5C,SAASJ,cAAK,CAACI,IAAI,CAAC,8BAA8B,CAAC,OAAOJ,cAAK,CAACI,IAAI,CAClE,0BACF,CAAC,6BAA6B,GAC9B,iBAAiBJ,cAAK,CAACI,IAAI,CACzB3B,MAAM,CAACe,OAAO,CAACC,IACjB,CAAC,0BAA0B;AACnC;AACA,QACQO,cAAK,CAACK,MAAM,CAAC,YAAY,CAAC;AAClC,KAAK,CACD,CAAC;EACH,CAAC,MAAM;IACL,MAAMC,SAAS,GAAG;MAChBC,GAAG,EAAE;QAAEC,IAAI,EAAE,KAAK;QAAEC,KAAK,EAAE;MAAO,CAAC;MACnCC,OAAO,EAAE;QAAEF,IAAI,EAAE,SAAS;QAAEC,KAAK,EAAE;MAAQ,CAAC;MAC5C,IAAIhC,MAAM,CAACkC,OAAO,KAAK,MAAM,GACxB;QAAEC,GAAG,EAAE;UAAEJ,IAAI,EAAE,KAAK;UAAEC,KAAK,EAAE;QAAO;MAAE,CAAC,GACxC,IAAI;IACV,CAAU;IAEVZ,OAAO,CAACC,GAAG,CACT,IAAAC,eAAM,EAAC;AACb,QAAQC,cAAK,CAACC,OAAO,CACb,GAAGD,cAAK,CAACE,IAAI,CAAC,aAAa,CAAC,mBAC9B,CAAC,GAAGF,cAAK,CAACG,IAAI,CAAC,GAAG,CAAC;AACzB;AACA,UAAUH,cAAK,CAACG,IAAI,CAAC,GAAG,CAAC;AACzB,QAAQU,MAAM,CAACC,OAAO,CAACR,SAAS,CAAC,CACxBS,GAAG,CACF,CAAC,CAACC,MAAM,EAAE;MAAER,IAAI;MAAEC;IAAM,CAAC,CAAC,KAAK;AACzC,QAAQT,cAAK,CAACS,KAAK,CAAC,CAAC,0BAA0BT,cAAK,CAACE,IAAI,CAACM,IAAI,CAAC,EAAE,CAAC,GAAGR,cAAK,CAACG,IAAI,CACvE,GACF,CAAC;AACP;AACA,UAAUH,cAAK,CAACG,IAAI,CAAC,GAAG,CAAC,iBAAiBa,MAAM,EACxC,CAAC,CACAjC,IAAI,CAAC,IAAI,CAAC;AACnB;AACA,QAAQiB,cAAK,CAACK,MAAM,CACZ,OAAOL,cAAK,CAACE,IAAI,CAAC,iBAAiB,CAAC,+BACtC,CAAC;AACP,KAAK,CACD,CAAC;EACH;AACF;AAEO,SAASe,cAAcA,CAACC,OAAe,EAAEC,KAAY,EAAE;EAC5DtB,OAAO,CAACC,GAAG,CAAC,IAAI,CAAC;EAEjB,IAAIqB,KAAK,EAAE;IACTtB,OAAO,CAACC,GAAG,CAACE,cAAK,CAACoB,GAAG,CAACD,KAAK,CAACD,OAAO,CAAC,CAAC;IACrC,MAAMC,KAAK;EACb;EAEA,IAAID,OAAO,EAAE;IACXrB,OAAO,CAACC,GAAG,CAACE,cAAK,CAACoB,GAAG,CAACF,OAAO,CAAC,CAAC;EACjC,CAAC,MAAM;IACLrB,OAAO,CAACC,GAAG,CACTE,cAAK,CAACoB,GAAG,CAAC,0DAA0D,CACtE,CAAC;EACH;EAEApC,OAAO,CAACqC,IAAI,CAAC,CAAC,CAAC;AACjB;AAEO,SAASC,kBAAkBA,CAChCC,OAAe,EACf9C,MAA6B,EAC7B;EACA,IAAIA,MAAM,CAACkC,OAAO,KAAK,SAAS,EAAE;IAChCd,OAAO,CAACC,GAAG,CACT,GAAGE,cAAK,CAACI,IAAI,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"inform.js","names":["_path","_interopRequireDefault","require","_fsExtra","_dedent","_kleur","e","__esModule","default","printNextSteps","local","folder","config","linked","packageManager","fs","pathExists","path","join","process","cwd","packageJsonPath","packageJson","readJSON","isReactNativeProject","Boolean","dependencies","project","slug","relative","writeJSON","spaces","console","log","dedent","kleur","magenta","bold","gray","blue","yellow","platforms","ios","name","color","android","example","web","Object","entries","map","script","printErrorHelp","message","error","red","exit","printUsedRNVersion","version","cyan","warn"],"sources":["../src/inform.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport dedent from 'dedent';\nimport type { TemplateConfiguration } from './template';\nimport kleur from 'kleur';\n\nexport async function printNextSteps(\n local: boolean,\n folder: string,\n config: TemplateConfiguration\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[config.project.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(\n config.project.slug\n )} 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 ...(config.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\nexport function printErrorHelp(message: string, error: 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\nexport function printUsedRNVersion(\n version: string,\n config: TemplateConfiguration\n) {\n if (config.example === 'vanilla') {\n console.log(\n `${kleur.blue('ℹ')} Using untested ${kleur.cyan(\n `react-native@${version}`\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 config.example\n )}`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","names":["_githubUsername","_interopRequireDefault","require","_validateNpmPackageName","_package","_spawn","e","__esModule","default","LANGUAGE_CHOICES","title","value","types","EXAMPLE_CHOICES","description","disabled","process","env","CRNL_ENABLE_TEST_APP","filter","choice","TYPE_CHOICES","acceptedArgs","exports","slug","type","authorName","authorEmail","authorUrl","repoUrl","languages","choices","map","reactNativeVersion","local","example","createQuestions","basename","name","email","spawn","questions","message","initial","validateNpmPackage","validForNewPackages","test","undefined","validate","input","Boolean","previous","username","githubUsername","_","answers","replace","values","includes","createMetadata","ignoredAnswers","libraryMetadata","Object","fromEntries","entries","answer","version"],"sources":["../src/input.ts"],"sourcesContent":["import githubUsername from 'github-username';\nimport validateNpmPackage from 'validate-npm-package-name';\nimport type yargs from 'yargs';\nimport { version } from '../package.json';\nimport type { Question } from './utils/prompt';\nimport { spawn } from './utils/spawn';\n\nexport type ArgName =\n | 'slug'\n | 'description'\n | 'authorName'\n | 'authorEmail'\n | 'authorUrl'\n | 'repoUrl'\n | 'languages'\n | 'type'\n | 'local'\n | 'example'\n | 'reactNativeVersion';\n\nexport type ProjectLanguages = 'kotlin-objc' | 'kotlin-swift' | 'cpp' | 'js';\n\nexport type ProjectType =\n | 'turbo-module'\n | 'fabric-view'\n | 'legacy-module'\n | 'legacy-view'\n | 'nitro-module'\n | 'library';\n\nconst LANGUAGE_CHOICES: {\n title: string;\n value: ProjectLanguages;\n types: ProjectType[];\n}[] = [\n {\n title: 'Kotlin & Swift',\n value: 'kotlin-swift',\n types: ['nitro-module', 'legacy-module', 'legacy-view'],\n },\n {\n title: 'Kotlin & Objective-C',\n value: 'kotlin-objc',\n types: ['turbo-module', 'fabric-view', 'legacy-module', 'legacy-view'],\n },\n {\n title: 'C++ for Android & iOS',\n value: 'cpp',\n types: ['turbo-module', 'legacy-module'],\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: 'App with Community CLI',\n value: 'vanilla',\n description: \"provides access to app's native code\",\n disabled: false,\n },\n {\n title: 'React Native Test App by Microsoft',\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: 'App with Expo CLI',\n value: 'expo',\n description: 'managed expo app with web support',\n disabled: false,\n },\n ] as const\n).filter((choice) => !choice.disabled);\n\nconst TYPE_CHOICES: {\n title: string;\n value: ProjectType;\n description: string;\n}[] = [\n {\n title: 'Turbo module',\n value: 'turbo-module',\n description: 'integration for native APIs to JS',\n },\n {\n title: 'Fabric view',\n value: 'fabric-view',\n description: 'integration for native views to JS',\n },\n {\n title: 'Nitro module',\n value: 'nitro-module',\n description:\n 'type-safe, fast integration for native APIs to JS (experimental)',\n },\n {\n title: 'Legacy Native module',\n value: 'legacy-module',\n description: 'bridge for native APIs to JS (old architecture)',\n },\n {\n title: 'Legacy Native view',\n value: 'legacy-view',\n description: 'bridge for native views to JS (old architecture)',\n },\n {\n title: 'JavaScript library',\n value: 'library',\n description: 'supports Expo Go and Web',\n },\n];\n\nexport const acceptedArgs: 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 authorName: {\n description: 'Name of the package author',\n type: 'string',\n },\n authorEmail: {\n description: 'Email address of the package author',\n type: 'string',\n },\n authorUrl: {\n description: 'URL for the package author',\n type: 'string',\n },\n repoUrl: {\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 reactNativeVersion: {\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} as const;\n\nexport type Args = Record<ArgName | 'name', string>;\nexport type SupportedArchitecture = 'new' | 'legacy';\nexport type ExampleApp = 'none' | 'test-app' | 'expo' | 'vanilla';\n\nexport type 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: ExampleApp;\n reactNativeVersion?: string;\n local?: boolean;\n};\n\nexport async function createQuestions({\n basename,\n local,\n}: {\n basename: string;\n local: boolean;\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 questions: Question<keyof Answers>[] = [\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 type: 'select',\n name: 'example',\n message: 'What type of example app do you want to create?',\n choices: (_, values) => {\n if (local) {\n return [\n {\n title: 'None',\n value: 'none',\n },\n ];\n }\n\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 return questions;\n}\n\nexport function createMetadata(answers: Answers) {\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\n return libraryMetadata;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"input.js","names":["_githubUsername","_interopRequireDefault","require","_validateNpmPackageName","_package","_spawn","e","__esModule","default","LANGUAGE_CHOICES","title","value","types","EXAMPLE_CHOICES","description","disabled","process","env","CRNL_ENABLE_TEST_APP","filter","choice","TYPE_CHOICES","acceptedArgs","exports","slug","type","authorName","authorEmail","authorUrl","repoUrl","languages","choices","map","reactNativeVersion","local","example","createQuestions","basename","name","email","spawn","questions","message","initial","validateNpmPackage","validForNewPackages","test","undefined","validate","input","Boolean","previous","username","githubUsername","_","answers","replace","values","includes","createMetadata","ignoredAnswers","libraryMetadata","Object","fromEntries","entries","answer","version"],"sources":["../src/input.ts"],"sourcesContent":["import githubUsername from 'github-username';\nimport validateNpmPackage from 'validate-npm-package-name';\nimport type yargs from 'yargs';\nimport { version } from '../package.json';\nimport type { Question } from './utils/prompt';\nimport { spawn } from './utils/spawn';\n\nexport type ArgName =\n | 'slug'\n | 'description'\n | 'authorName'\n | 'authorEmail'\n | 'authorUrl'\n | 'repoUrl'\n | 'languages'\n | 'type'\n | 'local'\n | 'example'\n | 'reactNativeVersion';\n\nexport type ProjectLanguages = 'kotlin-objc' | 'kotlin-swift' | 'cpp' | 'js';\n\nexport type ProjectType =\n | 'turbo-module'\n | 'fabric-view'\n | 'legacy-module'\n | 'legacy-view'\n | 'nitro-module'\n | 'library';\n\nconst LANGUAGE_CHOICES: {\n title: string;\n value: ProjectLanguages;\n types: ProjectType[];\n}[] = [\n {\n title: 'Kotlin & Swift',\n value: 'kotlin-swift',\n types: ['nitro-module', 'legacy-module', 'legacy-view'],\n },\n {\n title: 'Kotlin & Objective-C',\n value: 'kotlin-objc',\n types: ['turbo-module', 'fabric-view', 'legacy-module', 'legacy-view'],\n },\n {\n title: 'C++ for Android & iOS',\n value: 'cpp',\n types: ['turbo-module', 'legacy-module'],\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: 'App with Community CLI',\n value: 'vanilla',\n description: \"provides access to app's native code\",\n disabled: false,\n },\n {\n title: 'React Native Test App by Microsoft',\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: 'App with Expo CLI',\n value: 'expo',\n description: 'managed expo app with web support',\n disabled: false,\n },\n ] as const\n).filter((choice) => !choice.disabled);\n\nconst TYPE_CHOICES: {\n title: string;\n value: ProjectType;\n description: string;\n}[] = [\n {\n title: 'Turbo module',\n value: 'turbo-module',\n description: 'integration for native APIs to JS',\n },\n {\n title: 'Fabric view',\n value: 'fabric-view',\n description: 'integration for native views to JS',\n },\n {\n title: 'Nitro module',\n value: 'nitro-module',\n description:\n 'type-safe, fast integration for native APIs to JS (experimental)',\n },\n {\n title: 'Legacy Native module',\n value: 'legacy-module',\n description: 'bridge for native APIs to JS (old architecture)',\n },\n {\n title: 'Legacy Native view',\n value: 'legacy-view',\n description: 'bridge for native views to JS (old architecture)',\n },\n {\n title: 'JavaScript library',\n value: 'library',\n description: 'supports Expo Go and Web',\n },\n];\n\nexport const acceptedArgs: 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 authorName: {\n description: 'Name of the package author',\n type: 'string',\n },\n authorEmail: {\n description: 'Email address of the package author',\n type: 'string',\n },\n authorUrl: {\n description: 'URL for the package author',\n type: 'string',\n },\n repoUrl: {\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 reactNativeVersion: {\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} as const;\n\nexport type Args = Record<ArgName | 'name', string>;\nexport type SupportedArchitecture = 'new' | 'legacy';\nexport type ExampleApp = 'none' | 'test-app' | 'expo' | 'vanilla';\n\nexport type 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: ExampleApp;\n reactNativeVersion: string;\n local?: boolean;\n};\n\nexport async function createQuestions({\n basename,\n local,\n}: {\n basename: string;\n local: boolean;\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 questions: Question<keyof Answers>[] = [\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 type: 'select',\n name: 'example',\n message: 'What type of example app do you want to create?',\n choices: (_, values) => {\n if (local) {\n return [\n {\n title: 'None',\n value: 'none',\n },\n ];\n }\n\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 return questions;\n}\n\nexport function createMetadata(answers: Answers) {\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\n return libraryMetadata;\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.49.
|
|
3
|
+
"version": "0.49.8",
|
|
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": "
|
|
68
|
+
"gitHead": "2fbd8700f66d1e13667c6557cf5fa5f4822069a8"
|
|
69
69
|
}
|