From eaacf4d7ebd94831ebd901df4241c60213b3101f Mon Sep 17 00:00:00 2001 From: Toru Nagashima Date: Fri, 1 Sep 2017 22:54:38 +0900 Subject: [PATCH 1/2] Fix: don't use internal APIs of ESLint (fixes #171) --- lib/rules/attribute-hyphenation.js | 4 +--- lib/rules/html-end-tags.js | 4 +--- lib/rules/html-no-self-closing.js | 4 +--- lib/rules/html-quotes.js | 4 +--- lib/rules/html-self-closing.js | 4 +--- lib/rules/max-attributes-per-line.js | 4 +--- lib/rules/mustache-interpolation-spacing.js | 4 +--- lib/rules/no-confusing-v-for-v-if.js | 4 +--- lib/rules/no-duplicate-attributes.js | 4 +--- lib/rules/no-invalid-v-bind.js | 4 +--- lib/rules/no-invalid-v-cloak.js | 4 +--- lib/rules/no-invalid-v-else-if.js | 4 +--- lib/rules/no-invalid-v-else.js | 4 +--- lib/rules/no-invalid-v-for.js | 4 +--- lib/rules/no-invalid-v-html.js | 4 +--- lib/rules/no-invalid-v-if.js | 4 +--- lib/rules/no-invalid-v-model.js | 4 +--- lib/rules/no-invalid-v-on.js | 4 +--- lib/rules/no-invalid-v-once.js | 4 +--- lib/rules/no-invalid-v-pre.js | 4 +--- lib/rules/no-invalid-v-show.js | 4 +--- lib/rules/no-invalid-v-text.js | 4 +--- lib/rules/no-template-key.js | 4 +--- lib/rules/no-textarea-mustache.js | 4 +--- lib/rules/require-component-is.js | 4 +--- lib/rules/require-v-for-key.js | 4 +--- lib/rules/this-in-template.js | 4 +--- lib/rules/v-bind-style.js | 4 +--- lib/rules/v-on-style.js | 4 +--- lib/rules/valid-v-bind.js | 4 +--- lib/rules/valid-v-cloak.js | 4 +--- lib/rules/valid-v-else-if.js | 4 +--- lib/rules/valid-v-else.js | 4 +--- lib/rules/valid-v-for.js | 4 +--- lib/rules/valid-v-html.js | 4 +--- lib/rules/valid-v-if.js | 4 +--- lib/rules/valid-v-model.js | 4 +--- lib/rules/valid-v-on.js | 4 +--- lib/rules/valid-v-once.js | 4 +--- lib/rules/valid-v-pre.js | 4 +--- lib/rules/valid-v-show.js | 4 +--- lib/rules/valid-v-text.js | 4 +--- lib/utils/index.js | 10 ++++++---- package.json | 2 +- 44 files changed, 49 insertions(+), 131 deletions(-) diff --git a/lib/rules/attribute-hyphenation.js b/lib/rules/attribute-hyphenation.js index 177b7a10a..fc0f81fd1 100644 --- a/lib/rules/attribute-hyphenation.js +++ b/lib/rules/attribute-hyphenation.js @@ -43,7 +43,7 @@ function create (context) { // Public // ---------------------------------------------------------------------- - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { VAttribute (node) { if (!utils.isCustomComponent(node.parent.parent)) return @@ -53,8 +53,6 @@ function create (context) { reportIssue(node, name) } }) - - return {} } module.exports = { diff --git a/lib/rules/html-end-tags.js b/lib/rules/html-end-tags.js index 511351095..427896310 100644 --- a/lib/rules/html-end-tags.js +++ b/lib/rules/html-end-tags.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { VElement (node) { const name = node.name const isVoid = utils.isHtmlVoidElementName(name) @@ -48,8 +48,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/html-no-self-closing.js b/lib/rules/html-no-self-closing.js index b85ab12fd..a02d23a48 100644 --- a/lib/rules/html-no-self-closing.js +++ b/lib/rules/html-no-self-closing.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { 'VElement' (node) { if (utils.isSvgElementNode(node)) { return @@ -42,8 +42,6 @@ function create (context) { }) } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/html-quotes.js b/lib/rules/html-quotes.js index 2dd4ec45c..26e8c3914 100644 --- a/lib/rules/html-quotes.js +++ b/lib/rules/html-quotes.js @@ -27,7 +27,7 @@ function create (context) { const quoteChar = double ? '"' : "'" const quoteName = double ? 'double quotes' : 'single quotes' - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { 'VAttribute[value!=null]' (node) { const text = sourceCode.getText(node.value) const firstChar = text[0] @@ -41,8 +41,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/html-self-closing.js b/lib/rules/html-self-closing.js index 7dc2bb28b..31e474098 100644 --- a/lib/rules/html-self-closing.js +++ b/lib/rules/html-self-closing.js @@ -89,7 +89,7 @@ function create (context) { const sourceCode = context.getSourceCode() const options = parseOptions(context.options[0]) - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { 'VElement' (node) { const elementType = getElementType(node) const mode = options[elementType] @@ -132,8 +132,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/max-attributes-per-line.js b/lib/rules/max-attributes-per-line.js index f5309e4a1..fd5c6c2bc 100644 --- a/lib/rules/max-attributes-per-line.js +++ b/lib/rules/max-attributes-per-line.js @@ -71,7 +71,7 @@ module.exports = { const singlelinemMaximum = configuration.singleline const canHaveFirstLine = configuration.allowFirstLine - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { 'VStartTag' (node) { const numberOfAttributes = node.attributes.length @@ -155,7 +155,5 @@ module.exports = { return propsPerLine } - - return {} } } diff --git a/lib/rules/mustache-interpolation-spacing.js b/lib/rules/mustache-interpolation-spacing.js index 4ea93e96a..d3086147e 100644 --- a/lib/rules/mustache-interpolation-spacing.js +++ b/lib/rules/mustache-interpolation-spacing.js @@ -65,7 +65,7 @@ module.exports = { // Public // ---------------------------------------------------------------------- - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { 'VExpressionContainer[expression!=null]' (node) { const tokens = template.getTokens(node, { includeComments: true, @@ -85,7 +85,5 @@ module.exports = { } } }) - - return { } } } diff --git a/lib/rules/no-confusing-v-for-v-if.js b/lib/rules/no-confusing-v-for-v-if.js index d69632243..8aa64ffff 100644 --- a/lib/rules/no-confusing-v-for-v-if.js +++ b/lib/rules/no-confusing-v-for-v-if.js @@ -37,7 +37,7 @@ function isUsingIterationVar (vIf) { * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='if']" (node) { const element = node.parent.parent @@ -50,8 +50,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-duplicate-attributes.js b/lib/rules/no-duplicate-attributes.js index 53b918ed1..b7bf7f84c 100644 --- a/lib/rules/no-duplicate-attributes.js +++ b/lib/rules/no-duplicate-attributes.js @@ -51,7 +51,7 @@ function create (context) { return directiveNames.has(name) || attributeNames.has(name) } - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { 'VStartTag' () { directiveNames.clear() attributeNames.clear() @@ -78,8 +78,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-bind.js b/lib/rules/no-invalid-v-bind.js index 081452e92..61ff9c22d 100644 --- a/lib/rules/no-invalid-v-bind.js +++ b/lib/rules/no-invalid-v-bind.js @@ -24,7 +24,7 @@ const VALID_MODIFIERS = new Set(['prop', 'camel', 'sync']) * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='bind']" (node) { for (const modifier of node.key.modifiers) { if (!VALID_MODIFIERS.has(modifier)) { @@ -46,8 +46,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-cloak.js b/lib/rules/no-invalid-v-cloak.js index d292d9f78..39277a971 100644 --- a/lib/rules/no-invalid-v-cloak.js +++ b/lib/rules/no-invalid-v-cloak.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='cloak']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-else-if.js b/lib/rules/no-invalid-v-else-if.js index 21ec073da..99e951365 100644 --- a/lib/rules/no-invalid-v-else-if.js +++ b/lib/rules/no-invalid-v-else-if.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='else-if']" (node) { const element = node.parent.parent @@ -70,8 +70,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-else.js b/lib/rules/no-invalid-v-else.js index 1455bed0e..0ee5dd49b 100644 --- a/lib/rules/no-invalid-v-else.js +++ b/lib/rules/no-invalid-v-else.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='else']" (node) { const element = node.parent.parent @@ -70,8 +70,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-for.js b/lib/rules/no-invalid-v-for.js index 1cb022f94..2c16c40cd 100644 --- a/lib/rules/no-invalid-v-for.js +++ b/lib/rules/no-invalid-v-for.js @@ -79,7 +79,7 @@ function checkKey (context, vFor, element) { function create (context) { const sourceCode = context.getSourceCode() - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='for']" (node) { const element = node.parent.parent @@ -151,8 +151,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-html.js b/lib/rules/no-invalid-v-html.js index b0606b574..3f71a3fdf 100644 --- a/lib/rules/no-invalid-v-html.js +++ b/lib/rules/no-invalid-v-html.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='html']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-if.js b/lib/rules/no-invalid-v-if.js index 89a5a6ade..27a280f2c 100644 --- a/lib/rules/no-invalid-v-if.js +++ b/lib/rules/no-invalid-v-if.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='if']" (node) { const element = node.parent.parent @@ -63,8 +63,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-model.js b/lib/rules/no-invalid-v-model.js index cd75bf10f..564df2389 100644 --- a/lib/rules/no-invalid-v-model.js +++ b/lib/rules/no-invalid-v-model.js @@ -80,7 +80,7 @@ function getVariable (name, leafNode) { * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='model']" (node) { const element = node.parent.parent const name = element.name @@ -164,8 +164,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-on.js b/lib/rules/no-invalid-v-on.js index ef54544f3..f3d1acccd 100644 --- a/lib/rules/no-invalid-v-on.js +++ b/lib/rules/no-invalid-v-on.js @@ -31,7 +31,7 @@ const VERB_MODIFIERS = new Set([ * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='on']" (node) { for (const modifier of node.key.modifiers) { if (!VALID_MODIFIERS.has(modifier) && !Number.isInteger(parseInt(modifier, 10))) { @@ -52,8 +52,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-once.js b/lib/rules/no-invalid-v-once.js index f8c67b8b1..419fdbfbd 100644 --- a/lib/rules/no-invalid-v-once.js +++ b/lib/rules/no-invalid-v-once.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='once']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-pre.js b/lib/rules/no-invalid-v-pre.js index 76e640250..b6a025a12 100644 --- a/lib/rules/no-invalid-v-pre.js +++ b/lib/rules/no-invalid-v-pre.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='pre']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-show.js b/lib/rules/no-invalid-v-show.js index e7ea46d04..424d04aa8 100644 --- a/lib/rules/no-invalid-v-show.js +++ b/lib/rules/no-invalid-v-show.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='show']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-invalid-v-text.js b/lib/rules/no-invalid-v-text.js index 7ebda73e0..f21f4cc24 100644 --- a/lib/rules/no-invalid-v-text.js +++ b/lib/rules/no-invalid-v-text.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='text']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-template-key.js b/lib/rules/no-template-key.js index b9677e462..0659b9cf8 100644 --- a/lib/rules/no-template-key.js +++ b/lib/rules/no-template-key.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VElement[name='template']" (node) { if (utils.hasAttribute(node, 'key') || utils.hasDirective(node, 'bind', 'key')) { context.report({ @@ -33,8 +33,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/no-textarea-mustache.js b/lib/rules/no-textarea-mustache.js index fd637a8f4..b1b9a67a8 100644 --- a/lib/rules/no-textarea-mustache.js +++ b/lib/rules/no-textarea-mustache.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VElement[name='textarea'] VExpressionContainer" (node) { if (node.parent.type !== 'VElement') { return @@ -35,8 +35,6 @@ function create (context) { }) } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/require-component-is.js b/lib/rules/require-component-is.js index e72587feb..e60c778c2 100644 --- a/lib/rules/require-component-is.js +++ b/lib/rules/require-component-is.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VElement[name='component']" (node) { if (!utils.hasDirective(node, 'bind', 'is')) { context.report({ @@ -33,8 +33,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/require-v-for-key.js b/lib/rules/require-v-for-key.js index 5125fc5d8..cf53b80f8 100644 --- a/lib/rules/require-v-for-key.js +++ b/lib/rules/require-v-for-key.js @@ -43,13 +43,11 @@ function checkKey (context, element) { * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='for']" (node) { checkKey(context, node.parent.parent) } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/this-in-template.js b/lib/rules/this-in-template.js index 3581aaaf5..5ff3dca78 100644 --- a/lib/rules/this-in-template.js +++ b/lib/rules/this-in-template.js @@ -43,7 +43,7 @@ module.exports = { nodes: [] } - utils.registerTemplateBodyVisitor(context, Object.assign({ + return utils.defineTemplateBodyVisitor(context, Object.assign({ VElement (node) { scope = { parent: scope, @@ -97,7 +97,5 @@ module.exports = { } } )) - - return {} } } diff --git a/lib/rules/v-bind-style.js b/lib/rules/v-bind-style.js index 1093171dd..c1a8e02fa 100644 --- a/lib/rules/v-bind-style.js +++ b/lib/rules/v-bind-style.js @@ -24,7 +24,7 @@ const utils = require('../utils') function create (context) { const shorthand = context.options[0] !== 'longform' - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='bind'][key.argument!=null]" (node) { if (node.key.shorthand === shorthand) { return @@ -42,8 +42,6 @@ function create (context) { }) } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/v-on-style.js b/lib/rules/v-on-style.js index fead015c7..ef82482f3 100644 --- a/lib/rules/v-on-style.js +++ b/lib/rules/v-on-style.js @@ -24,7 +24,7 @@ const utils = require('../utils') function create (context) { const shorthand = context.options[0] !== 'longform' - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='on'][key.argument!=null]" (node) { if (node.key.shorthand === shorthand) { return @@ -43,8 +43,6 @@ function create (context) { }) } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-bind.js b/lib/rules/valid-v-bind.js index 699bedaaf..3238ed7e5 100644 --- a/lib/rules/valid-v-bind.js +++ b/lib/rules/valid-v-bind.js @@ -24,7 +24,7 @@ const VALID_MODIFIERS = new Set(['prop', 'camel', 'sync']) * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='bind']" (node) { for (const modifier of node.key.modifiers) { if (!VALID_MODIFIERS.has(modifier)) { @@ -46,8 +46,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-cloak.js b/lib/rules/valid-v-cloak.js index b567f3a44..f2f646870 100644 --- a/lib/rules/valid-v-cloak.js +++ b/lib/rules/valid-v-cloak.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='cloak']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-else-if.js b/lib/rules/valid-v-else-if.js index 1889728a4..b07dad7e4 100644 --- a/lib/rules/valid-v-else-if.js +++ b/lib/rules/valid-v-else-if.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='else-if']" (node) { const element = node.parent.parent @@ -70,8 +70,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-else.js b/lib/rules/valid-v-else.js index a5d80d53d..8464e2c67 100644 --- a/lib/rules/valid-v-else.js +++ b/lib/rules/valid-v-else.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='else']" (node) { const element = node.parent.parent @@ -70,8 +70,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-for.js b/lib/rules/valid-v-for.js index 8e20f9e66..971bbb052 100644 --- a/lib/rules/valid-v-for.js +++ b/lib/rules/valid-v-for.js @@ -106,7 +106,7 @@ function checkKey (context, vFor, element) { function create (context) { const sourceCode = context.getSourceCode() - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='for']" (node) { const element = node.parent.parent @@ -178,8 +178,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-html.js b/lib/rules/valid-v-html.js index fdb5f6657..d3bf8b058 100644 --- a/lib/rules/valid-v-html.js +++ b/lib/rules/valid-v-html.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='html']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-if.js b/lib/rules/valid-v-if.js index 090026ff2..9f21e09c7 100644 --- a/lib/rules/valid-v-if.js +++ b/lib/rules/valid-v-if.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='if']" (node) { const element = node.parent.parent @@ -63,8 +63,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-model.js b/lib/rules/valid-v-model.js index 406ac8734..fd6e46cf9 100644 --- a/lib/rules/valid-v-model.js +++ b/lib/rules/valid-v-model.js @@ -80,7 +80,7 @@ function getVariable (name, leafNode) { * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='model']" (node) { const element = node.parent.parent const name = element.name @@ -164,8 +164,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-on.js b/lib/rules/valid-v-on.js index d590ef95b..4dcc791c3 100644 --- a/lib/rules/valid-v-on.js +++ b/lib/rules/valid-v-on.js @@ -31,7 +31,7 @@ const VERB_MODIFIERS = new Set([ * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='on']" (node) { for (const modifier of node.key.modifiers) { if (!VALID_MODIFIERS.has(modifier) && !Number.isInteger(parseInt(modifier, 10))) { @@ -52,8 +52,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-once.js b/lib/rules/valid-v-once.js index eefc4a30b..e3391f4b8 100644 --- a/lib/rules/valid-v-once.js +++ b/lib/rules/valid-v-once.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='once']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-pre.js b/lib/rules/valid-v-pre.js index e3e42d083..a3855c661 100644 --- a/lib/rules/valid-v-pre.js +++ b/lib/rules/valid-v-pre.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='pre']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-show.js b/lib/rules/valid-v-show.js index b724a9bd4..104894458 100644 --- a/lib/rules/valid-v-show.js +++ b/lib/rules/valid-v-show.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='show']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/rules/valid-v-text.js b/lib/rules/valid-v-text.js index 0fe20cbfd..f3adb2508 100644 --- a/lib/rules/valid-v-text.js +++ b/lib/rules/valid-v-text.js @@ -22,7 +22,7 @@ const utils = require('../utils') * @returns {Object} AST event handlers. */ function create (context) { - utils.registerTemplateBodyVisitor(context, { + return utils.defineTemplateBodyVisitor(context, { "VAttribute[directive=true][key.name='text']" (node) { if (node.key.argument) { context.report({ @@ -47,8 +47,6 @@ function create (context) { } } }) - - return {} } // ------------------------------------------------------------------------------ diff --git a/lib/utils/index.js b/lib/utils/index.js index 08c8c34cf..8a35c14b0 100644 --- a/lib/utils/index.js +++ b/lib/utils/index.js @@ -25,17 +25,19 @@ module.exports = { * this generates a warning. * * @param {RuleContext} context The rule context to use parser services. - * @param {Object} visitor The visitor. + * @param {Object} templateBodyVisitor The visitor to traverse the template body. + * @param {Object} scriptVisitor The visitor to traverse the script. + * @returns {Object} The merged visitor. */ - registerTemplateBodyVisitor (context, visitor) { - if (context.parserServices.registerTemplateBodyVisitor == null) { + defineTemplateBodyVisitor (context, templateBodyVisitor, scriptVisitor) { + if (context.parserServices.defineTemplateBodyVisitor == null) { context.report({ loc: { line: 1, column: 0 }, message: 'Use the latest vue-eslint-parser. See also https://github.com/vuejs/eslint-plugin-vue#what-is-the-use-the-latest-vue-eslint-parser-error' }) return } - context.parserServices.registerTemplateBodyVisitor(context, visitor) + return context.parserServices.defineTemplateBodyVisitor(templateBodyVisitor, scriptVisitor) }, /** diff --git a/package.json b/package.json index 1eb5e20a2..276fe72de 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ }, "dependencies": { "requireindex": "^1.1.0", - "vue-eslint-parser": "2.0.0-beta.10" + "vue-eslint-parser": "^2.0.1-beta.0" }, "devDependencies": { "@types/node": "^4.2.16", From 8263567789b45665f83cae57d791184ea2fd31e5 Mon Sep 17 00:00:00 2001 From: Toru Nagashima Date: Sat, 2 Sep 2017 16:32:59 +0900 Subject: [PATCH 2/2] Chore: add tests with old ESLint --- circle.yml | 6 +++--- package.json | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/circle.yml b/circle.yml index c1739ea17..6b7b95a5b 100644 --- a/circle.yml +++ b/circle.yml @@ -4,12 +4,12 @@ machine: dependencies: pre: - - nvm install 7 + - nvm install 6 - nvm install 8 test: override: - - npm test + - nvm use 4 && npm test - nvm use 6 && npm test - - nvm use 7 && npm test - nvm use 8 && npm test + - nvm use 8 && npm i eslint@3.18.0 --no-save && npm run -s test:base diff --git a/package.json b/package.json index 276fe72de..eb69ed024 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,8 @@ "description": "Official ESLint plugin for Vue.js", "main": "lib/index.js", "scripts": { - "start": "npm run test:simple -- --watch --growl", - "test:base": "mocha \"tests/lib/**/*.js\"", - "test:simple": "npm run test:base -- --reporter dot", + "start": "npm run test:base -- --watch --growl", + "test:base": "mocha \"tests/lib/**/*.js\" --reporter dot", "test": "nyc npm run test:base -- \"tests/integrations/*.js\" --timeout 60000", "lint": "eslint .", "pretest": "npm run lint",