/// <inheritdoc /> public override IEnumerable <IIssue> ReadIssues( EsLintIssuesProvider issueProvider, IRepositorySettings repositorySettings, EsLintIssuesSettings esLintsettings) { issueProvider.NotNull(nameof(issueProvider)); repositorySettings.NotNull(nameof(repositorySettings)); esLintsettings.NotNull(nameof(esLintsettings)); IEnumerable <LogFile> logFileEntries = null; using (var ms = new MemoryStream(esLintsettings.LogFileContent.ToStringUsingEncoding(true).ToByteArray())) { var jsonSerializer = new DataContractJsonSerializer(typeof(LogFile[])); logFileEntries = jsonSerializer.ReadObject(ms) as LogFile[]; } if (logFileEntries != null) { return (from file in logFileEntries from message in file.messages let rule = message.ruleId select IssueBuilder .NewIssue(message.message, issueProvider) .InFile(GetRelativeFilePath(file.filePath, repositorySettings), message.line, message.column) .OfRule(rule, EsLintRuleUrlResolver.Instance.ResolveRuleUrl(rule)) .WithPriority(GetPriority(message.severity)) .Create()); } return(new List <IIssue>()); }
/// <inheritdoc /> public override IEnumerable <IIssue> ReadIssues( EsLintIssuesProvider issueProvider, IRepositorySettings repositorySettings, EsLintIssuesSettings esLintsettings) { issueProvider.NotNull(nameof(issueProvider)); repositorySettings.NotNull(nameof(repositorySettings)); esLintsettings.NotNull(nameof(esLintsettings)); IEnumerable <LogFile> logFileEntries = null; using (var ms = new MemoryStream(esLintsettings.LogFileContent.ToStringUsingEncoding(true).ToByteArray())) { var jsonSerializer = new DataContractJsonSerializer(typeof(LogFile[])); logFileEntries = jsonSerializer.ReadObject(ms) as LogFile[]; } if (logFileEntries != null) { return (from file in logFileEntries from message in file.messages select GetIssue(file, message, issueProvider, repositorySettings)); } return(new List <IIssue>()); }
/// <summary> /// Returns the issue for a message from the log file. /// </summary> /// <param name="file">File for which the issue was reported.</param> /// <param name="message">Message reported by ESLint.</param> /// <param name="issueProvider">Issue provider instance.</param> /// <param name="repositorySettings">Repository settings.</param> /// <returns>Issue instance.</returns> private static IIssue GetIssue( LogFile file, Message message, EsLintIssuesProvider issueProvider, IRepositorySettings repositorySettings) { var issueBuilder = IssueBuilder .NewIssue(message.message, issueProvider) .InFile( GetRelativeFilePath(file.filePath, repositorySettings), message.line <= 0 ? null : message.line, message.column <= 0 ? null : message.column) .WithPriority(GetPriority(message.severity)); if (!string.IsNullOrWhiteSpace(message.ruleId)) { issueBuilder = issueBuilder .OfRule(message.ruleId, EsLintRuleUrlResolver.Instance.ResolveRuleUrl(message.ruleId)); } return(issueBuilder.Create()); }