@kiwicom/orbit-tracking
Version:
Tracking for orbit design system
38 lines (31 loc) • 1.43 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _chunkPHZK36Z6cjs = require('./chunk-PHZK36Z6.cjs');
// src/helpers/projects.ts
var _zx = require('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(_chunkPHZK36Z6cjs.__spreadValues.call(void 0, { id }, user));
else
acc.maintainers.push(_chunkPHZK36Z6cjs.__spreadProps.call(void 0, _chunkPHZK36Z6cjs.__spreadValues.call(void 0, {}, 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 ${_zx.path.join(folderName, `${name}-${projectId}`)}`,
name,
url,
id: projectId,
description,
createdAt: new Date().toISOString(),
lastCommit: repository.tree.lastCommit,
members: mapMembers(projectMembers.nodes)
};
});
exports.mapProjects = mapProjects;