Skip to content

Commit 1fbf40a

Browse files
fix for eslint config creation and using default 8.57.0 instead of 9.3.0 (when init without token)
1 parent a95a19d commit 1fbf40a

File tree

6 files changed

+52
-8
lines changed

6 files changed

+52
-8
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The tool is invoked using the `codacy-cli` command, and provides two main comman
3131
runtimes:
3232
3333
tools:
34-
- eslint@9.3.0
34+
- eslint@8.57.0
3535

3636
- **`codacy-cli install`**: Command to install the specified node and eslint versions before running analysis.
3737

cmd/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func configFileTemplate(tools []tools.Tool) string {
138138

139139
// Default versions
140140
defaultVersions := map[string]string{
141-
ESLint: "9.3.0",
141+
ESLint: "8.57.0",
142142
Trivy: "0.59.1",
143143
PyLint: "3.3.6",
144144
PMD: "6.55.0",

cmd/init_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func TestConfigFileTemplate(t *testing.T) {
2424
expected: []string{
2525
2626
27-
"eslint@9.3.0",
27+
"eslint@8.57.0",
2828
2929
3030

cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ Use "{{.CommandPath}} [command] --help" for more information about a command.{{e
129129
runtimes:
130130
131131
tools:
132-
- eslint@9.3.0
132+
- eslint@8.57.0
133133
134134
` + color.New(color.FgCyan).Sprint("For more information and examples, visit:") + `
135135
https://github.com/codacy/codacy-cli-v2

integration-tests/init-without-token/expected/codacy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ runtimes:
44
55
66
tools:
7-
- eslint@9.3.0
7+
- eslint@8.57.0
88
99
1010

tools/eslintConfigCreator.go

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,66 @@ func CreateEslintConfig(configuration []domain.PatternConfiguration) string {
5353

5454
parametersString := ""
5555

56+
// Find default value for unnamedParam if needed
57+
defaultUnnamedParamValue := ""
58+
for _, paramDef := range patternConfiguration.PatternDefinition.Parameters {
59+
if paramDef.Name == "unnamedParam" {
60+
defaultUnnamedParamValue = paramDef.Default
61+
break
62+
}
63+
}
64+
65+
// Process parameters
66+
foundUnnamedParam := false
5667
for _, parameter := range patternConfiguration.Parameters {
5768
if parameter.Name == "unnamedParam" {
58-
parametersString += quoteWhenIsNotJson(parameter.Value)
69+
foundUnnamedParam = true
70+
// If value is empty but we have a default, use the default
71+
if parameter.Value == "" && defaultUnnamedParamValue != "" {
72+
parametersString += quoteWhenIsNotJson(defaultUnnamedParamValue)
73+
} else if parameter.Value != "" {
74+
parametersString += quoteWhenIsNotJson(parameter.Value)
75+
}
5976
}
6077
}
6178

79+
// If we found an unnamed param with empty value but have a default, use it
80+
if foundUnnamedParam && parametersString == "" && defaultUnnamedParamValue != "" {
81+
parametersString += quoteWhenIsNotJson(defaultUnnamedParamValue)
82+
}
83+
6284
// build named parameters json object
6385
namedParametersString := ""
6486
for _, parameter := range patternConfiguration.Parameters {
6587
if parameter.Name != "unnamedParam" {
88+
paramValue := parameter.Value
89+
90+
// If value is empty, look for default in pattern definition
91+
if paramValue == "" {
92+
for _, paramDef := range patternConfiguration.PatternDefinition.Parameters {
93+
if paramDef.Name == parameter.Name && paramDef.Default != "" {
94+
paramValue = paramDef.Default
95+
break
96+
}
97+
}
98+
}
99+
100+
// Skip only if both value and default are empty
101+
if paramValue == "" {
102+
continue
103+
}
104+
66105
if len(namedParametersString) == 0 {
67106
namedParametersString += "{"
68107
} else {
69108
namedParametersString += ", "
70109
}
71-
namedParametersString += fmt.Sprintf("\"%s\": %s", parameter.Name, quoteWhenIsNotJson(parameter.Value))
110+
111+
if paramValue == "true" || paramValue == "false" {
112+
namedParametersString += fmt.Sprintf("\"%s\": %s", parameter.Name, paramValue)
113+
} else {
114+
namedParametersString += fmt.Sprintf("\"%s\": %s", parameter.Name, quoteWhenIsNotJson(paramValue))
115+
}
72116
}
73117
}
74118
if len(namedParametersString) > 0 {
@@ -84,7 +128,7 @@ func CreateEslintConfig(configuration []domain.PatternConfiguration) string {
84128
result += " "
85129

86130
if parametersString == "" {
87-
result += fmt.Sprintf(`"%s": "error",`, rule)
131+
result += fmt.Sprintf(`"%s": ["error"],`, rule)
88132
result += "\n"
89133
} else {
90134
result += fmt.Sprintf(`"%s": ["error", %s],`, rule, parametersString)

0 commit comments

Comments
 (0)