data-languages
v1.1.0
Published
File extensions for data languages.
Maintainers
Readme
🧾 data-languages
File extensions for data 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 data-languages🔌 Usage
ES Modules (ESM):
import dataLangs from 'data-languages'
jsonLangData = dataLangs.JSON
console.log(jsonLangData.extensions) // => [ '.4DForm', '.4DProject', '.avsc', ... ]CommonJS (CJS):
const dataLangs = require('data-languages')
jsonLangData = dataLangs.JSON
console.log(jsonLangData.extensions) // => [ '.4DForm', '.4DProject', '.avsc', ... ]💻 Examples
Get language(s) from an extension:
function getLang(fileExt) {
const langMatches = Object.entries(dataLangs)
.filter(([_, data]) => data.extensions.includes(fileExt))
.map(([lang]) => lang)
return langMatches.length == 1 ? langMatches[0] : langMatches
}
console.log(getLang('.ical')) // => iCalendarGet language(s) from a file path:
function getLangFromPath(filepath) {
const fileExt = filepath.slice(filepath.lastIndexOf('.'))
const langMatches = Object.entries(dataLangs)
.filter(([_, data]) => data.extensions.includes(fileExt))
.map(([lang]) => lang)
return langMatches.length == 1 ? langMatches[0] : langMatches
}
console.log(getLangFromPath('steam.vdf')) // => Valve Data Format
console.log(getLangFromPath('Sublime.sublime-snippet')) // => XML
console.log(getLangFromPath('README.md')) // => [] (use prose-languages pkg)MIT License
Copyright © 2026 Adam Lui
📦 Related
More JavaScript utilities / Discuss / Report bug / Report vulnerability / Back to top ↑
