40 lines
979 B
TypeScript
40 lines
979 B
TypeScript
interface languageMap {
|
|
[key: string]: string | undefined;
|
|
}
|
|
|
|
export const programmingLanguages: languageMap = {
|
|
javascript: ".js",
|
|
python: ".py",
|
|
java: ".java",
|
|
c: ".c",
|
|
cpp: ".cpp",
|
|
"c++": ".cpp",
|
|
"c#": ".cs",
|
|
ruby: ".rb",
|
|
php: ".php",
|
|
swift: ".swift",
|
|
"objective-c": ".m",
|
|
kotlin: ".kt",
|
|
typescript: ".ts",
|
|
go: ".go",
|
|
perl: ".pl",
|
|
rust: ".rs",
|
|
scala: ".scala",
|
|
haskell: ".hs",
|
|
lua: ".lua",
|
|
shell: ".sh",
|
|
sql: ".sql",
|
|
html: ".html",
|
|
css: ".css"
|
|
// add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component
|
|
};
|
|
|
|
export const generateRandomString = (length: Number, lowercase = false) => {
|
|
const chars = "ABCDEFGHJKLMNPQRSTUVWXY3456789"; // excluding similar looking characters like Z, 2, I, 1, O, 0
|
|
let result = "";
|
|
for (let i = 0; i < length; i++) {
|
|
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
}
|
|
return lowercase ? result.toLowerCase() : result;
|
|
};
|