From 1d8ecb705a0762bedfe54c2046809444f263c679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Thu, 31 Mar 2016 20:51:04 +0200 Subject: [PATCH 1/4] Upgrade dependencies within minor levels --- package.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 30d17c58..5f360040 100644 --- a/package.json +++ b/package.json @@ -13,24 +13,24 @@ "url": "https://github.com/jsdoc3/jsdoc" }, "dependencies": { - "async": "~1.4.0", - "bluebird": "~2.9.34", + "async": "~1.5.2", + "bluebird": "~2.10.2", "catharsis": "~0.8.7", - "escape-string-regexp": "~1.0.3", - "espree": "~2.2.3", + "escape-string-regexp": "~1.0.5", + "espree": "~2.2.5", "js2xmlparser": "~1.0.0", - "marked": "~0.3.4", - "requizzle": "~0.2.0", - "strip-json-comments": "~1.0.2", + "marked": "~0.3.5", + "requizzle": "~0.2.1", + "strip-json-comments": "~1.0.4", "taffydb": "https://github.com/hegemonic/taffydb/tarball/7d100bcee0e997ee4977e273cdce60bd8933050e", "underscore": "~1.8.3", - "wrench": "~1.5.8" + "wrench": "~1.5.9" }, "devDependencies": { - "gulp": "~3.9.0", - "gulp-eslint": "~1.0.0", + "gulp": "~3.9.1", + "gulp-eslint": "~1.1.1", "gulp-json-editor": "~2.2.1", - "istanbul": "~0.3.17", + "istanbul": "~0.4.2", "tv4": "https://github.com/hegemonic/tv4/tarball/own-properties" }, "engines": { From 34c6eb9ffd8211291ea52d34a633fb088bc35fed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Thu, 31 Mar 2016 21:17:41 +0200 Subject: [PATCH 2/4] Update gulp-eslint and minor style fixes to adapt to new eslint version --- .eslintrc | 4 +--- gulpfile.js | 2 +- lib/jsdoc/opts/args.js | 1 + lib/jsdoc/src/astnode.js | 1 + lib/jsdoc/src/handlers.js | 2 ++ lib/jsdoc/src/parser.js | 1 + lib/jsdoc/src/visitor.js | 1 + lib/jsdoc/tag/dictionary/definitions.js | 1 + lib/jsdoc/util/markdown.js | 1 + package.json | 4 ++-- plugins/sourcetag.js | 2 +- templates/default/publish.js | 2 +- templates/haruki/publish.js | 2 +- test/specs/jsdoc/util/templateHelper.js | 2 +- 14 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.eslintrc b/.eslintrc index c26dca1b..592cbfc0 100644 --- a/.eslintrc +++ b/.eslintrc @@ -48,7 +48,6 @@ "no-caller": 2, "no-div-regex": 2, "no-else-return": 0, - "no-empty-label": 2, "no-eq-null": 2, "no-eval": 2, "no-extra-bind": 2, @@ -156,12 +155,11 @@ "semi": [2, "always"], "semi-spacing": 2, "sort-vars": 0, - "space-after-keywords": [2, "always"], + "keyword-spacing": 2, "space-before-blocks": [2, "always"], "space-in-brackets": 0, // TODO: enable? "space-in-parens": 0, // TODO: enable? "space-infix-ops": 2, - "space-return-throw-case": 2, "space-unary-ops": 2, "spaced-comment": [2, "always"], "wrap-regex": 0, diff --git a/gulpfile.js b/gulpfile.js index b4800b4a..4fb23b48 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -48,7 +48,7 @@ gulp.task('coverage', function(cb) { }); gulp.task('lint', function() { - var pipeline = gulp.src(options.lintPaths) + return gulp.src(options.lintPaths) .pipe(eslint()) .pipe(eslint.formatEach()) .pipe(eslint.failOnError()); diff --git a/lib/jsdoc/opts/args.js b/lib/jsdoc/opts/args.js index 6daa8542..8c212775 100644 --- a/lib/jsdoc/opts/args.js +++ b/lib/jsdoc/opts/args.js @@ -86,4 +86,5 @@ exports.get = function(name) { else if ( hasOwnProp.call(ourOptions, name) ) { return ourOptions[name]; } + return undefined; }; diff --git a/lib/jsdoc/src/astnode.js b/lib/jsdoc/src/astnode.js index 888a2c76..488e9844 100644 --- a/lib/jsdoc/src/astnode.js +++ b/lib/jsdoc/src/astnode.js @@ -363,6 +363,7 @@ var getInfo = exports.getInfo = function(node) { info.paramnames = getParamNames(definition.value); return true; } + return false; }); break; diff --git a/lib/jsdoc/src/handlers.js b/lib/jsdoc/src/handlers.js index 13cb3b21..791581f9 100644 --- a/lib/jsdoc/src/handlers.js +++ b/lib/jsdoc/src/handlers.js @@ -299,6 +299,8 @@ function newSymbolDoclet(parser, docletSrc, e) { addDoclet(parser, newDoclet); e.doclet = newDoclet; + + return true; } /** diff --git a/lib/jsdoc/src/parser.js b/lib/jsdoc/src/parser.js index 51c77a7b..73df0035 100644 --- a/lib/jsdoc/src/parser.js +++ b/lib/jsdoc/src/parser.js @@ -319,6 +319,7 @@ Parser.prototype.getBasename = function(name) { if (name !== undefined) { return name.replace(/^([$a-z_][$a-z_0-9]*).*?$/i, '$1'); } + return undefined; }; // TODO: docs diff --git a/lib/jsdoc/src/visitor.js b/lib/jsdoc/src/visitor.js index 3b82a979..30aa547b 100644 --- a/lib/jsdoc/src/visitor.js +++ b/lib/jsdoc/src/visitor.js @@ -132,6 +132,7 @@ function findRestParam(params) { restParam = param; return true; } + return false; }); return restParam; diff --git a/lib/jsdoc/tag/dictionary/definitions.js b/lib/jsdoc/tag/dictionary/definitions.js index 6e0ffd1e..2bd71c4a 100644 --- a/lib/jsdoc/tag/dictionary/definitions.js +++ b/lib/jsdoc/tag/dictionary/definitions.js @@ -175,6 +175,7 @@ function parseBorrows(doclet, tag) { else if (m[1]) { return { target: m[1] }; } + return {}; } else { return {}; } diff --git a/lib/jsdoc/util/markdown.js b/lib/jsdoc/util/markdown.js index 51561a2f..ec58a598 100644 --- a/lib/jsdoc/util/markdown.js +++ b/lib/jsdoc/util/markdown.js @@ -153,6 +153,7 @@ function getParseFunction(parserName, conf) { else { logger.error('Unrecognized Markdown parser "%s". Markdown support is disabled.', parserName); + return undefined; } } diff --git a/package.json b/package.json index 5f360040..9efa7dab 100644 --- a/package.json +++ b/package.json @@ -21,14 +21,14 @@ "js2xmlparser": "~1.0.0", "marked": "~0.3.5", "requizzle": "~0.2.1", - "strip-json-comments": "~1.0.4", + "strip-json-comments": "~2.0.1", "taffydb": "https://github.com/hegemonic/taffydb/tarball/7d100bcee0e997ee4977e273cdce60bd8933050e", "underscore": "~1.8.3", "wrench": "~1.5.9" }, "devDependencies": { "gulp": "~3.9.1", - "gulp-eslint": "~1.1.1", + "gulp-eslint": "~2.0.0", "gulp-json-editor": "~2.2.1", "istanbul": "~0.4.2", "tv4": "https://github.com/hegemonic/tv4/tarball/own-properties" diff --git a/plugins/sourcetag.js b/plugins/sourcetag.js index cb14beb6..33005fbb 100644 --- a/plugins/sourcetag.js +++ b/plugins/sourcetag.js @@ -37,7 +37,7 @@ exports.handlers = { try { value = JSON.parse(tag.value); } - catch (e) { + catch (ex) { logger.error('@source tag expects a valid JSON value, like { "filename": "myfile.js", "lineno": 123 }.'); return; } diff --git a/templates/default/publish.js b/templates/default/publish.js index 397718f3..00e349fa 100644 --- a/templates/default/publish.js +++ b/templates/default/publish.js @@ -239,7 +239,7 @@ function generateSourceFiles(sourceFiles, encoding) { code: helper.htmlsafe( fs.readFileSync(sourceFiles[file].resolved, encoding) ) }; } - catch(e) { + catch (e) { logger.error('Error while generating source file %s: %s', file, e.message); } diff --git a/templates/haruki/publish.js b/templates/haruki/publish.js index 4a44ec26..c1a8e536 100644 --- a/templates/haruki/publish.js +++ b/templates/haruki/publish.js @@ -1,4 +1,4 @@ -/*eslint no-nested-ternary:0, space-infix-ops: 0 */ +/* eslint no-nested-ternary:0, space-infix-ops: 0 */ /** @overview Builds a tree-like JSON string from the doclet data. @version 0.0.3 diff --git a/test/specs/jsdoc/util/templateHelper.js b/test/specs/jsdoc/util/templateHelper.js index c2cd1207..bbea955d 100644 --- a/test/specs/jsdoc/util/templateHelper.js +++ b/test/specs/jsdoc/util/templateHelper.js @@ -1,4 +1,4 @@ -/*eslint quotes:0 */ +/* eslint quotes:0 */ 'use strict'; var hasOwnProp = Object.prototype.hasOwnProperty; From b7c89c9f1bf549a72eaaa1dddc22082e1cab57d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Thu, 31 Mar 2016 21:18:43 +0200 Subject: [PATCH 3/4] Update bluebird major version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9efa7dab..f2a5a763 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "async": "~1.5.2", - "bluebird": "~2.10.2", + "bluebird": "~3.3.4", "catharsis": "~0.8.7", "escape-string-regexp": "~1.0.5", "espree": "~2.2.5", From 5ca4590a9e889442770b440d5d76f17fe80dd77f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Thu, 31 Mar 2016 21:41:52 +0200 Subject: [PATCH 4/4] Replace wrench with fs-extra --- lib/jsdoc/fs.js | 6 +++--- package.json | 2 +- test/jasmine-jsdoc.js | 26 +++++++++++++------------- test/spec-collection.js | 25 ++++++++++++++++--------- 4 files changed, 33 insertions(+), 26 deletions(-) diff --git a/lib/jsdoc/fs.js b/lib/jsdoc/fs.js index 08f6a9c6..2cd9f4dc 100644 --- a/lib/jsdoc/fs.js +++ b/lib/jsdoc/fs.js @@ -7,7 +7,7 @@ var fs = require('fs'); var path = require('path'); var stream = require('stream'); -var wrench = require('wrench'); +var fse = require('fs-extra'); var ls = exports.ls = function(dir, recurse, _allFiles, _path) { var file; @@ -91,7 +91,7 @@ exports.mkPath = function(_path) { _path = _path.join(''); } - wrench.mkdirSyncRecursive(_path); + fse.mkdirsSync(_path); }; // adapted from http://procbits.com/2011/11/15/synchronous-file-copy-in-node-js @@ -106,7 +106,7 @@ exports.copyFileSync = function(inFile, outDir, fileName) { var outFile = path.join( outDir, fileName || path.basename(inFile) ); var pos = 0; - wrench.mkdirSyncRecursive(outDir); + fse.mkdirsSync(outDir); read = fs.openSync(inFile, 'r'); write = fs.openSync(outFile, 'w'); diff --git a/package.json b/package.json index f2a5a763..1036ec98 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "strip-json-comments": "~2.0.1", "taffydb": "https://github.com/hegemonic/taffydb/tarball/7d100bcee0e997ee4977e273cdce60bd8933050e", "underscore": "~1.8.3", - "wrench": "~1.5.9" + "fs-extra": "~0.26.7" }, "devDependencies": { "gulp": "~3.9.1", diff --git a/test/jasmine-jsdoc.js b/test/jasmine-jsdoc.js index f18b393b..f15db950 100644 --- a/test/jasmine-jsdoc.js +++ b/test/jasmine-jsdoc.js @@ -100,21 +100,21 @@ jasmine.executeSpecsInFolder = function(folder, done, opts) { var jasmineEnv = jasmine.initialize(done, opts.verbose); // Load the specs - specs.load(folder, fileMatcher, true); + specs.load(folder, fileMatcher, true, function() { + var specsList = specs.getSpecs(); + var filename; - var specsList = specs.getSpecs(); - var filename; + // Add the specs to the context + for (var i = 0, len = specsList.length; i < len; ++i) { + filename = specsList[i]; + require(filename.path().replace(/\\/g, '/') + .replace(new RegExp('^' + jsdoc.env.dirname + '/test'), './') + .replace(/\.\w+$/, '')); + } - // Add the specs to the context - for (var i = 0, len = specsList.length; i < len; ++i) { - filename = specsList[i]; - require(filename.path().replace(/\\/g, '/') - .replace(new RegExp('^' + jsdoc.env.dirname + '/test'), './') - .replace(/\.\w+$/, '')); - } - - // Run Jasmine - jasmineEnv.execute(); + // Run Jasmine + jasmineEnv.execute(); + }); }; function now() { diff --git a/test/spec-collection.js b/test/spec-collection.js index a2cd6de7..3e22f906 100644 --- a/test/spec-collection.js +++ b/test/spec-collection.js @@ -3,7 +3,7 @@ var fs = require('jsdoc/fs'); var path = require('jsdoc/path'); var runtime = require('jsdoc/util/runtime'); -var wrench = require('wrench'); +var fse = require('fs-extra'); var specs = []; var finalSpecs = []; @@ -75,18 +75,25 @@ function shouldLoad(file, matcher) { return result; } -exports.load = function(loadpath, matcher, clear) { +exports.load = function(loadpath, matcher, clear, callback) { if (clear === true) { clearSpecs(); } - var wannaBeSpecs = wrench.readdirSyncRecursive(loadpath); - for (var i = 0; i < wannaBeSpecs.length; i++) { - var file = path.join(loadpath, wannaBeSpecs[i]); - if ( shouldLoad(file, matcher) ) { - addSpec(file); - } - } + var wannaBeSpecs = []; + fse.walk(loadpath) + .on('data', function(spec) { + wannaBeSpecs.push(spec.path); + }) + .on('end', function() { + for (var i = 0; i < wannaBeSpecs.length; i++) { + var file = wannaBeSpecs[i]; + if ( shouldLoad(file, matcher) ) { + addSpec(file); + } + } + callback(); + }); }; exports.getSpecs = function() {