@adamlui/programming-languages
v1.0.0
Published
File extensions for programming languages.
Maintainers
Readme
💻 programming-languages
File extensions for programming languages.
It's just a JSON file, so you can use it in any environment. Sourced from GitHub's Linguist project (defines all 700+ languages known to GitHub). Data is updated via script and released via new package version.
⚡ Installation
From your project root:
npm install @adamlui/programming-languages🔌 Usage
ES Modules (ESM):
import programmingLangs from '@adamlui/programming-languages'
pyLangData = programmingLangs.Python
console.log(pyLangData.extensions) // => [ '.cgi', '.fcgi', '.gyp', ... ]CommonJS (CJS):
const programmingLangs = require('@adamlui/programming-languages')
pyLangData = programmingLangs.Python
console.log(pyLangData.extensions) // => [ '.cgi', '.fcgi', '.gyp', ... ]💻 Examples
Get language(s) from an extension:
function getLang(fileExt) {
const langMatches = Object.entries(programmingLangs)
.filter(([_, data]) => data.extensions.includes(fileExt))
.map(([lang]) => lang)
return langMatches.length == 1 ? langMatches[0] : langMatches
}
console.log(getLang('.al')) // => [ 'AL', 'Perl' ]Get language(s) from a file path:
function getLangFromPath(filepath) {
const fileExt = filepath.slice(filepath.lastIndexOf('.'))
const langMatches = Object.entries(programmingLangs)
.filter(([_, data]) => data.extensions.includes(fileExt))
.map(([lang]) => lang)
return langMatches.length == 1 ? langMatches[0] : langMatches
}
console.log(getLangFromPath('main.rs')) // => [ 'RenderScript', 'Rust' ]
console.log(getLangFromPath('script.kt')) // => Kotlin
console.log(getLangFromPath('data.avsc')) // => [] (use data-languages pkg)MIT License
Copyright © 2026 Adam Lui
📜 Related
More JavaScript utilities / Discuss / Report bug / Report vulnerability / Back to top ↑
