pug-lint-wb-loader
Version:
用于pug-lint的loader
36 lines (32 loc) • 1.1 kB
JavaScript
/**
* 用于非webpack loader机制下的验证
*/
const util = require('util')
const PugLint = require('pug-lint')
const getFullMessage = require('./message')
const parse = require('./parse.js')
const linter = new PugLint()
let configured = false
module.exports = function (filename, content, config) {
if(!configured) linter.configure(parse(config))
const result = linter.checkString(content)
let errors = null
if (result.length) {
errors = result.sort(function (a, b) {
let line = a.line - b.line
if (line == 0) return (a.column || 0) - (b.column || 0)
else return line
}).map(function (problem) {
let errMsg = '\npug-lint报错信息\n' +
'报错规则: %s\n' +
'规则查询: %s\n' +
'报错消息: ' + getFullMessage(filename, content, problem.line, problem.column, problem.msg) + '\n'
return util.format(
errMsg,
problem.code.toLowerCase().replace(/^pug:/, '').replace(/^lint_/, ''),
'https://github.com/pugjs/pug-lint/blob/master/docs/rules.md',
)
}).join('\n\n')
}
return errors
}