git-auto-badger
Version:
A npm cli tool that reads your package.json/project metadata and git config and connects your readme with multiple badge providers (shields.io, badgen.net etc)
35 lines (33 loc) • 1.05 kB
JavaScript
const fs = require('fs/promises');
const yaml = require('yaml');
const cache = new Map();
const detectType = async function (typeMapping, detectionType) {
let extrasToReturn = {};
if (cache.has(detectionType)) {
return cache.get(detectionType);
}
let type = null;
for (let prop in typeMapping) {
try {
let isTrue = false;
if (prop.endsWith("/")) {
const files = await fs.readdir(prop);
const fileContent = await fs.readFile(prop + files[0]);
const fileJson = yaml.parse(fileContent.toString());
extrasToReturn.jobName = fileJson.name;
isTrue = true;
} else {
isTrue = await fs.stat(prop);
}
if (isTrue) {
type = typeMapping[prop];
break;
}
} catch (e) {
continue;
}
}
cache.set(detectionType, type);
return { type, ...extrasToReturn };
}
exports.detectType = detectType;