UNPKG

3.76 kBSource Map (JSON)View Raw
1{"version":3,"file":"normalize-raw-repository.esm.js","sources":["../../src/utils/normalize-raw-repository.ts"],"sourcesContent":["import gitUrlParse from 'git-url-parse';\nimport { GitRepository } from '../types/git-repository';\nimport { Repository } from '../types/repository';\n\nexport function normalizeRawRepository({\n rawRepository,\n}: {\n rawRepository?: any;\n}): GitRepository | undefined {\n if (isRepository(rawRepository)) {\n return normalizeRepository({ rawRepository });\n }\n\n if (typeof rawRepository === 'string') {\n return normalizeRepository({\n rawRepository: { url: rawRepository },\n });\n }\n\n return undefined;\n}\n\nfunction isRepository(rawRepository: any): rawRepository is Repository {\n return (\n rawRepository &&\n typeof rawRepository === 'object' &&\n typeof rawRepository['url'] === 'string' &&\n ['string', 'undefined'].includes(typeof rawRepository['type']) &&\n ['string', 'undefined'].includes(typeof rawRepository['directory'])\n );\n}\n\nfunction normalizeRepository({\n rawRepository,\n}: {\n rawRepository: Repository;\n}): GitRepository | undefined {\n const { url, directory: repositoryDir } = rawRepository;\n\n const info = parseGitURL({ url });\n if (!info) {\n return undefined;\n }\n\n const { source, full_name: repositoryID, filepath } = info;\n\n // Add domain to sources derived from npm-style shortcuts\n const host = source\n .replace(/^$/, 'github.com')\n .replace(/^github$/, 'github.com')\n .replace(/^gitlab$/, 'gitlab.com')\n .replace(/^bitbucket$/, 'bitbucket.org');\n\n const parsedDir = filepath !== '' ? filepath : undefined;\n\n return {\n type: 'git',\n url: `https://${host}/${repositoryID}`,\n directory: repositoryDir ?? parsedDir,\n };\n}\n\nfunction parseGitURL({ url }: { url: string }): gitUrlParse.GitUrl | undefined {\n let info;\n try {\n info = gitUrlParse(url);\n } catch {}\n return info;\n}\n"],"names":["normalizeRawRepository","rawRepository","isRepository","normalizeRepository","url","undefined","includes","directory","repositoryDir","info","parseGitURL","source","full_name","repositoryID","filepath","host","replace","parsedDir","type","gitUrlParse"],"mappings":";;SAIgBA,uBAAuB;AACnCC,EAAAA;AADmC;AAKnC,MAAIC,YAAY,CAACD,aAAD,CAAhB,EAAiC;AAC7B,WAAOE,mBAAmB,CAAC;AAAEF,MAAAA;AAAF,KAAD,CAA1B;AACH;;AAED,MAAI,OAAOA,aAAP,KAAyB,QAA7B,EAAuC;AACnC,WAAOE,mBAAmB,CAAC;AACvBF,MAAAA,aAAa,EAAE;AAAEG,QAAAA,GAAG,EAAEH;AAAP;AADQ,KAAD,CAA1B;AAGH;;AAED,SAAOI,SAAP;AACH;;AAED,SAASH,YAAT,CAAsBD,aAAtB;AACI,SACIA,aAAa,IACb,OAAOA,aAAP,KAAyB,QADzB,IAEA,OAAOA,aAAa,CAAC,KAAD,CAApB,KAAgC,QAFhC,IAGA,CAAC,QAAD,EAAW,WAAX,EAAwBK,QAAxB,CAAiC,OAAOL,aAAa,CAAC,MAAD,CAArD,CAHA,IAIA,CAAC,QAAD,EAAW,WAAX,EAAwBK,QAAxB,CAAiC,OAAOL,aAAa,CAAC,WAAD,CAArD,CALJ;AAOH;;AAED,SAASE,mBAAT,CAA6B;AACzBF,EAAAA;AADyB,CAA7B;AAKI,QAAM;AAAEG,IAAAA,GAAF;AAAOG,IAAAA,SAAS,EAAEC;AAAlB,MAAoCP,aAA1C;AAEA,QAAMQ,IAAI,GAAGC,WAAW,CAAC;AAAEN,IAAAA;AAAF,GAAD,CAAxB;;AACA,MAAI,CAACK,IAAL,EAAW;AACP,WAAOJ,SAAP;AACH;;AAED,QAAM;AAAEM,IAAAA,MAAF;AAAUC,IAAAA,SAAS,EAAEC,YAArB;AAAmCC,IAAAA;AAAnC,MAAgDL,IAAtD;;AAGA,QAAMM,IAAI,GAAGJ,MAAM,CACdK,OADQ,CACA,IADA,EACM,YADN,EAERA,OAFQ,CAEA,UAFA,EAEY,YAFZ,EAGRA,OAHQ,CAGA,UAHA,EAGY,YAHZ,EAIRA,OAJQ,CAIA,aAJA,EAIe,eAJf,CAAb;AAMA,QAAMC,SAAS,GAAGH,QAAQ,KAAK,EAAb,GAAkBA,QAAlB,GAA6BT,SAA/C;AAEA,SAAO;AACHa,IAAAA,IAAI,EAAE,KADH;AAEHd,IAAAA,GAAG,aAAaW,QAAQF,cAFrB;AAGHN,IAAAA,SAAS,EAAEC,aAAF,WAAEA,aAAF,GAAmBS;AAHzB,GAAP;AAKH;;AAED,SAASP,WAAT,CAAqB;AAAEN,EAAAA;AAAF,CAArB;AACI,MAAIK,IAAJ;;AACA,MAAI;AACAA,IAAAA,IAAI,GAAGU,WAAW,CAACf,GAAD,CAAlB;AACH,GAFD,CAEE,MAAM;;AACR,SAAOK,IAAP;AACH;;;;"}
\No newline at end of file