tslint-immutable
Version:
TSLint rules to disable mutation in TypeScript.
20 lines • 991 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var ts = require("typescript");
var utils = require("tsutils/typeguard/2.8");
var check_node_1 = require("./shared/check-node");
var Ignore = require("./shared/ignore");
// tslint:disable-next-line:variable-name
exports.Rule = check_node_1.createCheckNodeRule(checkNode, "Using expressions to cause side-effects not allowed.");
function checkNode(node, ctx) {
if (utils.isExpressionStatement(node)) {
var children = node.getChildren();
var isYield = children.every(function (n) { return n.kind === ts.SyntaxKind.YieldExpression; });
var isIgnored = Ignore.isIgnored(node.expression, ctx.options.ignorePattern, ctx.options.ignorePrefix, ctx.options.ignoreSuffix);
if (!isYield && !isIgnored) {
return { invalidNodes: [check_node_1.createInvalidNode(node, [])] };
}
}
return { invalidNodes: [] };
}
//# sourceMappingURL=noExpressionStatementRule.js.map
;