linguist-js
Version:
Analyse the programming languages used in a folder or from raw content, using the same rules that GitHub Linguist does.
25 lines (24 loc) • 953 B
JavaScript
import YAML from 'js-yaml';
import { loadFile } from './loadDataFiles.js';
let data = null;
async function initRetrieveData(offline) {
// Only load the data on mount
if (data)
return;
const langData = (await loadFile('languages.yml', offline).then(YAML.load));
const vendorData = (await loadFile('vendor.yml', offline).then(YAML.load));
const docData = (await loadFile('documentation.yml', offline).then(YAML.load));
const heuristicsData = (await loadFile('heuristics.yml', offline).then(YAML.load));
const generatedData = (await loadFile('generated.rb', offline).then(YAML.load));
const vendorPaths = [...vendorData, ...docData, ...generatedData];
data = {
langData,
heuristicsData,
vendorPaths,
};
}
/** Load data from github-linguist web repo or cached local file. */
export default async function retrieveData(offline) {
await initRetrieveData(offline);
return data;
}