Skip to content

Commit 8cb8786

Browse files
committed
refactor: async
1 parent 1cc0edf commit 8cb8786

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

cli.js

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
#!/usr/bin/env node
2-
import fs from 'node:fs'
2+
import fs from 'node:fs/promises'
33
import streamConsumers from 'node:stream/consumers'
44
import { parseArgs } from 'node:util'
5-
import { globSync } from 'tinyglobby'
5+
import { glob } from 'tinyglobby'
66
import sortPackageJson from './index.js'
77
import Reporter from './reporter.js'
8+
import packageJson from './package.json' with { type: 'json' }
89

910
function showVersion() {
10-
const { name, version } = JSON.parse(
11-
fs.readFileSync(new URL('package.json', import.meta.url)),
12-
)
11+
const { name, version } = packageJson
1312

1413
console.log(`${name} ${version}`)
1514
}
@@ -57,33 +56,36 @@ function parseCliArguments() {
5756
return { options, patterns }
5857
}
5958

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')
6261
const sorted = sortPackageJson(original)
6362
if (sorted === original) {
6463
return reporter.reportNotChanged(file)
6564
}
6665

6766
if (!isCheck) {
68-
fs.writeFileSync(file, sorted)
67+
await fs.writeFile(file, sorted)
6968
}
7069

7170
reporter.reportChanged(file)
7271
}
7372

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 })
7675

77-
const reporter = new Reporter(files, options)
76+
const reporter = new Reporter(options)
7877
const { isCheck } = options
7978

8079
for (const file of files) {
80+
reporter.reportFound(file)
81+
8182
try {
82-
sortPackageJsonFile(file, reporter, isCheck)
83+
await sortPackageJsonFile(file, reporter, isCheck)
8384
} catch (error) {
8485
reporter.reportFailed(file, error)
8586
}
8687
}
88+
8789
reporter.printSummary()
8890
}
8991

@@ -93,7 +95,7 @@ async function sortPackageJsonFromStdin() {
9395
)
9496
}
9597

96-
function run() {
98+
async function run() {
9799
let options, patterns
98100
try {
99101
;({ options, patterns } = parseCliArguments())
@@ -121,11 +123,11 @@ function run() {
121123
return sortPackageJsonFromStdin()
122124
}
123125

124-
sortPackageJsonFiles(patterns, {
126+
await sortPackageJsonFiles(patterns, {
125127
ignore: options.ignore,
126128
isCheck: options.check,
127129
shouldBeQuiet: options.quiet,
128130
})
129131
}
130132

131-
run()
133+
await run()

reporter.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ class Reporter {
66
#status
77
#logger
88

9-
constructor(files, options) {
9+
constructor(options) {
1010
this.#options = options
1111
this.#status = {
12-
matchedFilesCount: files.length,
12+
matchedFilesCount: 0,
1313
failedFilesCount: 0,
1414
wellSortedFilesCount: 0,
1515
changedFilesCount: 0,
@@ -29,6 +29,10 @@ class Reporter {
2929
}
3030
}
3131

32+
reportFound(/* file */) {
33+
this.#status.matchedFilesCount++
34+
}
35+
3236
// The file is well-sorted
3337
reportNotChanged(/* file */) {
3438
this.#status.wellSortedFilesCount++

0 commit comments

Comments
 (0)