UNPKG

metal-soy-critic

Version:
25 lines (24 loc) 844 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const soy_helpers_1 = require("./soy-helpers"); const util_1 = require("./util"); const chalk = require("chalk"); function hasEventsParam(params) { return !!params.find(param => param.name === 'events'); } function validateNoopEvents(soyContext) { const calls = new Set(); soyContext.visit({ Call(node) { if (node.id.name !== 'render' && hasEventsParam(node.body)) { calls.add(soy_helpers_1.fullName(node)); } } }); if (!calls.size) { return util_1.toResult(true); } return util_1.toResult(false, `These calls are not components, so their ${chalk.yellow('events')} param will do nothing:\n\n` + util_1.joinErrors([...calls])); } exports.default = validateNoopEvents;