LookAtMySuitBot/js/node_modules/git-source/lib/index.js

52 lines
1.2 KiB
JavaScript
Executable File

"use strict";
var gitUrlParse = require("git-url-parse");
var PROVIDERS = {
gist: "https://gist.github.com",
github: "https://github.com",
bitbucket: "https://bitbucket.org"
},
PROVIDERS_LIST = Object.keys(PROVIDERS);
module.exports = function gitSource(input) {
var parsed = gitUrlParse(input);
if (input.startsWith("~") || input.startsWith("/") || input.startsWith(".")) {
return parsed;
}
var splits = input.split(":");
if (parsed.protocol === "file" || parsed.protocol === "ssh") {
var source = splits[0],
target = splits[1],
targetSplits = null;
if (~source.indexOf("@")) {
return parsed;
}
if (splits.length === 1) {
target = source;
source = "github";
}
if (source === "file") {
parsed.protocol = source;
return parsed;
}
targetSplits = target.split("/");
if (source !== "gist" && targetSplits.length !== 2) {
return parsed;
}
if (~PROVIDERS_LIST.indexOf(source)) {
return gitSource(PROVIDERS[source] + "/" + target);
}
return parsed;
}
return parsed;
};