22 lines
689 B
JavaScript
22 lines
689 B
JavaScript
const path = require('path')
|
|
|
|
// String -> String
|
|
|
|
// @url examples:
|
|
// - https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz
|
|
// - https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz
|
|
// - git+https://github.com/srghma/node-shell-quote.git
|
|
// - git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git
|
|
|
|
function urlToName(url) {
|
|
if (url.startsWith('git+')) {
|
|
return path.basename(url)
|
|
}
|
|
|
|
return url
|
|
.replace('https://registry.yarnpkg.com/', '') // prevents having long directory names
|
|
.replace(/[@/:-]/g, '_') // replace @ and : and - characters with underscore
|
|
}
|
|
|
|
module.exports = urlToName
|