From f763d6a321fe3eaf627a61143985f7167fe76078 Mon Sep 17 00:00:00 2001 From: zkochan Date: Mon, 13 Feb 2017 23:32:38 +0200 Subject: [PATCH] fix(resolve): tarball depedencies have readable IDs --- src/resolve/local.ts | 8 +++----- src/resolve/tarball.ts | 14 +++----------- test/install.ts | 2 +- tsconfig.json | 1 - 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/resolve/local.ts b/src/resolve/local.ts index 12e6c4b3e93..052092d48c8 100644 --- a/src/resolve/local.ts +++ b/src/resolve/local.ts @@ -1,6 +1,5 @@ import {resolve} from 'path' import * as path from 'path' -import getTarballName from './getTarballName' import readPkg from '../fs/readPkg' import {PackageSpec, ResolveOptions, Resolution, ResolveResult} from '.' import fs = require('mz/fs') @@ -12,13 +11,12 @@ export default async function resolveLocal (spec: PackageSpec, opts: ResolveOpti const dependencyPath = resolve(opts.root, spec.spec) if (dependencyPath.slice(-4) === '.tgz' || dependencyPath.slice(-7) === '.tar.gz') { - const name = getTarballName(dependencyPath) const resolution: Resolution = { type: 'tarball', tarball: `file:${dependencyPath}`, } return { - id: createLocalPkgId(name, dependencyPath), + id: createLocalPkgId(dependencyPath), resolution, } } @@ -29,11 +27,11 @@ export default async function resolveLocal (spec: PackageSpec, opts: ResolveOpti root: dependencyPath, } return { - id: createLocalPkgId(localPkg.name, dependencyPath), + id: createLocalPkgId(dependencyPath), resolution, } } -function createLocalPkgId (name: string, dependencyPath: string): string { +function createLocalPkgId (dependencyPath: string): string { return 'local/' + encodeURIComponent(dependencyPath) } diff --git a/src/resolve/tarball.ts b/src/resolve/tarball.ts index ee811461dd2..b03912d34b7 100644 --- a/src/resolve/tarball.ts +++ b/src/resolve/tarball.ts @@ -1,5 +1,3 @@ -import getTarballName from './getTarballName' -import crypto = require('crypto') import {PackageSpec, ResolveOptions, Resolution, ResolveResult} from '.' /** @@ -16,21 +14,15 @@ import {PackageSpec, ResolveOptions, Resolution, ResolveResult} from '.' * resolveTarball(pkg) */ export default async function resolveTarball (spec: PackageSpec, opts: ResolveOptions): Promise { - const name = getTarballName(spec.rawSpec) - const resolution: Resolution = { type: 'tarball', tarball: spec.rawSpec, } return { - id: name + '#' + hash(spec.rawSpec), + id: spec.rawSpec + .replace(/^.*:\/\/(git@)?/, '') + .replace(/\.tgz$/, ''), resolution, } } - -function hash (str: string) { - const hash = crypto.createHash('sha1') - hash.update(str) - return hash.digest('hex') -} diff --git a/test/install.ts b/test/install.ts index 5c9f7e04a78..e3921ed23d2 100644 --- a/test/install.ts +++ b/test/install.ts @@ -366,7 +366,7 @@ test('tarballs (is-array-1.0.1.tgz)', async function (t) { t.ok(isArray, 'isArray() is available') - await project.storeHas('is-array-1.0.1#a83102a9c117983e6ff4d85311fb322231abe3d6') + await project.storeHas('registry.npmjs.org/is-array/-/is-array-1.0.1') }) test('tarballs from GitHub (is-negative)', async function (t) { diff --git a/tsconfig.json b/tsconfig.json index 59f0bdaa2a2..fc16af46891 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -75,7 +75,6 @@ "src/registryFor.ts", "src/removeDeps.ts", "src/reporter/index.ts", - "src/resolve/getTarballName.ts", "src/resolve/git.ts", "src/resolve/index.ts", "src/resolve/local.ts",