Skip to content

Commit 7e8c758

Browse files
committed
Go
1 parent 9ddf129 commit 7e8c758

File tree

2 files changed

+20
-25
lines changed

2 files changed

+20
-25
lines changed
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { createGraphQLYoga } from './index.js'
1+
import { createGraphQLYoga, spinner } from './index.js'
22

33
createGraphQLYoga().catch((e) => {
4-
// eslint-disable-next-line no-console
5-
console.error(e)
4+
spinner.fail(e.message)
65
process.exit(1)
76
})

packages/create-graphql-yoga/src/index.ts

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { join } from 'node:path'
66
import { Readable } from 'node:stream'
77
import { existsSync, mkdirSync } from 'node:fs'
88

9-
const spinner = ora()
9+
export const spinner = ora()
1010

1111
const options = {
1212
template: {
@@ -23,16 +23,14 @@ async function getVersionByTag(packageName: string, tag: string) {
2323
const url = getRegistryAPIUrl(packageName, tag)
2424
const response = await fetch(url)
2525
if (response.status === 404) {
26-
spinner.fail(`Package not found: ${packageName}`)
27-
process.exit(1)
26+
throw new Error(`Package not found: ${packageName}`)
2827
}
2928
if (!response.ok) {
30-
spinner.fail(
29+
throw new Error(
3130
`Failed to fetch package ${packageName} with ${
3231
response.status
3332
}: ${await response.text()}`,
3433
)
35-
process.exit(1)
3634
}
3735
const { version } = await response.json()
3836
return version
@@ -64,20 +62,17 @@ export async function createGraphQLYoga(fullArgs: string[] = process.argv) {
6462
const url = getTarballUrl(packageName, version)
6563
const response = await fetch(url)
6664
if (response.status === 404) {
67-
spinner.fail(`Template not found: ${template}`)
68-
process.exit(1)
65+
throw new Error(`Template not found: ${template}`)
6966
}
7067
if (!response.ok) {
71-
spinner.fail(
68+
throw new Error(
7269
`Failed to fetch template ${template} with ${
7370
response.status
7471
}: ${await response.text()}`,
7572
)
76-
process.exit(1)
7773
}
7874
if (!response.body) {
79-
spinner.fail(`Failed to fetch template ${template} with empty body`)
80-
process.exit(1)
75+
throw new Error(`Failed to fetch template ${template} with empty body`)
8176
}
8277
const nodeStream = Readable.from(
8378
response.body as unknown as AsyncIterable<Uint8Array>,
@@ -88,17 +83,18 @@ export async function createGraphQLYoga(fullArgs: string[] = process.argv) {
8883
C: targetDir,
8984
})
9085
if (existsSync(targetDir)) {
91-
spinner.fail(`Target directory ${targetDir} already exists.`)
92-
process.exit(1)
86+
throw new Error(`Target directory ${targetDir} already exists.`)
9387
}
9488
mkdirSync(targetDir, { recursive: true })
95-
nodeStream
96-
.pipe(extractedTarStream)
97-
.once('error', (err) => {
98-
spinner.fail(`Failed to extract template ${template} with ${err}`)
99-
process.exit(1)
100-
})
101-
.once('close', () => {
102-
spinner.succeed(`Template ${template} created on ${targetDir}.`)
103-
})
89+
await new Promise<void>((resolve, reject) => {
90+
nodeStream
91+
.pipe(extractedTarStream)
92+
.once('error', (err) => {
93+
reject(new Error(`Failed to extract template ${template} with ${err}`))
94+
})
95+
.once('close', () => {
96+
resolve()
97+
})
98+
})
99+
spinner.succeed(`Template ${template} created on ${targetDir}.`)
104100
}

0 commit comments

Comments
 (0)