diff --git a/.changeset/little-files-rush.md b/.changeset/little-files-rush.md new file mode 100644 index 000000000..c10a1dd53 --- /dev/null +++ b/.changeset/little-files-rush.md @@ -0,0 +1,5 @@ +--- +'@rnef/create-app': patch +--- + +chore: simplify welcome message and improve prompts diff --git a/packages/create-app/src/lib/bin.ts b/packages/create-app/src/lib/bin.ts index 6e587430d..6f88ff1f8 100644 --- a/packages/create-app/src/lib/bin.ts +++ b/packages/create-app/src/lib/bin.ts @@ -21,7 +21,6 @@ import { replacePlaceholder, } from './utils/edit-template.js'; import { copyDirSync, isEmptyDirSync, removeDirSync } from './utils/fs.js'; -import { printLogo } from './utils/logo.js'; import { rewritePackageJson } from './utils/package-json.js'; import { parseCliOptions } from './utils/parse-cli-options.js'; import { parsePackageInfo } from './utils/parsers.js'; @@ -58,7 +57,6 @@ export async function run() { return; } - printLogo(version); printWelcomeMessage(); const projectName = @@ -117,7 +115,13 @@ export async function run() { renameCommonFiles(absoluteTargetDir); replacePlaceholder(absoluteTargetDir, projectName); rewritePackageJson(absoluteTargetDir, projectName); - createConfig(absoluteTargetDir, platforms, plugins, bundler, remoteCacheProvider); + createConfig( + absoluteTargetDir, + platforms, + plugins, + bundler, + remoteCacheProvider + ); loader.stop('Applied template, platforms and plugins.'); await gitInitStep(absoluteTargetDir, version); @@ -209,7 +213,8 @@ export function formatConfig( ) .join('\n')} -export default {${pluginsWithImports +export default {${ + pluginsWithImports ? ` plugins: [ ${pluginsWithImports diff --git a/packages/create-app/src/lib/utils/logo.ts b/packages/create-app/src/lib/utils/logo.ts deleted file mode 100644 index f4fdc12f3..000000000 --- a/packages/create-app/src/lib/utils/logo.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { mind } from 'gradient-string'; - -// Generated using: https://patorjk.com/software/taag/#p=display&f=Georgia11&t=RNEF -const LOGO = ` - \`7MM"""Mq. \`7MN. \`7MF'\`7MM"""YMM \`7MM"""YMM - MM \`MM. MMN. M MM \`7 MM \`7 - MM ,M9 M YMb M MM d MM d - MMmmdM9 M \`MN. M MMmmMM MM""MM - MM YM. M \`MM.M MM Y , MM Y - MM \`Mb. M YMM MM ,M MM - .JMML. .JMM..JML. YM .JMMmmmmMMM .JMML. -`; - -const LOGO_WIDTH = 52; - -const TAG_LINE = 'React Native Enterprise Framework'; -const MADE_BY = 'Made with ❤️ by Callstack'; - -export function printLogo(version: string) { - console.log(mind(LOGO)); - console.log( - padBoth(`${TAG_LINE}${version ? ` v${version}` : ''}`, LOGO_WIDTH) - ); - console.log(padBoth(MADE_BY, LOGO_WIDTH)); - console.log(); -} - -function padBoth(text: string, width: number, padChar = ' ') { - if (text.length >= width) return text; - - const totalPadding = width - text.length; - const frontPadding = Math.floor(totalPadding / 2); - return `${padChar.repeat(frontPadding)}${text}`; -} diff --git a/packages/create-app/src/lib/utils/prompts.ts b/packages/create-app/src/lib/utils/prompts.ts index 238f777d2..cf095fc17 100644 --- a/packages/create-app/src/lib/utils/prompts.ts +++ b/packages/create-app/src/lib/utils/prompts.ts @@ -1,4 +1,5 @@ import { + color, intro, note, outro, @@ -9,6 +10,7 @@ import { RnefError, type SupportedRemoteCacheProviders, } from '@rnef/tools'; +import { vice } from 'gradient-string'; import path from 'path'; import type { TemplateInfo } from '../templates.js'; import { validateProjectName } from '../validate-project-name.js'; @@ -45,7 +47,7 @@ export function printVersionMessage() { export function printWelcomeMessage() { console.log(''); - intro(`Hello There!`); + intro(`Welcome to ${color.bold(vice('React Native Enterprise Framework'))}!`); } export function printByeMessage(targetDir: string) { @@ -103,7 +105,7 @@ export function promptPlatforms( ); return promptMultiselect({ - message: 'Select platforms:', + message: 'What platforms do you want to start with?', initialValues: defaultPlatforms, // @ts-expect-error todo options: platforms.map((platform) => ({ @@ -139,7 +141,7 @@ export function promptBundlers( } return promptSelect({ - message: 'Select bundler:', + message: 'Which bundler do you want to use?', initialValues: [bundlers[0]], // @ts-expect-error todo fixup type options: bundlers.map((bundler) => ({ @@ -151,7 +153,7 @@ export function promptBundlers( export function promptRemoteCacheProvider(): Promise { return promptSelect({ - message: 'Select remote cache provider:', + message: 'Which remote cache provider do you want to use?', initialValue: 'github-actions', options: [ {