Skip to content

Commit b186c19

Browse files
committed
refactor(cli): remove ora
1 parent 244f777 commit b186c19

File tree

10 files changed

+154
-206
lines changed

10 files changed

+154
-206
lines changed

.changeset/six-rings-hammer.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@wagmi/cli": patch
3+
---
4+
5+
Removed `ora` for `nanospinner`.

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
"fdir": "^6.1.1",
7777
"find-up": "^6.3.0",
7878
"fs-extra": "^11.2.0",
79-
"ora": "^6.3.1",
79+
"nanospinner": "1.2.2",
8080
"pathe": "^1.1.2",
8181
"picocolors": "^1.0.0",
8282
"picomatch": "^3.0.0",

packages/cli/src/commands/generate.test.ts

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ test('generates output', async () => {
4343
await generate()
4444

4545
expect(console.formatted).toMatchInlineSnapshot(`
46-
"- Validating plugins
47-
Validating plugins
48-
- Resolving contracts
49-
Resolving contracts
50-
- Running plugins
51-
Running plugins
52-
- Writing to generated.js
53-
Writing to generated.js"
54-
`)
46+
"- Validating plugins
47+
Validating plugins
48+
- Resolving contracts
49+
Resolving contracts
50+
- Running plugins
51+
Running plugins
52+
- Writing to generated.js
53+
Writing to generated.js"
54+
`)
5555
})
5656

5757
test('generates typescript output', async () => {
@@ -77,15 +77,15 @@ test('generates typescript output', async () => {
7777
await generate()
7878

7979
expect(console.formatted).toMatchInlineSnapshot(`
80-
"- Validating plugins
81-
Validating plugins
82-
- Resolving contracts
83-
Resolving contracts
84-
- Running plugins
85-
Running plugins
86-
- Writing to generated.ts
87-
Writing to generated.ts"
88-
`)
80+
"- Validating plugins
81+
Validating plugins
82+
- Resolving contracts
83+
Resolving contracts
84+
- Running plugins
85+
Running plugins
86+
- Writing to generated.ts
87+
Writing to generated.ts"
88+
`)
8989
await expect(typecheck(paths.tsconfig)).resolves.toMatchInlineSnapshot('""')
9090
})
9191

@@ -124,15 +124,15 @@ test('generates output with plugin', async () => {
124124
await generate()
125125

126126
expect(console.formatted).toMatchInlineSnapshot(`
127-
"- Validating plugins
128-
Validating plugins
129-
- Resolving contracts
130-
Resolving contracts
131-
- Running plugins
132-
Running plugins
133-
- Writing to generated.ts
134-
Writing to generated.ts"
135-
`)
127+
"- Validating plugins
128+
Validating plugins
129+
- Resolving contracts
130+
Resolving contracts
131+
- Running plugins
132+
Running plugins
133+
- Writing to generated.ts
134+
Writing to generated.ts"
135+
`)
136136
/* eslint-disable no-irregular-whitespace */
137137
await expect(
138138
readFile(resolve(dir, 'generated.ts'), 'utf8'),
@@ -273,12 +273,12 @@ test('behavior: displays message if no contracts found', async () => {
273273

274274
expect(console.formatted).toMatchInlineSnapshot(
275275
`
276-
"- Validating plugins
277-
Validating plugins
278-
- Resolving contracts
279-
Resolving contracts
280-
No contracts found."
281-
`,
276+
"- Validating plugins
277+
Validating plugins
278+
- Resolving contracts
279+
× Resolving contracts
280+
No contracts found."
281+
`,
282282
)
283283
})
284284

@@ -389,16 +389,16 @@ test('behavior: displays message if using --watch flag without watchers configur
389389
await generate({ watch: true })
390390

391391
expect(console.formatted).toMatchInlineSnapshot(`
392-
"- Validating plugins
393-
Validating plugins
394-
- Resolving contracts
395-
Resolving contracts
396-
- Running plugins
397-
Running plugins
398-
- Writing to generated.ts
399-
Writing to generated.ts
400-
Used --watch flag, but no plugins are watching."
401-
`)
392+
"- Validating plugins
393+
Validating plugins
394+
- Resolving contracts
395+
Resolving contracts
396+
- Running plugins
397+
Running plugins
398+
- Writing to generated.ts
399+
Writing to generated.ts
400+
Used --watch flag, but no plugins are watching."
401+
`)
402402
})
403403

404404
test.todo('behavior: save config file logs change')

packages/cli/src/commands/generate.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ export async function generate(options: Generate = {}) {
7676
...x,
7777
id: `${x.name}-${i}`,
7878
}))
79-
const spinner = logger.spinner()
80-
spinner.start('Validating plugins')
79+
const spinner = logger.spinner('Validating plugins')
80+
spinner.start()
8181
for (const plugin of plugins) {
8282
await plugin.validate?.()
8383
}
84-
spinner.succeed()
84+
spinner.success()
8585

8686
// Add plugin contracts to config contracts
8787
const contractConfigs = config.contracts ?? []
@@ -113,11 +113,11 @@ export async function generate(options: Generate = {}) {
113113
const sortedAscContractMap = new Map([...contractMap].sort())
114114
const contracts = [...sortedAscContractMap.values()]
115115
if (!contracts.length && !options.watch) {
116-
spinner.fail()
116+
spinner.error()
117117
logger.warn('No contracts found.')
118118
return
119119
}
120-
spinner.succeed()
120+
spinner.success()
121121

122122
// Run plugins
123123
const imports = []
@@ -144,7 +144,7 @@ export async function generate(options: Generate = {}) {
144144
result.imports && imports.push(result.imports)
145145
result.prepend && prepend.push(result.prepend)
146146
}
147-
spinner.succeed()
147+
spinner.success()
148148

149149
// Write output to file
150150
spinner.start(`Writing to ${pc.gray(config.out)}`)
@@ -155,7 +155,7 @@ export async function generate(options: Generate = {}) {
155155
prepend,
156156
filename: config.out,
157157
})
158-
spinner.succeed()
158+
spinner.success()
159159

160160
if (options.watch) {
161161
if (!watchConfigs.length) {
@@ -227,16 +227,18 @@ export async function generate(options: Generate = {}) {
227227
result.prepend && prepend.push(result.prepend)
228228
}
229229

230-
const spinner = logger.spinner()
231-
spinner.start(`Writing to ${pc.gray(config.out)}`)
230+
const spinner = logger.spinner(
231+
`Writing to ${pc.gray(config.out)}`,
232+
)
233+
spinner.start()
232234
await writeContracts({
233235
content,
234236
contracts,
235237
imports,
236238
prepend,
237239
filename: config.out,
238240
})
239-
spinner.succeed()
241+
spinner.success()
240242
}, watchWriteDelay)
241243
needsWrite = false
242244
}

packages/cli/src/commands/init.test.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ test('creates config file', async () => {
3838
expect(
3939
console.formatted.replaceAll(dir, 'path/to/project'),
4040
).toMatchInlineSnapshot(`
41-
"- Creating config
42-
Creating config
43-
Config created at wagmi.config.js"
44-
`)
41+
"- Creating config
42+
Creating config
43+
Config created at wagmi.config.js"
44+
`)
4545
})
4646

4747
test('parameters: config', async () => {
@@ -68,10 +68,10 @@ test('parameters: config', async () => {
6868
expect(
6969
console.formatted.replaceAll(dir, 'path/to/project'),
7070
).toMatchInlineSnapshot(`
71-
"- Creating config
72-
Creating config
73-
Config created at foo.config.ts"
74-
`)
71+
"- Creating config
72+
Creating config
73+
Config created at foo.config.ts"
74+
`)
7575
})
7676

7777
test('parameters: content', async () => {
@@ -104,10 +104,10 @@ test('parameters: content', async () => {
104104
expect(
105105
console.formatted.replaceAll(dir, 'path/to/project'),
106106
).toMatchInlineSnapshot(`
107-
"- Creating config
108-
Creating config
109-
Config created at wagmi.config.ts"
110-
`)
107+
"- Creating config
108+
Creating config
109+
Config created at wagmi.config.ts"
110+
`)
111111
})
112112

113113
test('parameters: root', async () => {
@@ -135,10 +135,10 @@ test('parameters: root', async () => {
135135
expect(
136136
console.formatted.replaceAll(dir, 'path/to/project'),
137137
).toMatchInlineSnapshot(`
138-
"- Creating config
139-
Creating config
140-
Config created at foo/wagmi.config.js"
141-
`)
138+
"- Creating config
139+
Creating config
140+
Config created at foo/wagmi.config.js"
141+
`)
142142
})
143143

144144
test('behavior: creates config file in TypeScript format', async () => {
@@ -166,10 +166,10 @@ test('behavior: creates config file in TypeScript format', async () => {
166166
expect(
167167
console.formatted.replaceAll(dir, 'path/to/project'),
168168
).toMatchInlineSnapshot(`
169-
"- Creating config
170-
Creating config
171-
Config created at wagmi.config.ts"
172-
`)
169+
"- Creating config
170+
Creating config
171+
Config created at wagmi.config.ts"
172+
`)
173173
})
174174

175175
test('behavior: displays config file location when config exists', async () => {

packages/cli/src/commands/init.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ export async function init(options: Init = {}) {
4747
return configPath
4848
}
4949

50-
const spinner = logger.spinner()
51-
spinner.start('Creating config')
50+
const spinner = logger.spinner('Creating config')
51+
spinner.start()
5252
// Check if project is using TypeScript
5353
const isUsingTypeScript = await getIsUsingTypeScript()
5454
const rootDir = resolve(options.root || process.cwd())
@@ -86,7 +86,7 @@ export async function init(options: Init = {}) {
8686

8787
const formatted = await format(content)
8888
await fs.writeFile(outPath, formatted)
89-
spinner.succeed()
89+
spinner.success()
9090
logger.success(
9191
`Config created at ${pc.gray(relative(process.cwd(), outPath))}`,
9292
)

packages/cli/src/logger.test.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@ test.each(['success', 'info', 'log', 'warn', 'error'])('%s()', (level) => {
2020

2121
test('spinner', () => {
2222
const console = watchConsole()
23-
const spinner = logger.spinner()
24-
25-
spinner.start('Foo bar baz')
26-
spinner.succeed('Foo bar baz')
27-
spinner.fail('Foo bar baz')
23+
const spinner = logger.spinner('start')
24+
spinner.start()
25+
spinner.success('success')
26+
spinner.error('error')
2827
expect(console.formatted).toMatchInlineSnapshot(`
29-
"- Foo bar baz
30-
✔ Foo bar baz
31-
✖ Foo bar baz"
32-
`)
28+
"- start
29+
√ success
30+
× error"
31+
`)
3332
})

packages/cli/src/logger.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { format as utilFormat } from 'node:util'
2-
import ora from 'ora'
2+
import { createSpinner } from 'nanospinner'
33
import pc from 'picocolors'
44

55
function format(args: any[]) {
@@ -30,9 +30,8 @@ export function error(...args: any[]) {
3030
console.error(pc.red(format(args)))
3131
}
3232

33-
export function spinner() {
34-
return ora({
33+
export function spinner(text: string) {
34+
return createSpinner(text, {
3535
color: 'yellow',
36-
spinner: 'dots',
3736
})
3837
}

0 commit comments

Comments
 (0)