UNPKG

4.41 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.lintCallExpression = lintCallExpression;
7exports.lintNewExpression = lintNewExpression;
8exports.lintMemberExpression = lintMemberExpression;
9
10function lintCallExpression(reporter, rules, node) {
11 if (!node.callee) return;
12 const calleeName = node.callee.name;
13 const failingRule = rules.find(rule => rule.object === calleeName);
14 if (failingRule) reporter(failingRule, node);
15}
16
17function lintNewExpression(reporter, rules, node) {
18 if (!node.callee) return;
19 const calleeName = node.callee.name;
20 const failingRule = rules.find(rule => rule.object === calleeName);
21 if (failingRule) reporter(failingRule, node);
22}
23
24function lintMemberExpression(reporter, rules, node) {
25 if (!node.object || !node.property) return;
26 const objectName = node.object.name;
27 const propertyName = node.property.name;
28 const failingRule = rules.find(rule => rule.object === objectName && (rule.property == null || rule.property === propertyName));
29 if (failingRule) reporter(failingRule, node);
30}
31//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9MaW50LmpzIl0sIm5hbWVzIjpbImxpbnRDYWxsRXhwcmVzc2lvbiIsInJlcG9ydGVyIiwicnVsZXMiLCJub2RlIiwiY2FsbGVlIiwiY2FsbGVlTmFtZSIsIm5hbWUiLCJmYWlsaW5nUnVsZSIsImZpbmQiLCJydWxlIiwib2JqZWN0IiwibGludE5ld0V4cHJlc3Npb24iLCJsaW50TWVtYmVyRXhwcmVzc2lvbiIsInByb3BlcnR5Iiwib2JqZWN0TmFtZSIsInByb3BlcnR5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR08sU0FBU0Esa0JBQVQsQ0FDTEMsUUFESyxFQUVMQyxLQUZLLEVBR0xDLElBSEssRUFJTDtBQUNBLE1BQUksQ0FBQ0EsSUFBSSxDQUFDQyxNQUFWLEVBQWtCO0FBQ2xCLFFBQU1DLFVBQVUsR0FBR0YsSUFBSSxDQUFDQyxNQUFMLENBQVlFLElBQS9CO0FBQ0EsUUFBTUMsV0FBVyxHQUFHTCxLQUFLLENBQUNNLElBQU4sQ0FBV0MsSUFBSSxJQUFJQSxJQUFJLENBQUNDLE1BQUwsS0FBZ0JMLFVBQW5DLENBQXBCO0FBQ0EsTUFBSUUsV0FBSixFQUFpQk4sUUFBUSxDQUFDTSxXQUFELEVBQWNKLElBQWQsQ0FBUjtBQUNsQjs7QUFFTSxTQUFTUSxpQkFBVCxDQUNMVixRQURLLEVBRUxDLEtBRkssRUFHTEMsSUFISyxFQUlMO0FBQ0EsTUFBSSxDQUFDQSxJQUFJLENBQUNDLE1BQVYsRUFBa0I7QUFDbEIsUUFBTUMsVUFBVSxHQUFHRixJQUFJLENBQUNDLE1BQUwsQ0FBWUUsSUFBL0I7QUFDQSxRQUFNQyxXQUFXLEdBQUdMLEtBQUssQ0FBQ00sSUFBTixDQUFXQyxJQUFJLElBQUlBLElBQUksQ0FBQ0MsTUFBTCxLQUFnQkwsVUFBbkMsQ0FBcEI7QUFDQSxNQUFJRSxXQUFKLEVBQWlCTixRQUFRLENBQUNNLFdBQUQsRUFBY0osSUFBZCxDQUFSO0FBQ2xCOztBQUVNLFNBQVNTLG9CQUFULENBQ0xYLFFBREssRUFFTEMsS0FGSyxFQUdMQyxJQUhLLEVBSUw7QUFDQSxNQUFJLENBQUNBLElBQUksQ0FBQ08sTUFBTixJQUFnQixDQUFDUCxJQUFJLENBQUNVLFFBQTFCLEVBQW9DO0FBQ3BDLFFBQU1DLFVBQVUsR0FBR1gsSUFBSSxDQUFDTyxNQUFMLENBQVlKLElBQS9CO0FBQ0EsUUFBTVMsWUFBWSxHQUFHWixJQUFJLENBQUNVLFFBQUwsQ0FBY1AsSUFBbkM7QUFDQSxRQUFNQyxXQUFXLEdBQUdMLEtBQUssQ0FBQ00sSUFBTixDQUNsQkMsSUFBSSxJQUNGQSxJQUFJLENBQUNDLE1BQUwsS0FBZ0JJLFVBQWhCLEtBQ0NMLElBQUksQ0FBQ0ksUUFBTCxJQUFpQixJQUFqQixJQUF5QkosSUFBSSxDQUFDSSxRQUFMLEtBQWtCRSxZQUQ1QyxDQUZnQixDQUFwQjtBQUtBLE1BQUlSLFdBQUosRUFBaUJOLFFBQVEsQ0FBQ00sV0FBRCxFQUFjSixJQUFkLENBQVI7QUFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuaW1wb3J0IHR5cGUgeyBOb2RlLCBFU0xpbnROb2RlIH0gZnJvbSAnLi9MaW50VHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gbGludENhbGxFeHByZXNzaW9uKFxuICByZXBvcnRlcjogRnVuY3Rpb24sXG4gIHJ1bGVzOiBBcnJheTxOb2RlPixcbiAgbm9kZTogRVNMaW50Tm9kZVxuKSB7XG4gIGlmICghbm9kZS5jYWxsZWUpIHJldHVybjtcbiAgY29uc3QgY2FsbGVlTmFtZSA9IG5vZGUuY2FsbGVlLm5hbWU7XG4gIGNvbnN0IGZhaWxpbmdSdWxlID0gcnVsZXMuZmluZChydWxlID0+IHJ1bGUub2JqZWN0ID09PSBjYWxsZWVOYW1lKTtcbiAgaWYgKGZhaWxpbmdSdWxlKSByZXBvcnRlcihmYWlsaW5nUnVsZSwgbm9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW50TmV3RXhwcmVzc2lvbihcbiAgcmVwb3J0ZXI6IEZ1bmN0aW9uLFxuICBydWxlczogQXJyYXk8Tm9kZT4sXG4gIG5vZGU6IEVTTGludE5vZGVcbikge1xuICBpZiAoIW5vZGUuY2FsbGVlKSByZXR1cm47XG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBub2RlLmNhbGxlZS5uYW1lO1xuICBjb25zdCBmYWlsaW5nUnVsZSA9IHJ1bGVzLmZpbmQocnVsZSA9PiBydWxlLm9iamVjdCA9PT0gY2FsbGVlTmFtZSk7XG4gIGlmIChmYWlsaW5nUnVsZSkgcmVwb3J0ZXIoZmFpbGluZ1J1bGUsIG5vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGludE1lbWJlckV4cHJlc3Npb24oXG4gIHJlcG9ydGVyOiBGdW5jdGlvbixcbiAgcnVsZXM6IEFycmF5PE5vZGU+LFxuICBub2RlOiBFU0xpbnROb2RlXG4pIHtcbiAgaWYgKCFub2RlLm9iamVjdCB8fCAhbm9kZS5wcm9wZXJ0eSkgcmV0dXJuO1xuICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5vYmplY3QubmFtZTtcbiAgY29uc3QgcHJvcGVydHlOYW1lID0gbm9kZS5wcm9wZXJ0eS5uYW1lO1xuICBjb25zdCBmYWlsaW5nUnVsZSA9IHJ1bGVzLmZpbmQoXG4gICAgcnVsZSA9PlxuICAgICAgcnVsZS5vYmplY3QgPT09IG9iamVjdE5hbWUgJiZcbiAgICAgIChydWxlLnByb3BlcnR5ID09IG51bGwgfHwgcnVsZS5wcm9wZXJ0eSA9PT0gcHJvcGVydHlOYW1lKVxuICApO1xuICBpZiAoZmFpbGluZ1J1bGUpIHJlcG9ydGVyKGZhaWxpbmdSdWxlLCBub2RlKTtcbn1cbiJdfQ==
\No newline at end of file