in script/component-status-project/build.ts [21:54]
function getComponentStatuses(filenames: string[], dir: string) {
const promises: Promise<ComponentStatus | null>[] = []
const handleCallback = (
filename: string,
resolve: (value: ComponentStatus | null) => void,
reject: (value: unknown) => void
) => {
fs.readFile(path.resolve(dir, filename), 'utf-8', (err, content) => {
if (err) return reject(err)
if (fm.test(content)) {
const {
attributes: {title, status}
} = fm(content)
if (status) {
return resolve({[title]: status})
}
}
resolve(null)
})
}
for (const filename of filenames) {
const promise: Promise<ComponentStatus | null> = new Promise((resolve, reject) => {
return handleCallback(filename, resolve, reject)
})
promises.push(promise)
}
return Promise.all(promises)
}