New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

js-makedepend

Package Overview
Dependencies
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-makedepend - npm Package Compare versions

Comparing version 0.3.0 to 0.4.0

dot-output-sample.png

3

.eslintrc.json

@@ -7,3 +7,3 @@ {

// "warn" => 1
"root": true,

@@ -244,5 +244,4 @@ "parserOptions": {

"node": true,
"mocha": true,
"es6": true
}
}
{
"name": "js-makedepend",
"version": "0.3.0",
"version": "0.4.0",
"description": "Determines dependencies of javascript modules and saves them in a Makefile. A bit like makedepend does for C.",

@@ -43,14 +43,14 @@ "bin": {

"chai": "3.5.0",
"codeclimate-test-reporter": "0.3.1",
"eslint": "2.10.1",
"codeclimate-test-reporter": "0.3.2",
"eslint": "2.12.0",
"intercept-stdout": "0.1.2",
"istanbul": "0.4.3",
"mocha": "2.4.5",
"npm-check-updates": "2.6.4",
"nsp": "2.3.3"
"mocha": "2.5.3",
"npm-check-updates": "2.6.7",
"nsp": "2.4.0"
},
"dependencies": {
"acorn": "3.1.0",
"acorn": "3.2.0",
"commander": "2.9.0",
"lodash": "4.12.0",
"lodash": "4.13.1",
"resolve": "1.1.7",

@@ -57,0 +57,0 @@ "semver": "5.1.0"

@@ -45,2 +45,3 @@ # js-makedepend

-M, --system <items> list of module systems (default: amd,cjs,es6)
-G , --dot visualizes dependencies in a graphiz dot
```

@@ -175,5 +176,4 @@ ## Features by example

### Selecting module systems: `--system`
By `js-makedepend` runs through your sources thrice, once for every module
system it knows. If you don't want that, specify the systems your interested in
in a comma-separated list:
By default `js-makedepend` runs through your sources thrice, once for every
module system it knows. If you don't want that, specify the systems your interested in, in a comma-separated list:

@@ -222,2 +222,17 @@ ```makefile

```
## Visualizing the dependency graph
Use `--dot` (or `-G`) to save the dependencies as a
graphviz dot file:
```shell
js-makedepend --dot --exclude "(node_modules)" --output-to dot-output-sample.dot src
```
You can use graphviz dot to transform it into something graphical:
```shell
dot -Tpng dot-output-sample.dot > dot-output-sample.png
```
![Build Status](./dot-output-sample.png)
## License

@@ -224,0 +239,0 @@ [MIT](LICENSE)

const program = require("commander");
const chewy = require("./chewy");
const main = require("./main");
const $package = require("../package.json");

@@ -23,2 +23,3 @@ const semver = require("semver");

.option("-M, --system <items>", "list of module systems (default: amd,cjs,es6)")
.option("-G , --dot", "visualizes dependencies in a graphiz dot")
.arguments("<directory-or-file>")

@@ -28,3 +29,3 @@ .parse(process.argv);

if (Boolean(program.args[0])) {
chewy.main(
main.main(
program.args[0],

@@ -31,0 +32,0 @@ program

@@ -23,6 +23,6 @@ "use strict";

function extractCommonJSDependencies(pAST, pDependencies, pModuleSystem) {
// var/const lalala = require('./lalala');
// require('./lalala');
// require('./lalala').doFunkyStuff();
walk.simple(

@@ -161,4 +161,4 @@ pAST,

return _(lDependencies)
.uniqBy(pDependency => `${pDependency.moduleName}, ${pDependency.moduleSystem}`)
.sortBy(pDependency => `${pDependency.moduleName}, ${pDependency.moduleSystem}`)
.uniqBy(pDependency => `${pDependency.moduleName} ${pDependency.moduleSystem}`)
.sortBy(pDependency => `${pDependency.moduleName} ${pDependency.moduleSystem}`)
.map(

@@ -188,60 +188,2 @@ pDependency => {

function extractRecursive (pFileName, pOptions, pVisited) {
pOptions = pOptions ? pOptions : {};
pVisited = pVisited || new Set();
pVisited.add(pFileName);
let lRetval = {};
const lDependencies = extractDependencies(pFileName, pOptions);
lRetval[pFileName] = lDependencies;
lDependencies
.filter(pDep => pDep.followable && !pVisited.has(pDep.resolved))
.forEach(
pDep => {
lRetval = _.merge(
lRetval,
extractRecursive(pDep.resolved, pOptions, pVisited)
);
}
);
return lRetval;
}
function _extractRecursiveFlattened(pFileName, pOptions, pVisited) {
pOptions = pOptions ? pOptions : {};
pVisited = pVisited || new Set();
pVisited.add(pFileName);
const lDependencies = extractDependencies(pFileName, pOptions);
let lRetval = _.clone(lDependencies);
lDependencies
.filter(pDep => pDep.followable && !pVisited.has(pDep.resolved))
.forEach(
pDep => {
const lDep = _extractRecursiveFlattened(pDep.resolved, pOptions, pVisited);
if (lDep){
lRetval = lRetval.concat(lDep);
}
}
);
return lRetval;
}
function extractRecursiveFlattened(pFileName, pOptions) {
let lRetval = {};
lRetval[pFileName] =
_(_extractRecursiveFlattened(pFileName, pOptions))
.uniqBy(pDep => pDep.resolved)
.sortBy(pDep => pDep.resolved)
.value();
return lRetval;
}
exports.extractDependencies = extractDependencies;
exports.extractRecursive = extractRecursive;
exports.extractRecursiveFlattened = extractRecursiveFlattened;
exports.extractDependencies = extractDependencies;

@@ -16,16 +16,2 @@ [

{
"module": "./extractor-fixtures/amd-recursive-flattened.json",
"resolved": "test/extractor-fixtures/amd-recursive-flattened.json",
"moduleSystem": "cjs",
"coreModule": false,
"followable": false
},
{
"module": "./extractor-fixtures/amd-recursive.json",
"resolved": "test/extractor-fixtures/amd-recursive.json",
"moduleSystem": "cjs",
"coreModule": false,
"followable": false
},
{
"module": "./extractor-fixtures/amd.json",

@@ -38,16 +24,2 @@ "resolved": "test/extractor-fixtures/amd.json",

{
"module": "./extractor-fixtures/cjs-flat.json",
"resolved": "test/extractor-fixtures/cjs-flat.json",
"moduleSystem": "cjs",
"coreModule": false,
"followable": false
},
{
"module": "./extractor-fixtures/cjs-recursive.json",
"resolved": "test/extractor-fixtures/cjs-recursive.json",
"moduleSystem": "cjs",
"coreModule": false,
"followable": false
},
{
"module": "./extractor-fixtures/cjs.json",

@@ -54,0 +26,0 @@ "resolved": "test/extractor-fixtures/cjs.json",

const expect = require('chai').expect;
const extractor = require('../src/extractor');
const cjsFixtures = require('./extractor-fixtures/cjs.json');
const cjsRecursiveFixtures = require('./extractor-fixtures/cjs-recursive.json');
const cjsFlatFixtures = require('./extractor-fixtures/cjs-flat.json');
const es6Fixtures = require('./extractor-fixtures/es6.json');
const amdFixtures = require('./extractor-fixtures/amd.json');
const amdRecursiveFixtures = require('./extractor-fixtures/amd-recursive.json');
const amdRecursiveFlattenedFixtures = require('./extractor-fixtures/amd-recursive-flattened.json');

@@ -27,30 +23,5 @@ function runFixture(pFixture) {

function runRecursiveFixture(pFixture) {
it(pFixture.title, () => {
expect(
extractor.extractRecursive(
pFixture.input.fileName,
pFixture.input.options
)
).to.deep.equal(pFixture.expected);
});
}
function runRecursiveFlattenedFixture(pFixture) {
it(pFixture.title, () => {
expect(
extractor.extractRecursiveFlattened(
pFixture.input.fileName,
pFixture.input.options
)
).to.deep.equal(pFixture.expected);
});
}
describe('CommonJS - ', () => cjsFixtures.forEach(runFixture));
describe('CommonJS recursive - ', () => cjsRecursiveFixtures.forEach(runRecursiveFixture));
describe('CommonJS recursive flattened - ', () => cjsFlatFixtures.forEach(runRecursiveFlattenedFixture));
describe('ES6 - ', () => es6Fixtures.forEach(runFixture));
describe('AMD - ', () => amdFixtures.forEach(runFixture));
describe('AMD recursive - ', () => amdRecursiveFixtures.forEach(runRecursiveFixture));
describe('AMD recursive flattened - ', () => amdRecursiveFlattenedFixtures.forEach(runRecursiveFlattenedFixture));

@@ -57,0 +28,0 @@ describe('Error scenarios - ', () => {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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