Skip to content

Commit

Permalink
Merge pull request #87 from onmodulus/bug/unexpected-eoi
Browse files Browse the repository at this point in the history
Corrects an error with invalid package.json
  • Loading branch information
Matt Hernandez committed Oct 9, 2014
2 parents 34c37f2 + 435044d commit 5cbc6b5
Showing 1 changed file with 23 additions and 19 deletions.
42 changes: 23 additions & 19 deletions lib/demeteorizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,48 +217,52 @@ Demeteorizer.prototype.bundle = function (context, callback) {

Demeteorizer.prototype.findDependenciesInFolder = function (folder, inNodeModulesFolder, context) {

var files = fs.readdirSync(folder);
var self = this;

files.forEach(function (file) {
fs.readdirSync(folder).forEach(function (file) {
var stats = fs.statSync(path.join(folder, file));
if (stats.isDirectory()) {
var inNodeMod = false;
var keepGoing = true;

if (file === 'node_modules') {
inNodeMod = true;
if (inNodeModulesFolder) {
keepGoing = false;
}
}

// sockjs comes with example folders, remove.
// Skip the examples directory.
if (file === 'examples') {
keepGoing = false;
}

if (keepGoing) {
self.findDependenciesInFolder(path.join(folder, file), inNodeMod, context);
this.findDependenciesInFolder(path.join(folder, file), inNodeMod, context);
}
}
else {
if (file === 'package.json') {
var packageJson = JSON.parse(fs.readFileSync(path.join(folder, file)));
var filtered = self.filterDep(packageJson.name, packageJson._resolved || packageJson.version);
if (filtered) {
context.dependencies[filtered.name] = filtered.version;
}
if (packageJson.dependencies) {
Object.keys(packageJson.dependencies).forEach(function (dep) {
var filtered = self.filterDep(dep, packageJson.dependencies[dep]);
if (filtered) {
context.dependencies[filtered.name] = filtered.version;
}
});
var packageData = fs.readFileSync(path.join(folder, file));

// Test that the package.json contains data. There is a module that
// includes a package.json fixture that is empty.
if (packageData.length > 0) {
var packageJson = JSON.parse(packageData);
var filtered = this.filterDep(packageJson.name, packageJson._resolved || packageJson.version);
if (filtered) {
context.dependencies[filtered.name] = filtered.version;
}
if (packageJson.dependencies) {
Object.keys(packageJson.dependencies).forEach(function (dep) {
var filtered = this.filterDep(dep, packageJson.dependencies[dep]);
if (filtered) {
context.dependencies[filtered.name] = filtered.version;
}
}.bind(this));
}
}
}
}
});
}.bind(this));

};

Expand Down

0 comments on commit 5cbc6b5

Please sign in to comment.