@elliemae/ds-csv-converter 2.4.2-rc.3 → 2.4.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +9 -9
- package/esm/index.js +9 -9
- package/package.json +1 -1
package/cjs/index.js
CHANGED
|
@@ -16,12 +16,9 @@ require('core-js/modules/esnext.map.merge.js');
|
|
|
16
16
|
require('core-js/modules/esnext.map.reduce.js');
|
|
17
17
|
require('core-js/modules/esnext.map.some.js');
|
|
18
18
|
require('core-js/modules/esnext.map.update.js');
|
|
19
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
20
19
|
require('core-js/modules/esnext.async-iterator.map.js');
|
|
21
20
|
require('core-js/modules/esnext.iterator.map.js');
|
|
22
|
-
require('core-js/modules/es.
|
|
23
|
-
require('core-js/modules/web.url.js');
|
|
24
|
-
require('core-js/modules/web.url-search-params.js');
|
|
21
|
+
require('core-js/modules/es.error.cause.js');
|
|
25
22
|
|
|
26
23
|
const argIsRecord = arg => !!arg && arg instanceof Map === false; // https://github.com/BubbleBear/list2csv/blob/master/src/index.ts
|
|
27
24
|
|
|
@@ -36,15 +33,15 @@ function list2csv(list, map) {
|
|
|
36
33
|
}
|
|
37
34
|
|
|
38
35
|
const columns = headerMap && Array.from(headerMap.keys()) || Object.keys(list[0] || {});
|
|
39
|
-
const header = columns.map(v => "
|
|
36
|
+
const header = columns.map(v => `"${headerMap ? headerMap.get(v) : v}"`).join(',');
|
|
40
37
|
const content = list.map(item => columns.map(key => {
|
|
41
38
|
let finalCell;
|
|
42
39
|
const cell = item[key];
|
|
43
40
|
finalCell = cell;
|
|
44
41
|
if (typeof cell === 'string') finalCell = cell.replace(/"/g, '""');
|
|
45
|
-
return "
|
|
42
|
+
return `"${finalCell}"`;
|
|
46
43
|
}).join(',')).join('\r\n');
|
|
47
|
-
return
|
|
44
|
+
return `${header}\r\n${content}`;
|
|
48
45
|
}
|
|
49
46
|
function listToCsvBlob(list, map) {
|
|
50
47
|
const data = list2csv(list, map);
|
|
@@ -57,11 +54,14 @@ function listToCsvFile(list) {
|
|
|
57
54
|
let map = arguments.length > 2 ? arguments[2] : undefined;
|
|
58
55
|
|
|
59
56
|
if (!document.createElement && !navigator.msSaveBlob) {
|
|
60
|
-
throw new Error(
|
|
57
|
+
throw new Error(`
|
|
58
|
+
Can not export to file without document/navigator msSaveBlob functionality.
|
|
59
|
+
Use listToCsvBlob and handle file creation on your side instead.
|
|
60
|
+
`);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
const blob = listToCsvBlob(list, map);
|
|
64
|
-
const finalFileName =
|
|
64
|
+
const finalFileName = `${fileName}.csv`;
|
|
65
65
|
|
|
66
66
|
if (navigator.msSaveBlob) {
|
|
67
67
|
// IE 10+
|
package/esm/index.js
CHANGED
|
@@ -12,12 +12,9 @@ import 'core-js/modules/esnext.map.merge.js';
|
|
|
12
12
|
import 'core-js/modules/esnext.map.reduce.js';
|
|
13
13
|
import 'core-js/modules/esnext.map.some.js';
|
|
14
14
|
import 'core-js/modules/esnext.map.update.js';
|
|
15
|
-
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
16
15
|
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
17
16
|
import 'core-js/modules/esnext.iterator.map.js';
|
|
18
|
-
import 'core-js/modules/es.
|
|
19
|
-
import 'core-js/modules/web.url.js';
|
|
20
|
-
import 'core-js/modules/web.url-search-params.js';
|
|
17
|
+
import 'core-js/modules/es.error.cause.js';
|
|
21
18
|
|
|
22
19
|
const argIsRecord = arg => !!arg && arg instanceof Map === false; // https://github.com/BubbleBear/list2csv/blob/master/src/index.ts
|
|
23
20
|
|
|
@@ -32,15 +29,15 @@ function list2csv(list, map) {
|
|
|
32
29
|
}
|
|
33
30
|
|
|
34
31
|
const columns = headerMap && Array.from(headerMap.keys()) || Object.keys(list[0] || {});
|
|
35
|
-
const header = columns.map(v => "
|
|
32
|
+
const header = columns.map(v => `"${headerMap ? headerMap.get(v) : v}"`).join(',');
|
|
36
33
|
const content = list.map(item => columns.map(key => {
|
|
37
34
|
let finalCell;
|
|
38
35
|
const cell = item[key];
|
|
39
36
|
finalCell = cell;
|
|
40
37
|
if (typeof cell === 'string') finalCell = cell.replace(/"/g, '""');
|
|
41
|
-
return "
|
|
38
|
+
return `"${finalCell}"`;
|
|
42
39
|
}).join(',')).join('\r\n');
|
|
43
|
-
return
|
|
40
|
+
return `${header}\r\n${content}`;
|
|
44
41
|
}
|
|
45
42
|
function listToCsvBlob(list, map) {
|
|
46
43
|
const data = list2csv(list, map);
|
|
@@ -53,11 +50,14 @@ function listToCsvFile(list) {
|
|
|
53
50
|
let map = arguments.length > 2 ? arguments[2] : undefined;
|
|
54
51
|
|
|
55
52
|
if (!document.createElement && !navigator.msSaveBlob) {
|
|
56
|
-
throw new Error(
|
|
53
|
+
throw new Error(`
|
|
54
|
+
Can not export to file without document/navigator msSaveBlob functionality.
|
|
55
|
+
Use listToCsvBlob and handle file creation on your side instead.
|
|
56
|
+
`);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
const blob = listToCsvBlob(list, map);
|
|
60
|
-
const finalFileName =
|
|
60
|
+
const finalFileName = `${fileName}.csv`;
|
|
61
61
|
|
|
62
62
|
if (navigator.msSaveBlob) {
|
|
63
63
|
// IE 10+
|