Tidied up Avro to JSON operation

This commit is contained in:
n1474335 2019-10-31 14:17:07 +00:00
parent a2c46b3f66
commit daad633195
5 changed files with 15 additions and 19 deletions

View File

@ -20,25 +20,26 @@ class AvroToJSON extends Operation {
super();
this.name = "Avro to JSON";
this.module = "Avro";
this.module = "Serialise";
this.description = "Converts Avro encoded data into JSON.";
this.infoURL = "https://avro.apache.org/docs/current/spec.html";
this.infoURL = "https://wikipedia.org/wiki/Apache_Avro";
this.inputType = "ArrayBuffer";
this.outputType = "JSON";
this.args = [{
name: "Force Valid JSON",
type: "boolean",
value: true
}];
this.outputType = "string";
this.args = [
{
name: "Force Valid JSON",
type: "boolean",
value: true
}
];
}
/**
* @param {ArrayBuffer} input
* @param {Object[]} args
* @returns {JSON}
* @returns {string}
*/
run(input, args) {
const self = this;
if (input.byteLength <= 0) {
throw new OperationError("Please provide an input.");
}
@ -59,12 +60,8 @@ class AvroToJSON extends Operation {
})
.on("end", function () {
if (forceJSON) {
self.presentType = "JSON";
self.outputType = "JSON";
resolve(result.length === 1 ? result[0] : result);
resolve(result.length === 1 ? JSON.stringify(result[0], null, 4) : JSON.stringify(result, null, 4));
} else {
self.presentType = "string";
self.outputType = "string";
const data = result.reduce((result, current) => result + JSON.stringify(current) + "\n", "");
resolve(data);
}

View File

@ -20,7 +20,7 @@ class BSONDeserialise extends Operation {
super();
this.name = "BSON deserialise";
this.module = "BSON";
this.module = "Serialise";
this.description = "BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures, associative arrays (called objects or documents in MongoDB), and various data types of specific interest to MongoDB. The name 'BSON' is based on the term JSON and stands for 'Binary JSON'.<br><br>Input data should be in a raw bytes format.";
this.infoURL = "https://wikipedia.org/wiki/BSON";
this.inputType = "ArrayBuffer";

View File

@ -20,7 +20,7 @@ class BSONSerialise extends Operation {
super();
this.name = "BSON serialise";
this.module = "BSON";
this.module = "Serialise";
this.description = "BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures, associative arrays (called objects or documents in MongoDB), and various data types of specific interest to MongoDB. The name 'BSON' is based on the term JSON and stands for 'Binary JSON'.<br><br>Input data should be valid JSON.";
this.infoURL = "https://wikipedia.org/wiki/BSON";
this.inputType = "string";

View File

@ -91,7 +91,7 @@ import "./tests/Protobuf.mjs";
import "./tests/ParseSSHHostKey.mjs";
import "./tests/DefangIP.mjs";
import "./tests/ParseUDP.mjs";
import "./tests/AvroToJSON";
import "./tests/AvroToJSON.mjs";
// Cannot test operations that use the File type yet
// import "./tests/SplitColourChannels.mjs";

View File

@ -1,5 +1,4 @@
/**
*
* Avro to JSON tests.
*
* @author jarrodconnolly [jarrod@nestedquotes.ca]