46 lines
1.2 KiB
JavaScript
Executable File
46 lines
1.2 KiB
JavaScript
Executable File
import getRules from './rules/index.js'
|
|
import { getFilenames } from './helpers.js'
|
|
|
|
const checkDirectory = async (directory) => {
|
|
const filenames = await getFilenames(directory);
|
|
|
|
const rules = getRules(filenames, { directory: directory });
|
|
let issues = []
|
|
for (const rule of rules) {
|
|
const issue = rule.check()
|
|
if (issue) {
|
|
issues = [...issues, ...[issue]]
|
|
}
|
|
}
|
|
|
|
createReport(issues)
|
|
}
|
|
|
|
const createReport = (issues) => {
|
|
if (!!process.argv.find(p => p == '--md')) {
|
|
for (const rule of issues) {
|
|
if (rule.issueCount > 0) {
|
|
console.log()
|
|
console.log(`### ${rule.issueTitle}`)
|
|
console.log()
|
|
console.log(`${rule.issueDescription}`)
|
|
console.log()
|
|
for (const issue of rule.issues) {
|
|
console.log(`- element \`${issue.title}\` on \`${issue.url}\` file.`)
|
|
}
|
|
console.log()
|
|
let referenceLinks = ''
|
|
for (const reference of rule.issueReferences) {
|
|
referenceLinks += `[${reference}](${reference}), `
|
|
}
|
|
console.log(`References : ${referenceLinks}`)
|
|
}
|
|
}
|
|
} else {
|
|
console.log(JSON.stringify(issues))
|
|
}
|
|
}
|
|
|
|
const directory = process.argv[2]
|
|
checkDirectory(directory)
|