All files / lib vue-rules.js

95.45% Statements 21/22
90% Branches 18/20
100% Functions 3/3
95.45% Lines 21/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43    1x 1x     9x 9x 6x 3x 3x 3x 1x       2x       9x 3x     9x       3x 3x 821x 9x     3x     1x 3x   3x    
"use strict"
 
const resolveExtendsRules = require("./resolve-extends-rules")
const vueRuleNames = Object.keys(require("eslint-plugin-vue").rules)
 
function toVueRuleOptions(options, name) {
    let vueOptions = options
    if (name === "no-unused-vars" || name === "no-dupe-keys") {
        vueOptions = Array.isArray(options) ? options[0] : options
    } else Eif (name === "no-multi-spaces") {
        vueOptions = ["error"]
        if (Array.isArray(options)) {
            Iif (options[1] && options[1].Property) {
                vueOptions[1] = { ignoreProperties: true }
            }
        } else {
            vueOptions[0] = options
        }
    }
 
    if (Array.isArray(vueOptions) && vueOptions.length === 1) {
        vueOptions = vueOptions[0]
    }
 
    return vueOptions
}
 
function toVueRules(rules) {
    const vueRules = {}
    for (const name of Object.keys(rules)) {
        if (vueRuleNames.includes(name)) {
            vueRules[`vue/${name}`] = toVueRuleOptions(rules[name], name)
        }
    }
    return vueRules
}
 
module.exports = function(config) {
    const rules = resolveExtendsRules(config)
 
    return toVueRules(rules)
}