diff --git a/example/app.js b/example/app.js index 16165f1..0ec5586 100644 --- a/example/app.js +++ b/example/app.js @@ -5,35 +5,35 @@ 'use strict'; -var jayson = require('jayson'); +const jayson = require('jayson'); // create a server -var server = jayson.server({ - add: function(a, b, callback) { - callback(null, a + b); +const server = jayson.server({ + add: function(args, callback) { + callback(null, args[0] + args[1]); }, - subtract: function(a, b, callback) { - callback(null, a - b); + subtract: function(args, callback) { + callback(null, args[0] - args[1]); }, }); -var loopback = require('loopback'); +const loopback = require('loopback'); -var ds = loopback.createDataSource({ +const ds = loopback.createDataSource({ connector: require('../index'), debug: false, url: 'http://localhost:3000', operations: ['add', 'subtract']}); -var model = ds.createModel('dummy'); +const model = ds.createModel('dummy'); -var app = loopback(); +const app = loopback(); app.use(loopback.rest()); app.use(server.middleware(server)); // Bind a http interface to the server and let it listen to localhost:3000 -var s = app.listen(3000, function() { +const s = app.listen(3000, function() { model.add(1, 2, function(err, data) { console.log(err, data); s.close(); diff --git a/index.js b/index.js index cc4b2eb..634d5fa 100644 --- a/index.js +++ b/index.js @@ -5,7 +5,7 @@ 'use strict'; -var SG = require('strong-globalize'); +const SG = require('strong-globalize'); SG.SetRootDir(__dirname); module.exports = require('./lib/jsonrpc-connector'); diff --git a/lib/jsonrpc-connector.js b/lib/jsonrpc-connector.js index ebcc78a..13d3c6e 100644 --- a/lib/jsonrpc-connector.js +++ b/lib/jsonrpc-connector.js @@ -5,9 +5,9 @@ 'use strict'; -var jayson = require('jayson'); -var url = require('url'); -var g = require('strong-globalize')(); +const jayson = require('jayson'); +const url = require('url'); +const g = require('strong-globalize')(); /** * Export the initialize method to loopback-datasource-juggler @@ -15,15 +15,15 @@ var g = require('strong-globalize')(); * @param callback */ exports.initialize = function initializeDataSource(dataSource, callback) { - var settings = dataSource.settings || {}; + const settings = dataSource.settings || {}; - var connector = new JsonRpcConnector(settings); + const connector = new JsonRpcConnector(settings); connector.getDataAccessObject(); dataSource.connector = connector; dataSource.connector.dataSource = dataSource; - for (var f in connector.DataAccessObject) { + for (const f in connector.DataAccessObject) { dataSource[f] = connector.DataAccessObject[f]; } @@ -39,9 +39,9 @@ exports.initialize = function initializeDataSource(dataSource, callback) { */ function JsonRpcConnector(options) { if (options.url || options.baseURL) { - var parts = url.parse(options.url || options.baseURL); + const parts = url.parse(options.url || options.baseURL); parts['host'] = parts['host'].split(':')[0]; - for (var p in parts) { + for (const p in parts) { if (!options.hasOwnProperty(p)) { options[p] = parts[p]; } @@ -58,10 +58,10 @@ function JsonRpcConnector(options) { } JsonRpcConnector.prototype.mapOperation = function(op) { - var client = this.client; - var fn = function() { - var args = Array.prototype.slice.call(arguments); - var cb = null; + const client = this.client; + const fn = function() { + const args = Array.prototype.slice.call(arguments); + let cb = null; if (args.length > 0 && typeof args[args.length - 1] === 'function') { cb = args.pop(); } @@ -80,8 +80,8 @@ JsonRpcConnector.prototype.getDataAccessObject = function() { if (this.DataAccessObject) { return this.DataAccessObject; } - var self = this; - var DataAccessObject = function() { + const self = this; + const DataAccessObject = function() { }; self.DataAccessObject = DataAccessObject; diff --git a/package.json b/package.json index 3977d43..2c71aea 100644 --- a/package.json +++ b/package.json @@ -11,15 +11,15 @@ "test": "./node_modules/.bin/mocha --timeout 30000 test/*test.js" }, "dependencies": { - "jayson": "^1.1.2", - "strong-globalize": "^4.1.1" + "jayson": "^3.0.2", + "strong-globalize": "^5.0.0" }, "devDependencies": { "body-parser": "^1.17.1", - "eslint": "^5.1.0", - "eslint-config-loopback": "^10.0.0", + "eslint": "^6.1.0", + "eslint-config-loopback": "^13.1.0", "loopback": "^3.0.0", - "mocha": "^5.2.0", + "mocha": "^6.2.0", "should": "^13.2.1" }, "repository": { diff --git a/test/jsonrpc.test.js b/test/jsonrpc.test.js index a98a450..56fcea2 100644 --- a/test/jsonrpc.test.js +++ b/test/jsonrpc.test.js @@ -5,32 +5,32 @@ 'use strict'; -var assert = require('assert'); -var bodyParser = require('body-parser'); -var jayson = require('jayson'); -var loopback = require('loopback'); +const assert = require('assert'); +const bodyParser = require('body-parser'); +const jayson = require('jayson'); +const loopback = require('loopback'); describe('JSON-RPC connector', function() { - var app, s, model; + let app, s, model; before(function(done) { // create a server - var server = jayson.server({ - add: function(a, b, callback) { - callback(null, a + b); + const server = jayson.server({ + add: function(args, callback) { + callback(null, args[0] + args[1]); }, - subtract: function(a, b, callback) { - callback(null, a - b); + subtract: function(args, callback) { + callback(null, args[0] - args[1]); }, - divide: function(a, b, callback) { - if (b === 0) { + divide: function(args, callback) { + if (args[1] === 0) { callback('Cannot divide by 0'); } else { - callback(null, a / b); + callback(null, args[0] / args[1]); } }, }); - var ds = loopback.createDataSource({ + const ds = loopback.createDataSource({ connector: require('../index'), debug: false, url: 'http://localhost:3000', @@ -41,7 +41,7 @@ describe('JSON-RPC connector', function() { app = loopback(); - app.use(bodyParser()); + app.use(bodyParser.json()); app.use(server.middleware(server)); s = app.listen(3000, done); }); @@ -60,6 +60,13 @@ describe('JSON-RPC connector', function() { }); }); + it('invokes divide json-rpc services', function(done) { + model.divide(4, 2, function(err, data) { + assert.equal(data, 2); + done(); + }); + }); + it('reports unknown method', function(done) { model.multiply(1, 5, function(err, data) { assert.equal(err.code, -32601);