Files
vic-user-react/scripts/config.js
2019-08-31 22:23:48 +08:00

46 lines
1.0 KiB
JavaScript

'use strict';
const rRepoURL = /^(?:(?:git|https?|git\+https|git\+ssh):\/\/)?(?:[^@]+@)?([^\/]+?)[\/:](.+?)\.git$/; // eslint-disable-line no-useless-escape
const rGithubPage = /\.github\.(io|com)$/;
function parseRepo(repo) {
const split = repo.split(',');
const url = split.shift();
let branch = split[0];
if (!branch && rRepoURL.test(url)) {
const match = url.match(rRepoURL);
const host = match[1];
const path = match[2];
if (host === 'github.com') {
branch = rGithubPage.test(path) ? 'master' : 'gh-pages';
} else if (host === 'coding.net') {
branch = 'coding-pages';
}
}
return {
url: url,
branch: branch || 'master'
};
}
module.exports = function(args) {
const repo = args.repo || args.repository;
if (!repo) throw new TypeError('repo is required!');
if (typeof repo === 'string') {
const data = parseRepo(repo);
data.branch = args.branch || data.branch;
return [data];
}
const result = Object.keys(repo).map(key => {
return parseRepo(repo[key]);
});
return result;
};