Skip to content

Commit

Permalink
fix(resolve): tarball depedencies have readable IDs
Browse files Browse the repository at this point in the history
  • Loading branch information
zkochan committed Feb 13, 2017
1 parent dfb7acc commit f763d6a
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 18 deletions.
8 changes: 3 additions & 5 deletions 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')
Expand All @@ -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,
}
}
Expand All @@ -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)
}
14 changes: 3 additions & 11 deletions src/resolve/tarball.ts
@@ -1,5 +1,3 @@
import getTarballName from './getTarballName'
import crypto = require('crypto')
import {PackageSpec, ResolveOptions, Resolution, ResolveResult} from '.'

/**
Expand All @@ -16,21 +14,15 @@ import {PackageSpec, ResolveOptions, Resolution, ResolveResult} from '.'
* resolveTarball(pkg)
*/
export default async function resolveTarball (spec: PackageSpec, opts: ResolveOptions): Promise<ResolveResult> {
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')
}
2 changes: 1 addition & 1 deletion test/install.ts
Expand Up @@ -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) {
Expand Down
1 change: 0 additions & 1 deletion tsconfig.json
Expand Up @@ -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",
Expand Down

0 comments on commit f763d6a

Please sign in to comment.