metal-soy-critic
Version:
A metal-soy code validation utility.
25 lines (24 loc) • 844 B
JavaScript
;
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;