Skip to content

Commit 9e3a9ea

Browse files
authored
Fixes (#15)
1 parent 51ccf49 commit 9e3a9ea

File tree

6 files changed

+46
-12
lines changed

6 files changed

+46
-12
lines changed

package-lock.json

Lines changed: 33 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@
140140
"devDependencies": {
141141
"@types/ini": "^1.3.31",
142142
"@types/json-to-ast": "^2.1.2",
143+
"@types/micromatch": "^4.0.2",
143144
"@types/node": "^16.11.7",
144145
"@types/vscode": "^1.26.0",
145146
"@typescript-eslint/eslint-plugin": "^5.42.0",

src/data/socket-api-config.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export type IssueRules = Record<string, boolean | {
1717

1818
export type APIConfig = {
1919
apiKey: string;
20+
enforcedRules: IssueRules;
2021
defaultRules: IssueRules;
2122
orgRules: { id: string; name: string; issueRules: IssueRules }[]
2223
}
@@ -168,12 +169,13 @@ function getConfigFromSettings(apiKey: string, settings: KeyInfo, enforcedOrgs:
168169

169170
return {
170171
apiKey,
171-
defaultRules: mergeDefaults(enforcedRules, settings.defaultIssueRules),
172+
enforcedRules,
173+
defaultRules: settings.defaultIssueRules,
172174
orgRules: Object.values(settings.organizations).map(({ id, name, issueRules }) => {
173175
return {
174176
id,
175177
name,
176-
issueRules: mergeDefaults(mergeRules(issueRules, enforcedRules), settings.defaultIssueRules)
178+
issueRules: mergeDefaults(issueRules, settings.defaultIssueRules)
177179
}
178180
})
179181
}

src/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ export async function activate(context: ExtensionContext) {
207207
if (relevantIssues && relevantIssues.length) {
208208
const diagnosticsToShow = (await Promise.all(relevantIssues.map(
209209
async (issue) => {
210-
const severity = getDiagnosticSeverity(issue.type, issue.severity, baseRules, socketYamlConfig)
210+
const severity = getDiagnosticSeverity(issue.type, issue.severity, apiConf.enforcedRules, baseRules, socketYamlConfig)
211211
if (severity == null) return null
212212
const diag = new vscode.Diagnostic(
213213
issue.range,

src/ui/file.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ export function activate(
188188
for (const [severity, types] of pkgIssues) {
189189
for (const [type, descriptions] of types) {
190190
for (const description of descriptions) {
191-
if (getDiagnosticSeverity(type, severity, issueRules, socketYamlConfig) != null) {
191+
if (getDiagnosticSeverity(type, severity, apiConf.enforcedRules, issueRules, socketYamlConfig) != null) {
192192
relevantIssues.push({
193193
type,
194194
severity,

src/util.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import type { SocketYml } from '@socketsecurity/config';
22
import * as toml from 'toml-eslint-parser';
33
import * as vscode from 'vscode';
4-
import { IssueRules, ruleStrength } from './data/socket-api-config';
4+
import { IssueRules, mergeDefaults, mergeRules, ruleStrength } from './data/socket-api-config';
55

66
export const DIAGNOSTIC_SOURCE_STR = 'SocketSecurity'
77
export const EXTENSION_PREFIX = 'socket-security'
88

99
const SEVERITY_LEVELS = ['low', 'middle', 'high', 'critical'];
1010

11-
export function getDiagnosticSeverity(type: string, severity: string, issueRules: IssueRules, socketYamlConfig: SocketYml): vscode.DiagnosticSeverity | null {
12-
const fullRules: IssueRules = { ...socketYamlConfig.issueRules }
13-
for (const rule in issueRules) {
14-
if (!(rule in fullRules)) fullRules[rule] = issueRules[rule]
15-
}
11+
export function getDiagnosticSeverity(type: string, severity: string, enforcedRules: IssueRules, issueRules: IssueRules, socketYamlConfig: SocketYml): vscode.DiagnosticSeverity | null {
12+
const fullRules: IssueRules = mergeDefaults(
13+
mergeRules(enforcedRules, socketYamlConfig.issueRules),
14+
issueRules
15+
)
1616
const editorConfig = vscode.workspace.getConfiguration(EXTENSION_PREFIX)
1717
const handling = ruleStrength(fullRules[type])
1818
if (handling < 2) return null

0 commit comments

Comments
 (0)