From 1f0bc89040f8a7a2ba3dcfae13c1e6cc6e517db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 6 Mar 2017 14:30:05 -0800 Subject: [PATCH] fix(manifest): ETARGET when no packages match Fixes: #34 This brings pick-manifest more in line with npm on this matter. --- lib/registry/pick-manifest.js | 6 +++--- test/registry.pick-manifest.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/registry/pick-manifest.js b/lib/registry/pick-manifest.js index 2dc5af8..0dc1440 100644 --- a/lib/registry/pick-manifest.js +++ b/lib/registry/pick-manifest.js @@ -12,7 +12,7 @@ function pickManifest (metadata, spec, opts) { var err return BB.fromNode(cb => { if (!versions.length) { - err = new Error('Package has no valid versions.') + err = new Error(`No valid versions available for ${metadata.name}`) err.code = 'ENOVERSIONS' err.name = metadata.name err.spec = spec @@ -56,8 +56,8 @@ function pickManifest (metadata, spec, opts) { var manifest = target && metadata.versions[target] if (!manifest) { - err = new Error('No matching versions') - err.code = 'ENOENT' + err = new Error(`No matching version found for ${spec.name}@${spec.spec}`) + err.code = 'ETARGET' err.name = metadata.name err.spec = spec err.versions = versions diff --git a/test/registry.pick-manifest.js b/test/registry.pick-manifest.js index 82e593f..77b3417 100644 --- a/test/registry.pick-manifest.js +++ b/test/registry.pick-manifest.js @@ -122,7 +122,7 @@ test('skips any invalid version keys', t => { () => { throw new Error('expected a failure') }, err => { t.ok(err, 'got an error') - t.equal(err.code, 'ENOENT', 'no matching specs') + t.equal(err.code, 'ETARGET', 'no matching specs') } ) ) @@ -140,7 +140,7 @@ test('ENOENT if range does not match anything', t => { () => { throw new Error('expected a failure') }, err => { t.ok(err, 'got an error') - t.equal(err.code, 'ENOENT', 'useful error code returned.') + t.equal(err.code, 'ETARGET', 'useful error code returned.') } ) })