1
1
#!/usr/bin/env node
2
- import fs from 'node:fs'
2
+ import fs from 'node:fs/promises '
3
3
import streamConsumers from 'node:stream/consumers'
4
4
import { parseArgs } from 'node:util'
5
- import { globSync } from 'tinyglobby'
5
+ import { glob } from 'tinyglobby'
6
6
import sortPackageJson from './index.js'
7
7
import Reporter from './reporter.js'
8
+ import packageJson from './package.json' with { type : 'json' }
8
9
9
10
function showVersion ( ) {
10
- const { name, version } = JSON . parse (
11
- fs . readFileSync ( new URL ( 'package.json' , import . meta. url ) ) ,
12
- )
11
+ const { name, version } = packageJson
13
12
14
13
console . log ( `${ name } ${ version } ` )
15
14
}
@@ -57,33 +56,36 @@ function parseCliArguments() {
57
56
return { options, patterns }
58
57
}
59
58
60
- function sortPackageJsonFile ( file , reporter , isCheck ) {
61
- const original = fs . readFileSync ( file , 'utf8' )
59
+ async function sortPackageJsonFile ( file , reporter , isCheck ) {
60
+ const original = await fs . readFile ( file , 'utf8' )
62
61
const sorted = sortPackageJson ( original )
63
62
if ( sorted === original ) {
64
63
return reporter . reportNotChanged ( file )
65
64
}
66
65
67
66
if ( ! isCheck ) {
68
- fs . writeFileSync ( file , sorted )
67
+ await fs . writeFile ( file , sorted )
69
68
}
70
69
71
70
reporter . reportChanged ( file )
72
71
}
73
72
74
- function sortPackageJsonFiles ( patterns , { ignore, ...options } ) {
75
- const files = globSync ( patterns , { ignore } )
73
+ async function sortPackageJsonFiles ( patterns , { ignore, ...options } ) {
74
+ const files = await glob ( patterns , { ignore } )
76
75
77
- const reporter = new Reporter ( files , options )
76
+ const reporter = new Reporter ( options )
78
77
const { isCheck } = options
79
78
80
79
for ( const file of files ) {
80
+ reporter . reportFound ( file )
81
+
81
82
try {
82
- sortPackageJsonFile ( file , reporter , isCheck )
83
+ await sortPackageJsonFile ( file , reporter , isCheck )
83
84
} catch ( error ) {
84
85
reporter . reportFailed ( file , error )
85
86
}
86
87
}
88
+
87
89
reporter . printSummary ( )
88
90
}
89
91
@@ -93,7 +95,7 @@ async function sortPackageJsonFromStdin() {
93
95
)
94
96
}
95
97
96
- function run ( ) {
98
+ async function run ( ) {
97
99
let options , patterns
98
100
try {
99
101
; ( { options, patterns } = parseCliArguments ( ) )
@@ -121,11 +123,11 @@ function run() {
121
123
return sortPackageJsonFromStdin ( )
122
124
}
123
125
124
- sortPackageJsonFiles ( patterns , {
126
+ await sortPackageJsonFiles ( patterns , {
125
127
ignore : options . ignore ,
126
128
isCheck : options . check ,
127
129
shouldBeQuiet : options . quiet ,
128
130
} )
129
131
}
130
132
131
- run ( )
133
+ await run ( )
0 commit comments