diff --git a/packages/chameleon-linter/bin/cli.js b/packages/chameleon-linter/bin/cli.js index 37ac4bd55b719a0d6f42f89cff2fc6ea2a8b5208..2fefd3bd7ddc27d829a4f0ca96bede3de76c75a1 100755 --- a/packages/chameleon-linter/bin/cli.js +++ b/packages/chameleon-linter/bin/cli.js @@ -1,5 +1,5 @@ #!/usr/bin/env node - +// --inspect-brk const program = require('commander'); const packageJson = require('../package.json'); const main = require('../index'); diff --git a/packages/chameleon-linter/checkers/template/index.js b/packages/chameleon-linter/checkers/template/index.js index b6f3bd484e0391bb42131a95dae4a494c15cc342..eaa1f11699c889c506216d2431ef97ad55bf92c5 100644 --- a/packages/chameleon-linter/checkers/template/index.js +++ b/packages/chameleon-linter/checkers/template/index.js @@ -1,7 +1,7 @@ const jsAstParser = require('./lib/js-ast-parser'); const templateAstParser = require('./lib/template-ast-parser'); const jsonAstParser = require('./lib/json-ast-parser'); - +const commonEvents = require('../../config/common-events.json'); class TemplateChecker { @@ -49,10 +49,17 @@ class TemplateChecker { if (usingComponents[compName] && usingComponents[compName].isCml) { let { props, events } = component[compName]; let { props: usingProps, events: usingEvents } = usingComponents[compName]; - usingProps = usingProps.map((prop) => prop.name).join('|'); - usingEvents = usingEvents.map((event) => event.name).join('|'); - - props.filter((prop) => usingProps.indexOf(prop.name) === -1).forEach((prop) => { + usingProps = usingProps + .map((prop) => prop.name) + .join('|'); + usingEvents = usingEvents + .map((event) => event.name) + .concat(commonEvents.events) + .join('|'); + usingProps = `|${usingProps}|`; + usingEvents = `|${usingEvents}|`; + debugger + props.filter((prop) => usingProps.indexOf('|' + prop.name + '|') === -1).forEach((prop) => { issues.push({ line: prop.pos[0], column: prop.pos[1], @@ -61,7 +68,7 @@ class TemplateChecker { }); }); - events.filter((event) => usingEvents.indexOf(event.name) === -1).forEach((event) => { + events.filter((event) => usingEvents.indexOf('|' + event.name + '|') === -1).forEach((event) => { issues.push({ line: event.pos[0], column: event.pos[1], diff --git a/packages/chameleon-linter/config/common-events.json b/packages/chameleon-linter/config/common-events.json new file mode 100644 index 0000000000000000000000000000000000000000..7f8e8ccd4c9b30269009748aea9c66d2e7d45e51 --- /dev/null +++ b/packages/chameleon-linter/config/common-events.json @@ -0,0 +1,3 @@ +{ + "events": ["tap", "click", "touchstart", "touchmove", "touchend"] +} \ No newline at end of file diff --git a/packages/cml-htmllinter/lib/knife/is_common_events.js b/packages/cml-htmllinter/lib/knife/is_common_events.js index 89ec9b4b44413dd867def713b4f7828c4e372ffb..a5085e5ef882c0292a5dcbb63f31600a30aa2dae 100644 --- a/packages/cml-htmllinter/lib/knife/is_common_events.js +++ b/packages/cml-htmllinter/lib/knife/is_common_events.js @@ -1,4 +1,4 @@ -const commonEvents = ['tap', 'touchstart', 'touchmove', 'touchend']; +const commonEvents = ['tap', 'click', 'touchstart', 'touchmove', 'touchend']; module.exports.isCommonEvent = function(eventName) { return ~commonEvents.indexOf(eventName);