package-json
Advanced tools
Comparing version 1.2.0 to 2.0.0
59
index.js
@@ -5,46 +5,25 @@ 'use strict'; | ||
function get(url, cb) { | ||
got(url, {json: true}, function (err, data) { | ||
if (err && err.code === 404) { | ||
cb(new Error('Package or version doesn\'t exist')); | ||
return; | ||
} | ||
module.exports = function (name, version) { | ||
var url = registryUrl(name.split('/')[0]) + | ||
encodeURIComponent(name).replace(/^%40/, '@'); | ||
if (err) { | ||
cb(err); | ||
return; | ||
} | ||
return got(url, {json: true}) | ||
.then(function (res) { | ||
var data = res.body; | ||
cb(null, data); | ||
}); | ||
} | ||
if (version === 'latest') { | ||
data = data.versions[data['dist-tags'].latest]; | ||
} else if (version) { | ||
data = data.versions[version]; | ||
} | ||
module.exports = function (name, version, cb) { | ||
var url = registryUrl(name.split('/')[0]) + name + '/'; | ||
return data; | ||
}) | ||
.catch(function (err) { | ||
if (err.statusCode === 404) { | ||
throw new Error('Package or version doesn\'t exist'); | ||
} | ||
if (typeof version !== 'string') { | ||
cb = version; | ||
version = ''; | ||
} | ||
get(url + version, cb); | ||
throw err; | ||
}); | ||
}; | ||
module.exports.field = function (name, field, cb) { | ||
var url = registryUrl(name.split('/')[0]) + | ||
'-/by-field/?key=%22' + name + '%22&field=' + field; | ||
get(url, function (err, res) { | ||
if (err) { | ||
cb(err); | ||
return; | ||
} | ||
if (Object.keys(res).length === 0) { | ||
cb(new Error('Field `' + field + '` doesn\'t exist')); | ||
return; | ||
} | ||
cb(null, res[name][field]); | ||
}); | ||
}; |
{ | ||
"name": "package-json", | ||
"version": "1.2.0", | ||
"version": "2.0.0", | ||
"description": "Get the package.json of a package from the npm registry", | ||
@@ -16,3 +16,3 @@ "license": "MIT", | ||
"scripts": { | ||
"test": "mocha" | ||
"test": "xo && ava" | ||
}, | ||
@@ -34,8 +34,14 @@ "files": [ | ||
"dependencies": { | ||
"got": "^3.2.0", | ||
"registry-url": "^3.0.0" | ||
"got": "^4.2.0", | ||
"registry-url": "^3.0.3" | ||
}, | ||
"devDependencies": { | ||
"mocha": "*" | ||
"ava": "*", | ||
"xo": "*" | ||
}, | ||
"xo": { | ||
"ignores": [ | ||
"test.js" | ||
] | ||
} | ||
} |
@@ -16,19 +16,14 @@ # package-json [![Build Status](https://travis-ci.org/sindresorhus/package-json.svg?branch=master)](https://travis-ci.org/sindresorhus/package-json) | ||
```js | ||
var packageJson = require('package-json'); | ||
const packageJson = require('package-json'); | ||
packageJson('pageres', 'latest', function (err, json) { | ||
packageJson('pageres', 'latest').then(json => { | ||
console.log(json); | ||
//=> { name: 'pageres', ... } | ||
//=> {name: 'pageres', ...} | ||
}); | ||
// also works with scoped packages | ||
packageJson('@company/package', 'latest', function (err, json) { | ||
packageJson('@company/package', 'latest').then(json => { | ||
console.log(json); | ||
//=> { name: 'package', ... } | ||
//=> {name: 'package', ...} | ||
}); | ||
packageJson.field('pageres', 'description', function (err, field) { | ||
console.log(field); | ||
//=> 'Capture website screenshots' | ||
}); | ||
``` | ||
@@ -39,12 +34,8 @@ | ||
### packageJson(name, [version], callback) | ||
### packageJson(name, [version]) | ||
You can optionally specify a version (e.g. `0.1.0`) or `latest`. | ||
You can optionally specify a version (e.g. `1.0.0`) or `latest`. | ||
If you don't specify a version you'll get the [main entry](http://registry.npmjs.org/pageres/) containing all versions. | ||
### packageJson.field(name, field, callback) | ||
Get a specific field in the `package.json`. | ||
## Related | ||
@@ -51,0 +42,0 @@ |
3672
2
23
49
2
+ Addedcapture-stack-trace@1.0.2(transitive)
+ Addedcreate-error-class@2.0.1(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addedgot@4.2.0(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-plain-obj@1.1.0(transitive)
+ Addednode-status-codes@1.0.0(transitive)
+ Addedparse-json@2.2.0(transitive)
+ Addedpinkie@1.0.0(transitive)
+ Addedpinkie-promise@1.0.0(transitive)
+ Addedunzip-response@1.0.2(transitive)
- Removedgot@3.3.1(transitive)
- Removedinfinity-agent@2.0.3(transitive)
- Removednested-error-stacks@1.0.2(transitive)
Updatedgot@^4.2.0
Updatedregistry-url@^3.0.3