diff --git a/package.json b/package.json index f3aec65b..0cac2465 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "bootstrap": "^4.1.1", "chart.js": "^2.7.2", "classnames": "^2.2.6", - "jsonexport": "^2.2.1", + "csvjson": "^5.1.0", "moment": "^2.22.2", "promise": "8.0.1", "prop-types": "^15.6.2", diff --git a/src/servers/services/ServersExporter.js b/src/servers/services/ServersExporter.js index ce04f8c5..85235e5a 100644 --- a/src/servers/services/ServersExporter.js +++ b/src/servers/services/ServersExporter.js @@ -1,6 +1,6 @@ import Storage from '../../utils/Storage'; -import jsonexport from 'jsonexport/dist'; -import { dissoc, values } from 'ramda'; +import { dissoc, head, keys, values } from 'ramda'; +import csvjson from 'csvjson'; const SERVERS_STORAGE_KEY = 'servers'; @@ -27,10 +27,10 @@ const saveCsv = (window, csv) => { }; export class ServersExporter { - constructor(storage, window, jsonexport) { + constructor(storage, window, csvjson) { this.storage = storage; this.window = window; - this.jsonexport = jsonexport; + this.csvjson = csvjson; } exportServers = async () => { @@ -39,10 +39,9 @@ export class ServersExporter { ); try { - const csv = await new Promise((resolve, reject) => { - this.jsonexport(servers, (err, csv) => err ? reject(err) : resolve(csv)); + const csv = this.csvjson.toCSV(servers, { + headers: keys(head(servers)).join(',') }); - saveCsv(this.window, csv); } catch (e) { // FIXME Handle error @@ -51,4 +50,4 @@ export class ServersExporter { }; } -export default new ServersExporter(Storage, global.window, jsonexport); +export default new ServersExporter(Storage, global.window, csvjson); diff --git a/yarn.lock b/yarn.lock index f9afa9c7..83c8e9b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2002,6 +2002,10 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": dependencies: cssom "0.3.x" +csvjson@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/csvjson/-/csvjson-5.1.0.tgz#f055660824ebfb44dc089d901267fdc5d9e8414a" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -4436,10 +4440,6 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -jsonexport@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsonexport/-/jsonexport-2.2.1.tgz#b25a8a6e805e7179ef20460715ba2b92ebc32753" - jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"