Skip to content

Commit

Permalink
support scopes
Browse files Browse the repository at this point in the history
  • Loading branch information
delfrrr committed Sep 3, 2017
1 parent 9819423 commit 7427f97
Showing 1 changed file with 25 additions and 7 deletions.
32 changes: 25 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const packageDetailsCache = {};

function getPackageDetails(name, semVersion) {
const key = `${name}@${semVersion}`;
const url = `${registryUrl}${name}`;
const url = `${registryUrl}${name.replace(`/`, `%2f`)}`;
if (!packageDetailsCache[key]) {
process.stdout.cursorTo(0);
process.stdout.clearLine(1);
Expand Down Expand Up @@ -121,9 +121,6 @@ function addPackageToQueue(

function showQuickStats(name, semVersion, packages) {
const packagesAr = Object.keys(packages);
const resolvedPackageName = packagesAr.filter((key) => {
return packages[key].name === name;
})[0];
process.stdout.clearLine();
process.stdout.cursorTo(0);
console.log(`Total download packages ${packagesAr.length}`);
Expand All @@ -146,15 +143,36 @@ function showQuickStats(name, semVersion, packages) {
}, ``)}`);
}

function parseName(nameVersion) {
let nameVersionStr = String(nameVersion).trim();
let scope = false;
if (nameVersionStr[0] === `@`) {
scope = true;
nameVersionStr = nameVersionStr.slice(1);
}
console.log(nameVersionStr, scope);
let [name, semVersion] = nameVersionStr.split(`@`);
if (!semVersion) {
semVersion = `latest`;
}
if (scope) {
name = `@${name}`;
}
return { name, semVersion };
}

function install(nameVersion) {
const queue = new Queue(20, Infinity);
const packages = {};
let [name, semVersion] = nameVersion.split(`@`);
semVersion = semVersion || `latest`;
const { name, semVersion } = parseName(nameVersion);
getPackageDetails(name, semVersion).then((packageStats) => {
process.stdout.cursorTo(0);
process.stdout.clearLine(1);
process.stdout.write(`You are installing ${packageStats.name}@${packageStats.version} (last modified ${
process.stdout.write(`You are installing ${
packageStats.name
}@${
packageStats.version
} (last modified ${
moment(packageStats.modified).fromNow()
})\n`);
return addPackageToQueue(
Expand Down

0 comments on commit 7427f97

Please sign in to comment.