UNPKG

markdown-code-example-inserter

Version:
27 lines (26 loc) 1.1 kB
import { getObjectTypedKeys } from '@augment-vir/common'; import { extname } from 'node:path'; import { languageMap } from './language-map.js'; // extensions that will never match any other language name const requiredLanguageExtension = { XML: '.xml', }; export function getFileLanguageName(fileName) { const extension = extname(fileName); const matchedLanguageNames = getObjectTypedKeys(languageMap).filter((languageName) => { const languageData = languageMap[languageName]; if (!('extensions' in languageData)) { return false; } const requiredExtensionForLanguage = requiredLanguageExtension[languageName]; if (languageName in requiredLanguageExtension && requiredExtensionForLanguage !== extension) { return false; } return languageData.extensions.includes(extension); }); if (matchedLanguageNames.length > 1) { console.warn(`Multiple languages for code block were matched for '${fileName}': ${matchedLanguageNames.join(', ')}`); } return matchedLanguageNames[0]; }