UNPKG

@pushrocks/smartstring

Version:

handle strings in smart ways. TypeScript ready.

42 lines 3.63 kB
import * as plugins from './smartstring.plugins.js'; /* ---------------------------------------------- * * ------------------ classes ------------------- * * ---------------------------------------------- */ export class GitRepo { constructor(stringArg, tokenArg) { let regexMatches = gitRegex(stringArg); this.host = regexMatches[1]; this.user = regexMatches[2]; this.repo = regexMatches[3]; this.accessToken = tokenArg; this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'ssh'); this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'https'); } } /* ---------------------------------------------- * * ------------------ helpers ------------------- * * ---------------------------------------------- */ const gitRegex = function (stringArg) { const regexString = /([a-zA-Z0-9\-_\.]*)(?:\/|\:)([a-zA-Z0-9\-_\.]*)(?:\/)([a-zA-Z0-9\-_\.]*)(?:\.git)/; let regexMatches = regexString.exec(stringArg); return regexMatches; }; const gitLink = function (hostArg, userArg, repoArg, tokenArg = '', linkTypeArg) { let returnString; if (tokenArg !== '') { tokenArg = tokenArg + '@'; } switch (linkTypeArg) { case 'https': returnString = 'https://' + tokenArg + hostArg + '/' + userArg + '/' + repoArg + '.git'; break; case 'ssh': returnString = 'git@' + hostArg + ':' + userArg + '/' + repoArg + '.git'; break; default: console.error('Link Type ' + linkTypeArg + ' not known'); break; } return returnString; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZ2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZ2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMEJBQTBCLENBQUM7QUFFcEQ7O29EQUVvRDtBQUNwRCxNQUFNLE9BQU8sT0FBTztJQU9sQixZQUFZLFNBQWlCLEVBQUUsUUFBaUI7UUFDOUMsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0Y7QUFFRDs7b0RBRW9EO0FBQ3BELE1BQU0sUUFBUSxHQUFHLFVBQVUsU0FBaUI7SUFDMUMsTUFBTSxXQUFXLEdBQ2YsbUZBQW1GLENBQUM7SUFDdEYsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRyxVQUNkLE9BQWUsRUFDZixPQUFlLEVBQ2YsT0FBZSxFQUNmLFdBQW1CLEVBQUUsRUFDckIsV0FBVztJQUVYLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksUUFBUSxLQUFLLEVBQUUsRUFBRTtRQUNuQixRQUFRLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQztLQUMzQjtJQUNELFFBQVEsV0FBVyxFQUFFO1FBQ25CLEtBQUssT0FBTztZQUNWLFlBQVksR0FBRyxVQUFVLEdBQUcsUUFBUSxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3hGLE1BQU07UUFDUixLQUFLLEtBQUs7WUFDUixZQUFZLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3pFLE1BQU07UUFDUjtZQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN6RCxNQUFNO0tBQ1Q7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUMifQ==