Sha256: f9962757ba7446b31dd9fd5e51caa1ed046a05db97e1fd41c8534e3f316467ff
Contents?: true
Size: 1.16 KB
Versions: 45
Compression:
Stored size: 1.16 KB
Contents
'use strict'; var helpers = require('../helpers'); var isUrlRegex = /^(https?:)?\/\//, protocolRelativeRegex = /^(https?:)\/\//; module.exports = { 'name': 'no-url-protocols', 'defaults': { 'allow-protocol-relative-urls': false }, 'detect': function (ast, parser) { var result = []; ast.traverseByType('uri', function (uri) { uri.traverse(function (item) { if (item.is('string')) { var stripped = helpers.stripQuotes(item.content), regexSelector = !parser.options['allow-protocol-relative-urls'] ? isUrlRegex : protocolRelativeRegex, message = !parser.options['allow-protocol-relative-urls'] ? 'Protocols and domains in URLs are disallowed' : 'Protocols in URLS are disallowed'; if (stripped.match(regexSelector)) { result = helpers.addUnique(result, { 'ruleId': parser.rule.name, 'severity': parser.severity, 'line': item.end.line, 'column': item.end.column, 'message': message }); } } }); }); return result; } };
Version data entries
45 entries across 45 versions & 2 rubygems