@kiwicom/orbit-tracking
Version:
Tracking for orbit design system
38 lines (35 loc) • 1.27 kB
JavaScript
import {
__spreadProps,
__spreadValues
} from "./chunk-EQVCDNQH.js";
// src/helpers/projects.ts
import { path } from "zx";
var mapMembers = (members) => members.reduce((acc, cur) => {
const { accessLevel, user, id } = cur;
const { bot, state } = user;
const avatar = user.avatarUrl.match(/uploads\/-\/system/) ? "" : user.avatarUrl;
if (bot || state === "blocked" || state === "deactivated")
return acc;
if (accessLevel.stringValue === "OWNER")
acc.owners.push(__spreadValues({ id }, user));
else
acc.maintainers.push(__spreadProps(__spreadValues({}, user), { id, avatarUrl: avatar }));
return acc;
}, { owners: [], maintainers: [] });
var mapProjects = (data, folderName) => data.map(({ id, sshUrlToRepo: ssh, httpUrlToRepo: url, projectMembers, description, repository }) => {
const projectId = id.replace(/^\D+/g, "");
const name = url.split("/").slice(-1)[0].replace(".git", "");
return {
cmd: `git clone -b master ${ssh} --depth=1 --single-branch ${path.join(folderName, `${name}-${projectId}`)}`,
name,
url,
id: projectId,
description,
createdAt: new Date().toISOString(),
lastCommit: repository.tree.lastCommit,
members: mapMembers(projectMembers.nodes)
};
});
export {
mapProjects
};