UNPKG

tslint-consistent-codestyle

Version:

Additional rules to enforce constistent code style with tslint

42 lines 3.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var Lint = require("tslint"); var utils = require("tsutils"); var utils_1 = require("../src/utils"); var walker_1 = require("../src/walker"); var FAIL_MESSAGE = "don't return explicit undefined"; var ALLOW_VOID_EXPRESSION_OPTION = 'allow-void-expression'; var Rule = (function (_super) { tslib_1.__extends(Rule, _super); function Rule() { return _super !== null && _super.apply(this, arguments) || this; } Rule.prototype.apply = function (sourceFile) { return this.applyWithWalker(new ReturnWalker(sourceFile, this.ruleName, { allowVoid: this.ruleArguments.indexOf(ALLOW_VOID_EXPRESSION_OPTION) !== -1, })); }; return Rule; }(Lint.Rules.AbstractRule)); exports.Rule = Rule; var ReturnWalker = (function (_super) { tslib_1.__extends(ReturnWalker, _super); function ReturnWalker() { return _super !== null && _super.apply(this, arguments) || this; } ReturnWalker.prototype._checkReturnStatement = function (node) { if (node.expression !== undefined && this._isUndefined(node.expression)) this.addFailureAtNode(node.expression, FAIL_MESSAGE); }; ReturnWalker.prototype._isUndefined = function (expression) { return this.options.allowVoid ? isUndefinedNotVoidExpr(expression) : utils_1.isUndefined(expression); }; return ReturnWalker; }(walker_1.AbstractReturnStatementWalker)); function isUndefinedNotVoidExpr(expression) { if (utils.isIdentifier(expression) && expression.text === 'undefined') return true; return utils.isVoidExpression(expression) && utils.isLiteralExpression(expression.expression); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9SZXR1cm5VbmRlZmluZWRSdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibm9SZXR1cm5VbmRlZmluZWRSdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZCQUErQjtBQUMvQiwrQkFBaUM7QUFFakMsc0NBQXlDO0FBQ3pDLHdDQUE0RDtBQUU1RCxJQUFNLFlBQVksR0FBRyxpQ0FBaUMsQ0FBQztBQUN2RCxJQUFNLDRCQUE0QixHQUFHLHVCQUF1QixDQUFDO0FBTTdEO0lBQTBCLGdDQUF1QjtJQUFqRDs7SUFNQSxDQUFDO0lBTFUsb0JBQUssR0FBWixVQUFhLFVBQXlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0UsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBQ0wsV0FBQztBQUFELENBQUMsQUFORCxDQUEwQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FNaEQ7QUFOWSxvQkFBSTtBQVFqQjtJQUEyQix3Q0FBdUM7SUFBbEU7O0lBU0EsQ0FBQztJQVJhLDRDQUFxQixHQUEvQixVQUFnQyxJQUF3QjtRQUNwRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sbUNBQVksR0FBcEIsVUFBcUIsVUFBeUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FBQyxBQVRELENBQTJCLHNDQUE2QixHQVN2RDtBQUVELFNBQVMsc0JBQXNCLENBQUMsVUFBeUI7SUFDckQsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVztRQUNqRSxPQUFPLElBQUksQ0FBQztJQUNoQixPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xHLENBQUMifQ==