Add Robot_JoyIt driver

This commit is contained in:
2026-01-17 16:50:07 +01:00
parent e9e50acf5f
commit 0cfb4d5a95
15848 changed files with 570836 additions and 268976 deletions

View File

@@ -5,8 +5,8 @@ type ClientBrowserCallServerFunctionCallback = (err?:Error | null, response?:str
type ClientBrowserCallServerFunction = (request:string, callback:ClientBrowserCallServerFunctionCallback) => void;
declare class ClientBrowser {
constructor(callServer:ClientBrowserCallServerFunction, options:jayson.ClientOptions);
request(method: string, params: jayson.RequestParamsLike, id?: string | null, callback?: jayson.JSONRPCCallbackType): jayson.JSONRPCRequest;
constructor(callServer:ClientBrowserCallServerFunction, options?:jayson.ClientOptions);
request(method: string, params: jayson.RequestParamsLike, id?: jayson.JSONRPCIDLike | null, callback?: jayson.JSONRPCCallbackType): jayson.JSONRPCRequest;
request(method: string, params: jayson.RequestParamsLike, callback?: jayson.JSONRPCCallbackType): jayson.JSONRPCRequest;
request(method: Array<jayson.JSONRPCRequestLike>, callback: jayson.JSONRPCCallbackTypeBatch): Array<jayson.JSONRPCRequest>;
}

View File

@@ -80,7 +80,8 @@ ClientBrowser.prototype.request = function(method, params, id, callback) {
});
} catch(err) {
if(hasCallback) {
return callback(err);
callback(err);
return;
}
throw err;
}
@@ -96,7 +97,8 @@ ClientBrowser.prototype.request = function(method, params, id, callback) {
try {
message = JSON.stringify(request, this.options.replacer);
} catch(err) {
return callback(err);
callback(err);
return;
}
this.callServer(message, function(err, response) {
@@ -123,14 +125,16 @@ ClientBrowser.prototype._parseResponse = function(err, responseText, callback) {
if(!responseText) {
// empty response text, assume that is correct because it could be a
// notification which jayson does not give any body for
return callback();
callback();
return;
}
let response;
try {
response = JSON.parse(responseText, this.options.reviver);
} catch(err) {
return callback(err);
callback(err);
return;
}
if(callback.length === 3) {
@@ -139,7 +143,7 @@ ClientBrowser.prototype._parseResponse = function(err, responseText, callback) {
// is batch response?
if(Array.isArray(response)) {
// neccesary to split strictly on validity according to spec here
// necessary to split strictly on validity according to spec here
const isError = function(res) {
return typeof res.error !== 'undefined';
};
@@ -148,13 +152,13 @@ ClientBrowser.prototype._parseResponse = function(err, responseText, callback) {
return !isError(res);
};
return callback(null, response.filter(isError), response.filter(isNotError));
callback(null, response.filter(isError), response.filter(isNotError));
return;
} else {
// split regardless of validity
return callback(null, response.error, response.result);
callback(null, response.error, response.result);
return;
}
}

View File

@@ -43,7 +43,8 @@ ClientHttp.prototype._request = function(request, callback) {
utils.JSON.stringify(request, options, function(err, body) {
if(err) {
return callback(err);
callback(err);
return;
}
options.method = options.method || 'POST';
@@ -81,7 +82,8 @@ ClientHttp.prototype._request = function(request, callback) {
} else {
// empty reply
if(!data || typeof(data) !== 'string') {
return callback();
callback();
return;
}
utils.JSON.parse(data, options, callback);
}

View File

@@ -187,11 +187,13 @@ Client.prototype._request = function(request, callback) {
*/
Client.prototype._parseResponse = function(err, response, callback) {
if(err) {
return callback(err);
callback(err);
return;
}
if(!response || typeof(response) !== 'object') {
return callback();
callback();
return;
}
if(callback.length === 3) {
@@ -200,21 +202,20 @@ Client.prototype._parseResponse = function(err, response, callback) {
// is batch response?
if(Array.isArray(response)) {
// neccesary to split strictly on validity according to spec here
// necessary to split strictly on validity according to spec here
const isError = function(res) { return typeof(res.error) !== 'undefined'; };
const isNotError = function(res) { return !isError(res); };
return callback(null, response.filter(isError), response.filter(isNotError));
callback(null, response.filter(isError), response.filter(isNotError));
return;
} else {
// split regardless of validity
return callback(null, response.error, response.result);
callback(null, response.error, response.result);
return;
}
}
return callback(null, response);
callback(null, response);
};

View File

@@ -41,7 +41,8 @@ ClientTcp.prototype._request = function(request, callback) {
utils.JSON.stringify(request, options, function(err, body) {
if(err) {
return callback(err);
callback(err);
return;
}
let handled = false;
@@ -63,7 +64,8 @@ ClientTcp.prototype._request = function(request, callback) {
handled = true;
conn.end();
if(err) {
return callback(err);
callback(err);
return;
}
callback(null, response);
});

View File

@@ -40,7 +40,8 @@ ClientTls.prototype._request = function(request, callback) {
utils.JSON.stringify(request, options, function(err, body) {
if(err) {
return callback(err);
callback(err);
return;
}
let handled = false;
@@ -62,7 +63,8 @@ ClientTls.prototype._request = function(request, callback) {
handled = true;
conn.end();
if(err) {
return callback(err);
callback(err);
return;
}
callback(null, response);
});

View File

@@ -190,7 +190,9 @@ Server.prototype.removeMethod = function(name) {
* @return {Method}
*/
Server.prototype.getMethod = function(name) {
return this._methods[name];
if (Object.prototype.hasOwnProperty.call(this._methods, name)) {
return this._methods[name];
}
};
/**
@@ -420,7 +422,8 @@ Server.prototype._batch = function(requests, context, callback) {
// only notifications in request means empty response
if(!filtered.length) {
return callback();
callback();
return;
}
callback(null, filtered);
}

28
node_modules/jayson/lib/utils.js generated vendored
View File

@@ -1,6 +1,7 @@
'use strict';
const JSONStream = require('JSONStream');
const StreamValues = require('stream-json/streamers/StreamValues');
const Verifier = require('stream-json/utils/Verifier');
const JSONstringify = require('json-stringify-safe');
const uuid = require('uuid').v4;
@@ -64,19 +65,20 @@ Utils.merge = function(...args) {
};
/**
* Parses an incoming stream for requests using JSONStream
* Parses an incoming stream for requests using stream-json
* @param {Stream} stream
* @param {Object} options
* @param {Function} onRequest Called once for stream errors and an unlimited amount of times for valid requests
*/
Utils.parseStream = function(stream, options, onRequest) {
const onError = Utils.once(onRequest);
const onSuccess = (...args) => onRequest(null, ...args);
const result = JSONStream.parse();
const verifier = new Verifier({jsonStreaming: true});
const parser = StreamValues.withParser();
result.on('data', function(data) {
parser.on('data', function(obj) {
let data = obj.value;
// apply reviver walk function to prevent stringify/parse again
if(typeof options.reviver === 'function') {
@@ -86,11 +88,12 @@ Utils.parseStream = function(stream, options, onRequest) {
onSuccess(data);
});
result.on('error', onError);
parser.on('error', onError);
verifier.on('error', onError);
stream.on('error', onError);
stream.pipe(result);
stream.pipe(verifier);
stream.pipe(parser);
};
/**
@@ -182,7 +185,8 @@ Utils.parseBody = function(stream, options, callback) {
stream.on('end', function() {
utils.JSON.parse(data, options, function(err, request) {
if(err) {
return callback(err);
callback(err);
return;
}
callback(null, request);
});
@@ -322,7 +326,8 @@ Utils.JSON.parse = function(str, options, callback) {
try {
obj = JSON.parse.apply(JSON, [str, reviver].filter(v => v));
} catch(err) {
return callback(err);
callback(err);
return;
}
callback(null, obj);
@@ -346,7 +351,8 @@ Utils.JSON.stringify = function(obj, options, callback) {
try {
str = JSONstringify.apply(JSON, [obj, replacer].filter(v => v));
} catch(err) {
return callback(err);
callback(err);
return;
}
callback(null, str);