Skip to content

Commit

Permalink
feat: download package add detail time log (#156)
Browse files Browse the repository at this point in the history
  • Loading branch information
caohuilin authored Sep 24, 2024
1 parent 13dc3cd commit 71d0268
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .changeset/strange-gorillas-perform.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@modern-js/codesmith": patch
---

feat: download package add detail time log

feat: δΈ‹θ½½ npm εŒ…ζ·»εŠ θ―¦η»†θ€—ζ—Άζ—₯εΏ—
11 changes: 11 additions & 0 deletions packages/core/src/utils/downloadPackage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,12 @@ export async function downloadPackage(
let version: string | undefined;
if (!semver.valid(pkgVersion)) {
// get pkgName version
logger?.timing(`πŸ•’ get ${pkgName} version`);
version = await getNpmVersion(pkgName, {
registryUrl,
version: pkgVersion,
});
logger?.timing(`πŸ•’ get ${pkgName} version`, true);
if (version === undefined) {
throw new Error(`package ${pkgName}@${pkgVersion} not found in registry`);
}
Expand All @@ -119,23 +121,32 @@ export async function downloadPackage(
await fs.remove(targetDir);
await fs.mkdirp(targetDir);

logger?.timing(`πŸ•’ get ${pkgName}@${version} tarball url`);
// get package tarball
const tarballPkg = await getNpmTarballUrl(pkgName, version, {
registryUrl,
});
logger?.timing(`πŸ•’ get ${pkgName}@${version} tarball url`, true);

logger?.timing(`πŸ•’ download ${pkgName}@${version} tarball`);
// download tarball and compress it to target directory
await downloadAndDecompressTargz(tarballPkg, targetDir);
logger?.timing(`πŸ•’ download ${pkgName}@${version} tarball`, true);

if (install) {
logger?.timing(`πŸ•’ install ${pkgName}@${version}`);
await runInstall(targetDir, registryUrl, logger);
logger?.timing(`πŸ•’ install ${pkgName}@${version}`, true);
}

logger?.timing(`πŸ•’ write ${pkgName}@${version} cache`);
// write completed flag
await fs.writeFile(
`${targetDir}/.codesmith.completed`,
new Date().toISOString(),
{ encoding: 'utf-8' },
);
logger?.timing(`πŸ•’ write ${pkgName}@${version} cache`, true);

return targetDir;
}

0 comments on commit 71d0268

Please sign in to comment.