Skip to content

Commit 5163ae4

Browse files
committed
refactor: change Language from LanguageMap to slice of Language structs for better structure and access
1 parent 2b904a0 commit 5163ae4

File tree

2 files changed

+40
-10
lines changed

2 files changed

+40
-10
lines changed

config/config.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ type Config struct {
44
CN SiteConfig
55
EN SiteConfig
66
Level LevelMap
7-
Language LanguageMap
7+
Language []Language
88
Naming NamingMap
99
QuestionDataQL func(titleSlug string) GraphQLRequest
1010
}
@@ -21,15 +21,15 @@ var DefaultConfig = Config{
2121
Medium: 2,
2222
Hard: 3,
2323
},
24-
Language: LanguageMap{
25-
Java: "Java",
26-
JavaScript: "JavaScript",
27-
Python3: "Python3",
28-
CPP: "C++",
29-
C: "C",
30-
Golang: "Go",
31-
Rust: "Rust",
32-
TypeScript: "TypeScript",
24+
Language: []Language{
25+
{Lang: "Java", LangSlug: "java", LangExt: ".java"},
26+
{Lang: "JavaScript", LangSlug: "javascript", LangExt: ".js"},
27+
{Lang: "Python3", LangSlug: "python3", LangExt: ".py"},
28+
{Lang: "C++", LangSlug: "cpp", LangExt: ".cpp"},
29+
{Lang: "C", LangSlug: "c", LangExt: ".c"},
30+
{Lang: "Golang", LangSlug: "golang", LangExt: ".go"},
31+
{Lang: "Rust", LangSlug: "rust", LangExt: ".rs"},
32+
{Lang: "TypeScript", LangSlug: "typescript", LangExt: ".ts"},
3333
},
3434
Naming: NamingMap{
3535
SnakeCase: "snake_case",

config/type.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,36 @@ type LevelMap struct {
1010
Hard int
1111
}
1212

13+
type Language struct {
14+
Lang string
15+
LangSlug string
16+
LangExt string
17+
}
18+
19+
func GetSupportedLanguages() []Language {
20+
return DefaultConfig.Language
21+
}
22+
23+
func IsLanguageSupported(lang string) bool {
24+
supportedLanguages := GetSupportedLanguages()
25+
for _, language := range supportedLanguages {
26+
if language.LangSlug == lang {
27+
return true
28+
}
29+
}
30+
return false
31+
}
32+
33+
func GetLanguageByExtension(ext string) (string, bool) {
34+
supportedLanguages := GetSupportedLanguages()
35+
for _, language := range supportedLanguages {
36+
if language.LangExt == ext {
37+
return language.LangSlug, true
38+
}
39+
}
40+
return "", false
41+
}
42+
1343
type LanguageMap struct {
1444
Java string
1545
JavaScript string

0 commit comments

Comments
 (0)