tools: apply linting to doc tools
authorRich Trott <rtrott@gmail.com>
Sat, 30 Jan 2016 18:17:57 +0000 (10:17 -0800)
committerMyles Borins <mborins@us.ibm.com>
Wed, 2 Mar 2016 22:01:11 +0000 (14:01 -0800)
Apply eslint rules to `tools/doc`.

PR-URL: https://github.com/nodejs/node/pull/4973
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
.eslintignore
Makefile
tools/doc/addon-verify.js
tools/doc/generate.js
tools/doc/html.js
tools/doc/json.js
tools/doc/preprocess.js
vcbuild.bat

index 26de032..c37ff77 100644 (file)
@@ -4,3 +4,4 @@ test/fixtures
 test/**/node_modules
 test/disabled
 test/tmp*/
+tools/doc/node_modules
index c337f00..2e021d5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -509,7 +509,7 @@ bench-idle:
        $(NODE) benchmark/idle_clients.js &
 
 jslint:
-       $(NODE) tools/eslint/bin/eslint.js src lib test tools/eslint-rules \
+       $(NODE) tools/eslint/bin/eslint.js lib src test tools/doc tools/eslint-rules \
                --rulesdir tools/eslint-rules --quiet
 
 CPPLINT_EXCLUDE ?=
index 68c46f0..792fd69 100644 (file)
@@ -4,12 +4,13 @@ const fs = require('fs');
 const path = require('path');
 const marked = require('marked');
 
-const doc = path.resolve(__dirname, '..', '..', 'doc', 'api', 'addons.markdown');
-const verifyDir = path.resolve(__dirname, '..', '..', 'test', 'addons');
+const rootDir = path.resolve(__dirname, '..', '..');
+const doc = path.resolve(rootDir, 'doc', 'api', 'addons.markdown');
+const verifyDir = path.resolve(rootDir, 'test', 'addons');
 
 const contents = fs.readFileSync(doc).toString();
 
-let tokens = marked.lexer(contents, {});
+const tokens = marked.lexer(contents, {});
 let files = null;
 let blockName;
 let id = 0;
@@ -27,7 +28,7 @@ oldDirs = oldDirs.filter(function(dir) {
 for (var i = 0; i < tokens.length; i++) {
   var token = tokens[i];
   if (token.type === 'heading' && token.text) {
-    blockName = token.text
+    blockName = token.text;
     if (files && Object.keys(files).length !== 0) {
       verifyFiles(files,
                   blockName,
@@ -60,8 +61,14 @@ function verifyFiles(files, blockName, onprogress, ondone) {
     return;
   }
 
-  blockName = blockName.toLowerCase().replace(/\s/g, '_').replace(/[^a-z\d_]/g, '')
-  let dir = path.resolve(verifyDir, `${(++id < 10 ? '0' : '') + id}_${blockName}`);
+  blockName = blockName
+    .toLowerCase()
+    .replace(/\s/g, '_')
+    .replace(/[^a-z\d_]/g, '');
+  const dir = path.resolve(
+    verifyDir,
+    `${(++id < 10 ? '0' : '') + id}_${blockName}`
+  );
 
   files = Object.keys(files).map(function(name) {
     return {
index 7e47f4b..ff14cbd 100644 (file)
@@ -1,7 +1,7 @@
+'use strict';
+
 var processIncludes = require('./preprocess.js');
-var marked = require('marked');
 var fs = require('fs');
-var path = require('path');
 
 // parse the args.
 // Don't use nopt or whatever for this.  It's simple enough.
@@ -11,7 +11,7 @@ var format = 'json';
 var template = null;
 var inputFile = null;
 
-args.forEach(function (arg) {
+args.forEach(function(arg) {
   if (!arg.match(/^\-\-/)) {
     inputFile = arg;
   } else if (arg.match(/^\-\-format=/)) {
@@ -19,7 +19,7 @@ args.forEach(function (arg) {
   } else if (arg.match(/^\-\-template=/)) {
     template = arg.replace(/^\-\-template=/, '');
   }
-})
+});
 
 
 if (!inputFile) {
@@ -35,8 +35,6 @@ fs.readFile(inputFile, 'utf8', function(er, input) {
 });
 
 
-
-
 function next(er, input) {
   if (er) throw er;
   switch (format) {
index 9877fb4..2a4bd3f 100644 (file)
@@ -1,3 +1,5 @@
+'use strict';
+
 var fs = require('fs');
 var marked = require('marked');
 var path = require('path');
@@ -6,7 +8,14 @@ var preprocess = require('./preprocess.js');
 module.exports = toHTML;
 
 // TODO(chrisdickinson): never stop vomitting / fix this.
-var gtocPath = path.resolve(path.join(__dirname, '..', '..', 'doc', 'api', '_toc.markdown'));
+var gtocPath = path.resolve(path.join(
+  __dirname,
+    '..',
+    '..',
+    'doc',
+    'api',
+    '_toc.markdown'
+));
 var gtocLoading = null;
 var gtocData = null;
 
@@ -55,7 +64,10 @@ function loadGtoc(cb) {
 }
 
 function toID(filename) {
-  return filename.replace('.html', '').replace(/[^\w\-]/g, '-').replace(/-+/g, '-');
+  return filename
+    .replace('.html', '')
+    .replace(/[^\w\-]/g, '-')
+    .replace(/-+/g, '-');
 }
 
 function render(lexed, filename, template, cb) {
@@ -85,7 +97,7 @@ function render(lexed, filename, template, cb) {
 
     // content has to be the last thing we do with
     // the lexed tokens, because it's destructive.
-    content = marked.parser(lexed);
+    const content = marked.parser(lexed);
     template = template.replace(/__CONTENT__/g, content);
 
     cb(null, template);
@@ -173,7 +185,6 @@ function parseAPIHeader(text) {
 
 // section is just the first heading
 function getSection(lexed) {
-  var section = '';
   for (var i = 0, l = lexed.length; i < l; i++) {
     var tok = lexed[i];
     if (tok.type === 'heading') return tok.text;
@@ -183,7 +194,6 @@ function getSection(lexed) {
 
 
 function buildToc(lexed, filename, cb) {
-  var indent = 0;
   var toc = [];
   var depth = 0;
   lexed.forEach(function(tok) {
index 52f9b22..66eb822 100644 (file)
@@ -1,3 +1,5 @@
+'use strict';
+
 module.exports = doJSON;
 
 // Take the lexed input, and return a JSON-encoded object
@@ -12,7 +14,7 @@ function doJSON(input, filename, cb) {
   var current = root;
   var state = null;
   var lexed = marked.lexer(input);
-  lexed.forEach(function (tok) {
+  lexed.forEach(function(tok) {
     var type = tok.type;
     var text = tok.text;
 
@@ -31,7 +33,7 @@ function doJSON(input, filename, cb) {
     if (type === 'heading' &&
         !text.trim().match(/^example/i)) {
       if (tok.depth - depth > 1) {
-        return cb(new Error('Inappropriate heading level\n'+
+        return cb(new Error('Inappropriate heading level\n' +
                             JSON.stringify(tok)));
       }
 
@@ -77,7 +79,7 @@ function doJSON(input, filename, cb) {
     //
     // If one of these isnt' found, then anything that comes between
     // here and the next heading should be parsed as the desc.
-    var stability
+    var stability;
     if (state === 'AFTERHEADING') {
       if (type === 'code' &&
           (stability = text.match(/^Stability: ([0-5])(?:\s*-\s*)?(.*)$/))) {
@@ -125,7 +127,7 @@ function doJSON(input, filename, cb) {
     finishSection(current, stack[stack.length - 1]);
   }
 
-  return cb(null, root)
+  return cb(null, root);
 }
 
 
@@ -146,7 +148,7 @@ function doJSON(input, filename, cb) {
 //   { type: 'list_item_end' },
 //   { type: 'list_item_start' },
 //   { type: 'text',
-//     text: 'silent: Boolean, whether or not to send output to parent\'s stdio.' },
+//     text: 'silent: Boolean, whether to send output to parent\'s stdio.' },
 //   { type: 'text', text: 'Default: `false`' },
 //   { type: 'space' },
 //   { type: 'list_item_end' },
@@ -168,7 +170,7 @@ function doJSON(input, filename, cb) {
 //          desc: 'string arguments passed to worker.' },
 //        { name: 'silent',
 //          type: 'boolean',
-//          desc: 'whether or not to send output to parent\'s stdio.',
+//          desc: 'whether to send output to parent\'s stdio.',
 //          default: 'false' } ] } ]
 
 function processList(section) {
@@ -231,7 +233,7 @@ function processList(section) {
       // each item is an argument, unless the name is 'return',
       // in which case it's the return value.
       section.signatures = section.signatures || [];
-      var sig = {}
+      var sig = {};
       section.signatures.push(sig);
       sig.params = values.filter(function(v) {
         if (v.name === 'return') {
@@ -273,7 +275,7 @@ function parseSignature(text, sig) {
   params = params[1];
   // the [ is irrelevant. ] indicates optionalness.
   params = params.replace(/\[/g, '');
-  params = params.split(/,/)
+  params = params.split(/,/);
   params.forEach(function(p, i, _) {
     p = p.trim();
     if (!p) return;
@@ -362,7 +364,7 @@ function parseListItem(item) {
 
 function finishSection(section, parent) {
   if (!section || !parent) {
-    throw new Error('Invalid finishSection call\n'+
+    throw new Error('Invalid finishSection call\n' +
                     JSON.stringify(section) + '\n' +
                     JSON.stringify(parent));
   }
@@ -405,7 +407,7 @@ function finishSection(section, parent) {
   // properties are a bit special.
   // their "type" is the type of object, not "property"
   if (section.properties) {
-    section.properties.forEach(function (p) {
+    section.properties.forEach(function(p) {
       if (p.typeof) p.type = p.typeof;
       else delete p.type;
       delete p.typeof;
index 7ace95a..8f80271 100644 (file)
@@ -1,3 +1,5 @@
+'use strict';
+
 module.exports = preprocess;
 
 var path = require('path');
@@ -8,7 +10,7 @@ var includeData = {};
 
 function preprocess(inputFile, input, cb) {
   input = stripComments(input);
-  processIncludes(inputFile, input, function (err, data) {
+  processIncludes(inputFile, input, function(err, data) {
     if (err) return cb(err);
 
     cb(null, data);
@@ -47,7 +49,7 @@ function processIncludes(inputFile, input, cb) {
         if (er) return cb(errState = er);
         incCount--;
         includeData[fname] = inc;
-        input = input.split(include+'\n').join(includeData[fname]+'\n');
+        input = input.split(include + '\n').join(includeData[fname] + '\n');
         if (incCount === 0) {
           return cb(null, input);
         }
index 31fc8cd..b515af8 100644 (file)
@@ -251,7 +251,7 @@ goto jslint
 :jslint
 if not defined jslint goto exit
 echo running jslint
-%config%\node tools\eslint\bin\eslint.js src lib test tools\eslint-rules --rulesdir tools\eslint-rules --quiet
+%config%\node tools\eslint\bin\eslint.js lib src test tools\doc tools\eslint-rules --rulesdir tools\eslint-rules --quiet
 goto exit
 
 :create-msvs-files-failed