You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by dk...@apache.org on 2019/08/16 19:01:19 UTC
[avro] branch master updated: AVRO-2494: Introduce JSHint for
linting the JavaScript bindings
This is an automated email from the ASF dual-hosted git repository.
dkulp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/master by this push:
new 9b0c88c AVRO-2494: Introduce JSHint for linting the JavaScript bindings
9b0c88c is described below
commit 9b0c88cc6e9a4405d5731ddeda3ed831206e486c
Author: Kengo Seki <se...@apache.org>
AuthorDate: Thu Aug 1 00:51:14 2019 +0900
AVRO-2494: Introduce JSHint for linting the JavaScript bindings
---
lang/js/build.sh | 2 +-
lang/js/lib/protocols.js | 33 ++++++++++++++++++++++-----------
lang/js/lib/schemas.js | 6 ++++--
lang/js/lib/utils.js | 5 ++++-
lang/js/package.json | 4 +++-
5 files changed, 34 insertions(+), 16 deletions(-)
diff --git a/lang/js/build.sh b/lang/js/build.sh
index a6cdb6b..a936a04 100755
--- a/lang/js/build.sh
+++ b/lang/js/build.sh
@@ -21,7 +21,7 @@ cd `dirname "$0"`
case "$1" in
lint)
- echo 'This is a stub where someone can provide linting.'
+ npm run lint
;;
test)
npm install
diff --git a/lang/js/lib/protocols.js b/lang/js/lib/protocols.js
index ab99172..b46bd49 100644
--- a/lang/js/lib/protocols.js
+++ b/lang/js/lib/protocols.js
@@ -444,6 +444,7 @@ StatelessEmitter.prototype._emit = function (message, req, cb) {
}
var tap = new Tap(buf);
+ var args;
try {
var info = self._finalizeHandshake(tap, handshakeReq);
serverHashString = info.serverHashString;
@@ -452,7 +453,7 @@ StatelessEmitter.prototype._emit = function (message, req, cb) {
return;
}
self._idType._read(tap); // Skip metadata.
- var args = self._decodeArguments(tap, serverHashString, message);
+ args = self._decodeArguments(tap, serverHashString, message);
} catch (err) {
done(err);
return;
@@ -547,8 +548,9 @@ function StatefulEmitter(ptcl, readable, writable, opts) {
function onHandshakeData(buf) {
var tap = new Tap(buf);
+ var info;
try {
- var info = self._finalizeHandshake(tap, handshakeReq);
+ info = self._finalizeHandshake(tap, handshakeReq);
} catch (err) {
self.emit('error', err);
self.destroy(); // This isn't a recoverable error.
@@ -568,8 +570,9 @@ function StatefulEmitter(ptcl, readable, writable, opts) {
function onMessageData(buf) {
var tap = new Tap(buf);
+ var id;
try {
- var id = self._idType._read(tap);
+ id = self._idType._read(tap);
if (!id) {
throw new Error('missing ID');
}
@@ -584,8 +587,9 @@ function StatefulEmitter(ptcl, readable, writable, opts) {
return;
}
+ var args;
try {
- var args = self._decodeArguments(
+ args = self._decodeArguments(
tap,
self._serverHashString,
info.message
@@ -701,9 +705,11 @@ MessageListener.prototype._validateHandshake = function (reqTap, resTap) {
// occurs when parsing the request, a response with match NONE will be sent.
// Also emits 'handshake' event with both the request and the response.
var validationErr = null;
+ var handshakeReq;
+ var serverHashString;
try {
- var handshakeReq = HANDSHAKE_REQUEST_TYPE._read(reqTap);
- var serverHashString = handshakeReq.serverHash.toString('binary');
+ handshakeReq = HANDSHAKE_REQUEST_TYPE._read(reqTap);
+ serverHashString = handshakeReq.serverHash.toString('binary');
} catch (err) {
validationErr = err;
}
@@ -827,14 +833,16 @@ function StatelessListener(ptcl, readableFactory, opts) {
return;
}
+ var name;
+ var req;
try {
self._idType._read(reqTap); // Skip metadata.
- var name = STRING_TYPE._read(reqTap);
+ name = STRING_TYPE._read(reqTap);
self._message = self._ptcl._messages[name];
if (!self._message) {
throw new Error(f('unknown message: %s', name));
}
- var req = self._decodeRequest(reqTap, self._message);
+ req = self._decodeRequest(reqTap, self._message);
} catch (err) {
onResponse(err);
return;
@@ -908,13 +916,16 @@ function StatefulListener(ptcl, readable, writable, opts) {
}
self._pending++;
+ var name;
+ var message;
+ var req;
try {
- var name = STRING_TYPE._read(reqTap);
- var message = self._ptcl._messages[name];
+ name = STRING_TYPE._read(reqTap);
+ message = self._ptcl._messages[name];
if (!message) {
throw new Error('unknown message: ' + name);
}
- var req = self._decodeRequest(reqTap, message);
+ req = self._decodeRequest(reqTap, message);
} catch (err) {
onResponse(err);
return;
diff --git a/lang/js/lib/schemas.js b/lang/js/lib/schemas.js
index a681826..2a3e5e5 100644
--- a/lang/js/lib/schemas.js
+++ b/lang/js/lib/schemas.js
@@ -93,7 +93,8 @@ function createType(attrs, opts) {
// Reference to a primitive type. These are also defined names by default
// so we create the appropriate type and it to the registry for future
// reference.
- return opts.registry[attrs] = createType({type: attrs}, opts);
+ type = opts.registry[attrs] = createType({type: attrs}, opts);
+ return type;
}
throw new Error(f('undefined type name: %s', attrs));
}
@@ -1789,8 +1790,9 @@ LogicalType.prototype._write = function (tap, any) {
};
LogicalType.prototype._check = function (any, cb) {
+ var val;
try {
- var val = this._toValue(any);
+ val = this._toValue(any);
} catch (err) {
if (cb) {
cb(PATH.slice(), any, this);
diff --git a/lang/js/lib/utils.js b/lang/js/lib/utils.js
index ab1bcdc..0d42b07 100644
--- a/lang/js/lib/utils.js
+++ b/lang/js/lib/utils.js
@@ -140,7 +140,10 @@ function Lcg(seed) {
var state = Math.floor(seed || Math.random() * (m - 1));
this._max = m;
- this._nextInt = function () { return state = (a * state + c) % m; };
+ this._nextInt = function () {
+ state = (a * state + c) % m;
+ return state;
+ };
}
Lcg.prototype.nextBoolean = function () {
diff --git a/lang/js/package.json b/lang/js/package.json
index 1eb0a07..e63781a 100644
--- a/lang/js/package.json
+++ b/lang/js/package.json
@@ -36,7 +36,8 @@
"scripts": {
"cover": "istanbul cover _mocha",
"test": "mocha",
- "clean": "rm -rf coverage node_modules"
+ "clean": "rm -rf coverage node_modules",
+ "lint": "jshint lib test"
},
"dependencies": {
"underscore": "*"
@@ -44,6 +45,7 @@
"devDependencies": {
"coveralls": "^2.11.4",
"istanbul": "^0.3.19",
+ "jshint": "^2.10.2",
"mocha": "^2.3.2",
"tmp": "^0.0.28"
},