linguist-js
Version:
Analyse the programming languages used in a folder or from raw content, using the same rules that GitHub Linguist does.
14 lines (13 loc) • 641 B
JavaScript
export default function byAttributes(file, langData) {
// Check manual override from gitattributes or explicit language metadata
const requestedLang = file.attributes?.language;
if (!requestedLang)
return [];
// If specified language is an alias, associate it with its full name
const normalizedLang = Object.keys(langData).find((lang) => {
const aliases = langData[lang]?.aliases ?? [];
return (lang.toLowerCase() === requestedLang.toLowerCase() ||
aliases.some((alias) => alias.toLowerCase() === requestedLang.toLowerCase()));
});
return [normalizedLang ?? requestedLang];
}