diff --git a/src/core/operations/CSVToJSON.mjs b/src/core/operations/CSVToJSON.mjs deleted file mode 100644 index ca9f1ceb..00000000 --- a/src/core/operations/CSVToJSON.mjs +++ /dev/null @@ -1,80 +0,0 @@ -/** - * @author n1474335 [n1474335@gmail.com] - * @copyright Crown Copyright 2018 - * @license Apache-2.0 - */ - -import Operation from "../Operation.mjs"; -import OperationError from "../errors/OperationError.mjs"; -import Utils from "../Utils.mjs"; - -/** - * CSV to JSON operation - */ -class CSVToJSON extends Operation { - - /** - * CSVToJSON constructor - */ - constructor() { - super(); - - this.name = "CSV to JSON"; - this.module = "Default"; - this.description = "Converts a CSV file to JSON format."; - this.infoURL = "https://wikipedia.org/wiki/Comma-separated_values"; - this.inputType = "string"; - this.outputType = "JSON"; - this.args = [ - { - name: "Cell delimiters", - type: "binaryShortString", - value: "," - }, - { - name: "Row delimiters", - type: "binaryShortString", - value: "\\r\\n" - }, - { - name: "Format", - type: "option", - value: ["Array of dictionaries", "Array of arrays"] - } - ]; - } - - /** - * @param {string} input - * @param {Object[]} args - * @returns {JSON} - */ - run(input, args) { - const [cellDelims, rowDelims, format] = args; - let json, header; - - try { - json = Utils.parseCSV(input, cellDelims.split(""), rowDelims.split("")); - } catch (err) { - throw new OperationError("Unable to parse CSV: " + err); - } - - switch (format) { - case "Array of dictionaries": - header = json[0]; - return json.slice(1).map(row => { - const obj = {}; - header.forEach((h, i) => { - obj[h] = row[i]; - }); - return obj; - }); - case "Array of arrays": - default: - return json; - } - } - -} - -export default CSVToJSON;