@yusufkandemir/eslint-plugin-lodash-template
Version:
ESLint plugin for John Resig-style micro template, Lodash's template, Underscore's template and EJS.
156 lines (151 loc) • 5.12 kB
JavaScript
const baseRules = [
{
rule: require("../rules/attribute-name-casing"),
ruleName: "attribute-name-casing",
ruleId: "lodash-template/attribute-name-casing",
},
{
rule: require("../rules/attribute-value-quote"),
ruleName: "attribute-value-quote",
ruleId: "lodash-template/attribute-value-quote",
},
{
rule: require("../rules/element-name-casing"),
ruleName: "element-name-casing",
ruleId: "lodash-template/element-name-casing",
},
{
rule: require("../rules/html-closing-bracket-newline"),
ruleName: "html-closing-bracket-newline",
ruleId: "lodash-template/html-closing-bracket-newline",
},
{
rule: require("../rules/html-closing-bracket-spacing"),
ruleName: "html-closing-bracket-spacing",
ruleId: "lodash-template/html-closing-bracket-spacing",
},
{
rule: require("../rules/html-comment-content-newline"),
ruleName: "html-comment-content-newline",
ruleId: "lodash-template/html-comment-content-newline",
},
{
rule: require("../rules/html-comment-spacing"),
ruleName: "html-comment-spacing",
ruleId: "lodash-template/html-comment-spacing",
},
{
rule: require("../rules/html-content-newline"),
ruleName: "html-content-newline",
ruleId: "lodash-template/html-content-newline",
},
{
rule: require("../rules/html-indent"),
ruleName: "html-indent",
ruleId: "lodash-template/html-indent",
},
{
rule: require("../rules/max-attributes-per-line"),
ruleName: "max-attributes-per-line",
ruleId: "lodash-template/max-attributes-per-line",
},
{
rule: require("../rules/no-duplicate-attributes"),
ruleName: "no-duplicate-attributes",
ruleId: "lodash-template/no-duplicate-attributes",
},
{
rule: require("../rules/no-empty-template-tag"),
ruleName: "no-empty-template-tag",
ruleId: "lodash-template/no-empty-template-tag",
},
{
rule: require("../rules/no-html-comments"),
ruleName: "no-html-comments",
ruleId: "lodash-template/no-html-comments",
},
{
rule: require("../rules/no-invalid-template-interpolation"),
ruleName: "no-invalid-template-interpolation",
ruleId: "lodash-template/no-invalid-template-interpolation",
},
{
rule: require("../rules/no-irregular-whitespace"),
ruleName: "no-irregular-whitespace",
ruleId: "lodash-template/no-irregular-whitespace",
},
{
rule: require("../rules/no-multi-spaces-in-html-tag"),
ruleName: "no-multi-spaces-in-html-tag",
ruleId: "lodash-template/no-multi-spaces-in-html-tag",
},
{
rule: require("../rules/no-multi-spaces-in-scriptlet"),
ruleName: "no-multi-spaces-in-scriptlet",
ruleId: "lodash-template/no-multi-spaces-in-scriptlet",
},
{
rule: require("../rules/no-script-parsing-error"),
ruleName: "no-script-parsing-error",
ruleId: "lodash-template/no-script-parsing-error",
},
{
rule: require("../rules/no-semi-in-template-interpolation"),
ruleName: "no-semi-in-template-interpolation",
ruleId: "lodash-template/no-semi-in-template-interpolation",
},
{
rule: require("../rules/no-space-attribute-equal-sign"),
ruleName: "no-space-attribute-equal-sign",
ruleId: "lodash-template/no-space-attribute-equal-sign",
},
{
rule: require("../rules/no-template-tag-in-start-tag"),
ruleName: "no-template-tag-in-start-tag",
ruleId: "lodash-template/no-template-tag-in-start-tag",
},
{
rule: require("../rules/no-warning-html-comments"),
ruleName: "no-warning-html-comments",
ruleId: "lodash-template/no-warning-html-comments",
},
{
rule: require("../rules/prefer-escape-template-interpolations"),
ruleName: "prefer-escape-template-interpolations",
ruleId: "lodash-template/prefer-escape-template-interpolations",
},
{
rule: require("../rules/scriptlet-indent"),
ruleName: "scriptlet-indent",
ruleId: "lodash-template/scriptlet-indent",
},
{
rule: require("../rules/template-tag-spacing"),
ruleName: "template-tag-spacing",
ruleId: "lodash-template/template-tag-spacing",
},
];
const rules = baseRules.map((obj) => {
const rule = obj.rule;
rule.meta.docs.ruleName = obj.ruleName;
rule.meta.docs.ruleId = obj.ruleId;
return rule;
});
/**
* Collect the rules
* @param {string} category category
* @returns {Array} rules
*/
function collectRules(category) {
return rules.reduce((obj, rule) => {
if (
(!category || rule.meta.docs.category === category) &&
!rule.meta.deprecated
) {
obj[rule.meta.docs.ruleId] = "error";
}
return obj;
}, {});
}
module.exports = { rules, collectRules };
;