Skip to content
This repository was archived by the owner on Sep 10, 2023. It is now read-only.

Commit 53db558

Browse files
committed
Add spinner to next-pkg process
1 parent 836bc74 commit 53db558

File tree

3 files changed

+72
-20
lines changed

3 files changed

+72
-20
lines changed

bin/next-pkg.js

100644100755
Lines changed: 39 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,67 @@
11
#!/usr/bin/env node
2-
const { join } = require('path')
2+
const { resolve } = require('path')
3+
const ora = require('ora')
34
const { copy, remove } = require('fs-extra')
45
const { exec } = require('pkg')
56

6-
const pkg = require(join(process.cwd(), 'package.json'))
7+
const pkg = require(resolve(process.cwd(), 'package.json'))
78

8-
const finalServerPath = join(process.cwd(), '.next-pkg/server.js')
9-
const binaryFilePath = process.platform === 'win32'
10-
? `dist/${pkg.name}.exe`
11-
: `dist/${pkg.name}`
9+
const finalServerPath = resolve(process.cwd(), '.next-pkg/server.js')
10+
const binaryFilePath =
11+
process.platform === 'win32' ? `dist/${pkg.name}.exe` : `dist/${pkg.name}`
1212

13-
const deleteTmpFiles = async () => {
14-
console.log('Deleting temporary files...')
13+
const copyTmpFiles = async () => {
14+
const spinner = ora('Copying extended next-pkg server').start()
1515
try {
16-
await remove('.next-pkg')
16+
await copy(resolve(__dirname, '../lib/server.js'), finalServerPath)
17+
spinner.succeed()
1718
} catch (e) {
18-
console.log(`Error deleting temporary files: ${e}`)
19+
console.log(`Error copying temporary files: ${e}`)
20+
spinner.fail()
21+
throw e
1922
}
2023
}
2124

22-
const copyTmpFiles = async () => {
23-
console.log('Copying extended next-pkg server...')
25+
const compile = async () => {
26+
const spinner = ora('Compiling server with pkg').start()
2427
try {
25-
await copy(join(__dirname, '../lib/server.js'), finalServerPath)
28+
const execution = exec([
29+
finalServerPath,
30+
'--target',
31+
'host',
32+
'--output',
33+
`${binaryFilePath}`
34+
])
35+
spinner.stop()
36+
process.stderr.moveCursor(0, -1)
37+
process.stderr.clearLine()
38+
spinner.start()
39+
await execution
40+
spinner.succeed()
2641
} catch (e) {
27-
console.log(`Error copying temporary files: ${e}`)
42+
console.log(`Error during pkg compiling process: ${e}`)
43+
spinner.fail()
44+
throw e
2845
}
2946
}
3047

31-
const compile = async () => {
32-
console.log('Compiling server with pkg...')
48+
const deleteTmpFiles = async () => {
49+
const spinner = ora('Deleting temporary files').start()
3350
try {
34-
await exec([ finalServerPath, '--target', 'host', '--output', `${binaryFilePath}` ])
51+
await remove('.next-pkg')
52+
spinner.succeed()
3553
} catch (e) {
36-
console.log(`Error during pkg compiling process: ${e}`)
54+
console.log(`Error deleting temporary files: ${e}`)
55+
spinner.fail()
56+
throw e
3757
}
3858
}
3959

4060
const cli = async () => {
4161
await copyTmpFiles()
4262
await compile()
4363
await deleteTmpFiles()
44-
console.log(`Binary compiled at ${binaryFilePath}`)
64+
console.log(`📦 Binary compiled at ${binaryFilePath}`)
4565
}
4666

4767
cli()

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
]
3232
},
3333
"dependencies": {
34-
"fs-extra": "5.0.0"
34+
"fs-extra": "5.0.0",
35+
"ora": "2.0.0"
3536
},
3637
"devDependencies": {
3738
"husky": "0.14.3",

yarn.lock

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,10 @@ cli-spinners@^0.1.2:
415415
version "0.1.2"
416416
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
417417

418+
cli-spinners@^1.1.0:
419+
version "1.1.0"
420+
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06"
421+
418422
cli-truncate@^0.2.1:
419423
version "0.2.1"
420424
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
@@ -426,6 +430,10 @@ cli-width@^2.0.0:
426430
version "2.2.0"
427431
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
428432

433+
clone@^1.0.2:
434+
version "1.0.3"
435+
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
436+
429437
co@^4.6.0:
430438
version "4.6.0"
431439
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -619,6 +627,12 @@ deep-strict-equal@^0.2.0:
619627
dependencies:
620628
core-assert "^0.2.0"
621629

630+
defaults@^1.0.3:
631+
version "1.0.3"
632+
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
633+
dependencies:
634+
clone "^1.0.2"
635+
622636
define-property@^0.2.5:
623637
version "0.2.5"
624638
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@@ -2505,6 +2519,17 @@ optionator@^0.8.1, optionator@^0.8.2:
25052519
type-check "~0.3.2"
25062520
wordwrap "~1.0.0"
25072521

2522+
2523+
version "2.0.0"
2524+
resolved "https://registry.yarnpkg.com/ora/-/ora-2.0.0.tgz#8ec3a37fa7bffb54a3a0c188a1f6798e7e1827cd"
2525+
dependencies:
2526+
chalk "^2.3.1"
2527+
cli-cursor "^2.1.0"
2528+
cli-spinners "^1.1.0"
2529+
log-symbols "^2.2.0"
2530+
strip-ansi "^4.0.0"
2531+
wcwidth "^1.0.1"
2532+
25082533
ora@^0.2.3:
25092534
version "0.2.3"
25102535
resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
@@ -3465,6 +3490,12 @@ w3c-hr-time@^1.0.1:
34653490
dependencies:
34663491
browser-process-hrtime "^0.1.2"
34673492

3493+
wcwidth@^1.0.1:
3494+
version "1.0.1"
3495+
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
3496+
dependencies:
3497+
defaults "^1.0.3"
3498+
34683499
webidl-conversions@^4.0.1, webidl-conversions@^4.0.2:
34693500
version "4.0.2"
34703501
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"

0 commit comments

Comments
 (0)