From 814327f4091521b3f5b9b081cbedb4697ed0cf98 Mon Sep 17 00:00:00 2001 From: natemoo-re Date: Wed, 26 Oct 2022 15:16:54 +0000 Subject: [PATCH] [ci] format --- packages/astro/types.d.ts | 5 +- packages/create-astro/src/index.ts | 39 +++++++++---- packages/create-astro/src/messages.ts | 80 ++++++++++++++++----------- packages/create-astro/test/utils.js | 4 +- 4 files changed, 84 insertions(+), 44 deletions(-) diff --git a/packages/astro/types.d.ts b/packages/astro/types.d.ts index ae56cd2dc..d3e30c12e 100644 --- a/packages/astro/types.d.ts +++ b/packages/astro/types.d.ts @@ -4,7 +4,10 @@ import { AstroBuiltinAttributes } from './dist/@types/astro'; /** Any supported HTML or SVG element name, as defined by the HTML specification */ export type HTMLTag = keyof astroHTML.JSX.DefinedIntrinsicElements; /** The built-in attributes for any known HTML or SVG element name */ -export type HTMLAttributes = Omit; +export type HTMLAttributes = Omit< + astroHTML.JSX.IntrinsicElements[Tag], + keyof AstroBuiltinAttributes +>; // TODO: Enable generic/polymorphic types once compiler output stabilizes in the Language Server // type PolymorphicAttributes

= Omit<(P & HTMLAttributes), 'as'> & { as?: P['as'] }; diff --git a/packages/create-astro/src/index.ts b/packages/create-astro/src/index.ts index 78036716f..2c9da9d66 100644 --- a/packages/create-astro/src/index.ts +++ b/packages/create-astro/src/index.ts @@ -1,20 +1,28 @@ /* eslint no-console: 'off' */ +import { color, generateProjectName, label, say } from '@astrojs/cli-kit'; +import { random } from '@astrojs/cli-kit/utils'; import { assign, parse, stringify } from 'comment-json'; -import { downloadTemplate } from 'giget'; import { execa, execaCommand } from 'execa'; import fs from 'fs'; -import { say, label, color, generateProjectName } from '@astrojs/cli-kit'; -import { random } from '@astrojs/cli-kit/utils'; -import { bold, dim, green, red, reset, yellow } from 'kleur/colors'; +import { downloadTemplate } from 'giget'; +import { bold, dim, green, reset, yellow } from 'kleur/colors'; import ora from 'ora'; import path from 'path'; import prompts from 'prompts'; import detectPackageManager from 'which-pm-runs'; import yargs from 'yargs-parser'; import { loadWithRocketGradient, rocketAscii } from './gradient.js'; -import { defaultLogLevel, logger } from './logger.js'; +import { logger } from './logger.js'; +import { + banner, + getName, + getVersion, + info, + nextSteps, + typescriptByDefault, + welcome, +} from './messages.js'; import { TEMPLATES } from './templates.js'; -import { getName, getVersion, welcome, banner, typescriptByDefault, nextSteps, info } from './messages.js'; // NOTE: In the v7.x version of npm, the default behavior of `npm init` was changed // to no longer require `--` to pass args and instead pass `--` directly to us. This @@ -83,9 +91,15 @@ export async function main() { logger.debug('Verbose logging turned on'); if (!args.skipHouston) { await say([ - ['Welcome', 'to', label('astro', color.bgGreen, color.black), color.green(`v${version}`) + ',', `${username}!`], + [ + 'Welcome', + 'to', + label('astro', color.bgGreen, color.black), + color.green(`v${version}`) + ',', + `${username}!`, + ], random(welcome), - ]); + ]); await banner(version); } @@ -225,7 +239,7 @@ export async function main() { installSpinner.text = green('Packages installed!'); installSpinner.succeed(); } else { - await info('No problem!', 'Remember to install dependencies after setup.') + await info('No problem!', 'Remember to install dependencies after setup.'); } const gitResponse = await prompts( @@ -251,7 +265,10 @@ export async function main() { await execaCommand('git init', { cwd }); ora().succeed('Git repository created!'); } else { - await info('Sounds good!', `You can come back and run ${color.reset(`git init`)}${color.dim(' later.')}`) + await info( + 'Sounds good!', + `You can come back and run ${color.reset(`git init`)}${color.dim(' later.')}` + ); } const tsResponse = await prompts( @@ -315,7 +332,7 @@ export async function main() { }); ora().succeed('TypeScript settings applied!'); } - + let projectDir = path.relative(process.cwd(), cwd); const devCmd = pkgManager === 'npm' ? 'npm run dev' : `${pkgManager} dev`; await nextSteps({ projectDir, devCmd }); diff --git a/packages/create-astro/src/messages.ts b/packages/create-astro/src/messages.ts index 395a8b4c6..9a3bee571 100644 --- a/packages/create-astro/src/messages.ts +++ b/packages/create-astro/src/messages.ts @@ -1,29 +1,29 @@ /* eslint no-console: 'off' */ -import { exec } from 'node:child_process'; -import { get } from 'node:https'; import { color, label } from '@astrojs/cli-kit'; import { sleep } from '@astrojs/cli-kit/utils'; +import { exec } from 'node:child_process'; +import { get } from 'node:https'; import stripAnsi from 'strip-ansi'; export const welcome = [ - `Let's claim your corner of the internet.`, - `I'll be your assistant today.`, - `Let's build something awesome!`, - `Let's build something great!`, - `Let's build something fast!`, - `Let's make the web weird!`, - `Let's make the web a better place!`, - `Let's create a new project!`, - `Let's create something unqiue!`, - `Time to build a new website.`, - `Time to build a faster website.`, - `Time to build a sweet new website.`, - `We're glad to have you on board.`, - `Keeping the internet weird since 2021.`, - `Initiating launch sequence...`, - `Initiating launch sequence... right... now!`, - `Awaiting further instructions.`, -] + `Let's claim your corner of the internet.`, + `I'll be your assistant today.`, + `Let's build something awesome!`, + `Let's build something great!`, + `Let's build something fast!`, + `Let's make the web weird!`, + `Let's make the web a better place!`, + `Let's create a new project!`, + `Let's create something unqiue!`, + `Time to build a new website.`, + `Time to build a faster website.`, + `Time to build a sweet new website.`, + `We're glad to have you on board.`, + `Keeping the internet weird since 2021.`, + `Initiating launch sequence...`, + `Initiating launch sequence... right... now!`, + `Awaiting further instructions.`, +]; export function getName() { return new Promise((resolve) => { @@ -44,11 +44,10 @@ export function getName() { let v: string; export function getVersion() { return new Promise((resolve) => { - if (v) - return resolve(v); + if (v) return resolve(v); get('https://registry.npmjs.org/astro/latest', (res) => { let body = ''; - res.on('data', chunk => body += chunk); + res.on('data', (chunk) => (body += chunk)); res.on('end', () => { const { version } = JSON.parse(body); v = version; @@ -59,7 +58,11 @@ export function getVersion() { } export async function banner(version: string) { - return console.log(`\n${label('astro', color.bgGreen, color.black)} ${color.green(color.bold(`v${version}`))} ${color.bold('Launch sequence initiated.')}\n`); + return console.log( + `\n${label('astro', color.bgGreen, color.black)} ${color.green( + color.bold(`v${version}`) + )} ${color.bold('Launch sequence initiated.')}\n` + ); } export async function info(prefix: string, text: string) { @@ -83,25 +86,40 @@ export async function error(prefix: string, text: string) { export async function typescriptByDefault() { await info(`Cool!`, 'Astro comes with TypeScript support enabled by default.'); - console.log(`${' '.repeat(3)}${color.dim(`We'll default to the most relaxed settings for you.`)}`); + console.log( + `${' '.repeat(3)}${color.dim(`We'll default to the most relaxed settings for you.`)}` + ); await sleep(300); } -export async function nextSteps({ projectDir, devCmd }: { projectDir: string; devCmd: string; }) { +export async function nextSteps({ projectDir, devCmd }: { projectDir: string; devCmd: string }) { const max = process.stdout.columns; const prefix = max < 80 ? ' ' : ' '.repeat(9); await sleep(200); - console.log(`\n ${color.bgCyan(` ${color.black('next')} `)} ${color.bold('Liftoff confirmed. Explore your project!')}`); + console.log( + `\n ${color.bgCyan(` ${color.black('next')} `)} ${color.bold( + 'Liftoff confirmed. Explore your project!' + )}` + ); await sleep(100); if (projectDir !== '') { - const enter = [`\n${prefix}Enter your project directory using`, color.cyan(`cd ./${projectDir}`, '')]; + const enter = [ + `\n${prefix}Enter your project directory using`, + color.cyan(`cd ./${projectDir}`, ''), + ]; const len = enter[0].length + stripAnsi(enter[1]).length; - console.log(enter.join((len > max) ? '\n' + prefix : ' ')); + console.log(enter.join(len > max ? '\n' + prefix : ' ')); } - console.log(`${prefix}Run ${color.cyan(devCmd)} to start the dev server. ${color.cyan('CTRL+C')} to stop.`); + console.log( + `${prefix}Run ${color.cyan(devCmd)} to start the dev server. ${color.cyan('CTRL+C')} to stop.` + ); await sleep(100); - console.log(`${prefix}Add frameworks like ${color.cyan(`react`)} or ${color.cyan('tailwind')} using ${color.cyan('astro add')}.`); + console.log( + `${prefix}Add frameworks like ${color.cyan(`react`)} or ${color.cyan( + 'tailwind' + )} using ${color.cyan('astro add')}.` + ); await sleep(100); console.log(`\n${prefix}Stuck? Join us at ${color.cyan(`https://astro.build/chat`)}`); await sleep(200); diff --git a/packages/create-astro/test/utils.js b/packages/create-astro/test/utils.js index dc161163b..46a671def 100644 --- a/packages/create-astro/test/utils.js +++ b/packages/create-astro/test/utils.js @@ -42,7 +42,9 @@ export const PROMPT_MESSAGES = { }; export function setup(args = []) { - const { stdout, stdin } = execa('../create-astro.mjs', [...args, '--skip-houston', '--dryrun'], { cwd: testDir }); + const { stdout, stdin } = execa('../create-astro.mjs', [...args, '--skip-houston', '--dryrun'], { + cwd: testDir, + }); return { stdin, stdout,