Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions example/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');
28 changes: 14 additions & 14 deletions lib/jsonrpc-connector.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@

'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
* @param dataSource
* @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];
}

Expand All @@ -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];
}
Expand All @@ -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();
}
Expand All @@ -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;

Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
37 changes: 22 additions & 15 deletions test/jsonrpc.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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);
});
Expand All @@ -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);
Expand Down