UNPKG

rxjs-tslint-rules

Version:
52 lines (51 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var tsutils = require("tsutils"); var added_walker_1 = require("./added-walker"); var knowns_1 = require("./knowns"); var util_1 = require("./util"); var UsedWalker = (function (_super) { tslib_1.__extends(UsedWalker, _super); function UsedWalker() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.usedObservables = {}; _this.usedOperators = {}; _this.usedPrototypeMethods = {}; _this.usedStaticMethods = {}; return _this; } UsedWalker.prototype.visitCallExpression = function (node) { var expression = node.expression; if (tsutils.isPropertyAccessExpression(expression)) { var name_1 = expression.name.getText(); var typeChecker = this.getTypeChecker(); var type = typeChecker.getTypeAtLocation(expression.expression); if (util_1.isReferenceType(type)) { if (knowns_1.knownOperators.hasOwnProperty(name_1) && util_1.couldBeType(type.target, "Observable")) { var actual = knowns_1.knownOperators[name_1]; UsedWalker.add(this.usedOperators, actual, expression.name); } else if (knowns_1.knownPrototypeMethods.hasOwnProperty(name_1) && util_1.couldBeType(type.target, "Observable")) { UsedWalker.add(this.usedPrototypeMethods, name_1, expression.name); } } else { if (knowns_1.knownObservables.hasOwnProperty(name_1) && util_1.couldBeType(type, "Observable")) { var actual = knowns_1.knownObservables[name_1]; UsedWalker.add(this.usedObservables, actual, expression.name); } else if (knowns_1.knownStaticMethods.hasOwnProperty(name_1) && util_1.couldBeType(type, "Observable")) { UsedWalker.add(this.usedStaticMethods, name_1, expression.name); } } } _super.prototype.visitCallExpression.call(this, node); }; return UsedWalker; }(added_walker_1.AddedWalker)); exports.UsedWalker = UsedWalker;