Socket
Socket
Sign inDemoInstall

read-installed

Package Overview
Dependencies
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

read-installed - npm Package Compare versions

Comparing version 0.2.5 to 1.0.0

test/dev.js

9

package.json
{
"name": "read-installed",
"description": "Read all the installed packages in a folder, and return a tree structure with all the data.",
"version": "0.2.5",
"version": "1.0.0",
"repository": {

@@ -11,3 +11,3 @@ "type": "git",

"scripts": {
"test": "node test/basic.js"
"test": "tap ./test/"
},

@@ -23,3 +23,6 @@ "dependencies": {

"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
"license": "ISC"
"license": "ISC",
"devDependencies": {
"tap": "~0.4.8"
}
}

@@ -104,13 +104,10 @@

function readInstalled (folder, depth_, log_, cb_) {
var depth = Infinity, log = function () {}, cb
for (var i = 1; i < arguments.length - 1; i++) {
if (typeof arguments[i] === 'number')
depth = arguments[i]
else if (typeof arguments[i] === 'function')
log = arguments[i]
function readInstalled (folder, opts, cb) {
if (typeof opts === 'function') {
cb = opts
opts = {}
}
cb = arguments[i]
var depth = Infinity || opts.depth, log = function () {} || opts.log, dev = false || opts.dev
readInstalled_(folder, null, null, null, 0, depth, function (er, obj) {
readInstalled_(folder, null, null, null, 0, depth, dev, function (er, obj) {
if (er) return cb(er)

@@ -125,3 +122,3 @@ // now obj has all the installed things, where they're installed

var rpSeen = {}
function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, dev, cb) {
var installed

@@ -182,3 +179,3 @@ , obj

// "foo":"http://blah" is always presumed valid
// "foo":"http://blah" and "foo":"latest" are always presumed valid
if (reqver

@@ -192,3 +189,3 @@ && semver.validRange(reqver, true)

&& !(name in parent.dependencies)
&& !(name in (parent.devDependencies || {}))) {
&& (dev || !(name in (parent.devDependencies || {})))) {
obj.extraneous = true

@@ -205,3 +202,3 @@ }

var rv = obj.dependencies[pkg]
if (!rv && obj.devDependencies) rv = obj.devDependencies[pkg]
if (!rv && obj.devDependencies && !dev) rv = obj.devDependencies[pkg]
if (depth >= maxDepth) {

@@ -228,2 +225,3 @@ // just try to get the version number

, obj, pkg, obj.dependencies[pkg], depth + 1, maxDepth
, dev
, cb )

@@ -294,5 +292,5 @@

}
// "foo":"http://blah" and "foo":"latest" are always presumed valid
if ( typeof deps[d] === "string"
// url deps presumed innocent.
&& !url.parse(deps[d]).protocol
&& semver.validRange(deps[d], true)
&& !semver.satisfies(found.version, deps[d], true)) {

@@ -299,0 +297,0 @@ // the bad thing will happen

@@ -8,2 +8,12 @@ # read-installed

## 1.0.0
Breaking changes in `1.0.0`:
The second argument is now an `Object` that contains the following keys:
* `depth` optional, defaults to Infinity
* `log` optional log Function
* `dev` optional, dev=true to mark devDeps as extraneous
## Usage

@@ -13,6 +23,5 @@

var readInstalled = require("read-installed")
// depth is optional, defaults to Infinity
readInstalled(folder, depth, logFunction, function (er, data) {
readInstalled(folder, { depth, log, dev }, function (er, data) {
...
})
```
var readInstalled = require("../read-installed.js")
var util = require("util")
console.error("testing")
var json = require("../package.json")
var known = [].concat(Object.keys(json.dependencies)
, Object.keys(json.optionalDependencies)
, Object.keys(json.devDependencies)).sort()
var test = require("tap").test
var path = require("path")
var called = 0
readInstalled(process.cwd(), console.error, function (er, map) {
console.error(called ++)
if (er) return console.error(er.stack || er.message)
cleanup(map)
console.error(util.inspect(map, true, 10, true))
test("make sure that it works", function (t) {
readInstalled(path.join(__dirname, "../"), {
log: console.error
}, function (er, map) {
t.notOk(er, "er should be bull")
t.ok(map, "map should be data")
if (er) return console.error(er.stack || er.message)
cleanup(map)
var deps = Object.keys(map.dependencies).sort()
t.equal(known.length, deps.length, "array lengths are equal")
t.deepEqual(known, deps, "arrays should be equal")
t.notOk(map.dependencies.tap.extraneous, 'extraneous not set on devDep')
t.end()
})
})
var seen = []

@@ -14,0 +25,0 @@ function cleanup (map) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc