neuron-tree
Advanced tools
Comparing version 1.0.0 to 2.0.0
88
index.js
'use strict'; | ||
module.exports = tree; | ||
var jf = require('jsonfile'); | ||
var shrinked = require('shrinked'); | ||
var shrinkwrap = require('cortex-shrinkwrap'); | ||
var async = require('async'); | ||
var node_path = require('path'); | ||
var fs = require('fs'); | ||
// @param {Object} options | ||
// - dependencyKeys {(Array.<string>)} | ||
// - built_root {path} | ||
// - shrinkwrap {Object=} | ||
function tree (cwd, pkg, options, callback) { | ||
options || (options = {}); | ||
(options.dependencyKeys) || (options.dependencyKeys = ['dependencies', 'asyncDependencies']); | ||
async.parallel([ | ||
function (done) { | ||
if (options.shrinkwrap) { | ||
return done(null); | ||
} | ||
tree.read_shrinkwrap(cwd, pkg, options, function (err, tree) { | ||
if (err) { | ||
return done(err); | ||
} | ||
options.shrinkwrap = tree; | ||
done(null); | ||
}); | ||
} | ||
], function (err) { | ||
if (err) { | ||
return callback(err); | ||
} | ||
options.shrinkwrap.version = pkg.version; | ||
var keys = options.dependencyKeys; | ||
var shrinked_tree = shrinked.parse(options.shrinkwrap, { | ||
dependencyKeys: keys | ||
}); | ||
var result = tree.parse_shrinked(shrinked_tree, keys); | ||
callback(null, result); | ||
}); | ||
}; | ||
tree.read_shrinkwrap = function (cwd, pkg, options, callback) { | ||
var shrinkwrap_json = node_path.join(cwd, 'cortex-shrinkwrap.json'); | ||
fs.exists(shrinkwrap_json, function(exists) { | ||
if (exists) { | ||
return jf.readFile(shrinkwrap_json, callback); | ||
} | ||
var keys = options.dependencyKeys; | ||
shrinkwrap(pkg, options.built_root, { | ||
stableOnly: true, | ||
async: ~keys.indexOf('asyncDependencies'), | ||
dev: ~keys.indexOf('devDependencies') | ||
}, callback); | ||
}); | ||
}; | ||
// @param {Object} shrinked | ||
@@ -19,6 +89,6 @@ // ``` | ||
// @param | ||
exports.parse = function (shrinked, types) { | ||
tree.parse_shrinked = function (shrinked, types) { | ||
var parsed = {}; | ||
types || (types = DEFAULT_TYPES); | ||
exports._each(shrinked, function (name, version, deps) { | ||
tree._each(shrinked, function (name, version, deps) { | ||
var merged_sync_deps = {}; | ||
@@ -33,3 +103,3 @@ var merged_async_deps = {}; | ||
: merged_sync_deps; | ||
exports._merge(dest, deps[type]); | ||
tree._merge(dest, deps[type]); | ||
} | ||
@@ -39,4 +109,4 @@ }); | ||
if ( | ||
exports._is_empty(merged_sync_deps) | ||
&& exports._is_empty(merged_async_deps) | ||
tree._is_empty(merged_sync_deps) | ||
&& tree._is_empty(merged_async_deps) | ||
) { | ||
@@ -75,3 +145,3 @@ return; | ||
// double each | ||
exports._each = function (object, iterator) { | ||
tree._each = function (object, iterator) { | ||
var a; | ||
@@ -91,3 +161,3 @@ var value; | ||
exports._is_empty = function (object) { | ||
tree._is_empty = function (object) { | ||
var key; | ||
@@ -102,3 +172,3 @@ for (key in object) { | ||
// Deep merge | ||
exports._merge = function (receiver, supplier){ | ||
tree._merge = function (receiver, supplier){ | ||
if (Object(supplier) !== supplier) { | ||
@@ -108,3 +178,3 @@ return; | ||
exports._each(supplier, function (name, range, version) { | ||
tree._each(supplier, function (name, range, version) { | ||
var ranges = receiver[name] || (receiver[name] = {}); | ||
@@ -111,0 +181,0 @@ ranges[range] = version; |
{ | ||
"name": "neuron-tree", | ||
"version": "1.0.0", | ||
"version": "2.0.0", | ||
"description": "Generates the config.tree of neuron", | ||
@@ -34,3 +34,9 @@ "main": "index.js", | ||
"jsonfile": "~1.1.1" | ||
}, | ||
"dependencies": { | ||
"async": "^0.9.0", | ||
"cortex-shrinkwrap": "^3.0.0", | ||
"jsonfile": "^1.2.0", | ||
"shrinked": "^0.1.4" | ||
} | ||
} |
@@ -39,6 +39,14 @@ # neuron-tree [![NPM version](https://badge.fury.io/js/neuron-tree.svg)](http://badge.fury.io/js/neuron-tree) [![Build Status](https://travis-ci.org/cortexjs/neuron-tree.svg?branch=master)](https://travis-ci.org/cortexjs/neuron-tree) [![Dependency Status](https://gemnasium.com/cortexjs/neuron-tree.svg)](https://gemnasium.com/cortexjs/neuron-tree) | ||
### tree.parse(shrinked, types) | ||
### tree(cwd, pkg, [options], callback) | ||
- cwd | ||
- pkg `Object` cortex json | ||
- options | ||
- built_root `path=` | ||
- shrinkwrap `Object=` | ||
### tree.parse(shrinked, dependencyKeys) | ||
- shrinked `Object` the shrinked object of [shrinked](https://www.npmjs.org/package/shrinked) | ||
- types `Array.<type>` the array of types of dependencies, default to | ||
- dependencyKeys `Array.<type>` the array of types of dependencies, default to | ||
@@ -50,5 +58,5 @@ [ | ||
you could include other types of dependencies in the array. | ||
you could include other keys of dependencies in the array. | ||
- type `String` available types: `'dependencies'`, `'asyncDependencies'`, `'engines'`, `devDependencies` | ||
- type `String` available keys: `'dependencies'`, `'asyncDependencies'`, `'engines'`, `devDependencies` | ||
@@ -55,0 +63,0 @@ Parses the shrinked B+ tree, and generates a simpler tree for `config.tree` of neuron. |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
11596
349
66
4
2
+ Addedasync@^0.9.0
+ Addedcortex-shrinkwrap@^3.0.0
+ Addedjsonfile@^1.2.0
+ Addedshrinked@^0.1.4
+ Addedasync@0.9.2(transitive)
+ Addedcortex-deps-traveller@1.2.4(transitive)
+ Addedcortex-shrinkwrap@3.0.2(transitive)
+ Addedjsonfile@1.1.11.2.0(transitive)
+ Addedsemver@2.3.2(transitive)
+ Addedshrinked@0.1.5(transitive)
+ Addedsorted-object@1.0.0(transitive)