Skip to content

Commit 2096ade

Browse files
author
Ilya Radchenko
committed
fix: Remove callback support
BREAKING CHANGE: callback is no longer available, just return the csv from the json2csv. - updated tests - updated readme
1 parent 7143bc7 commit 2096ade

File tree

3 files changed

+201
-286
lines changed

3 files changed

+201
-286
lines changed

README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ try {
7272
- `includeEmptyRows` - Boolean, includes empty rows. Defaults to `false`.
7373
- `preserveNewLinesInValues` - Boolean, preserve \r and \n in values. Defaults to `false`.
7474
- `withBOM` - Boolean, with BOM character. Defaults to `false`.
75-
- `callback` - `function (error, csvString) {}`. If provided, will callback asynchronously. Only supported for compatibility reasons.
7675

7776
#### Example `fields` option
7877
``` javascript
@@ -145,16 +144,14 @@ car, price, color
145144
### Example 2
146145

147146
Similarly to [mongoexport](http://www.mongodb.org/display/DOCS/mongoexport) you can choose which fields to export.
148-
Note: this example uses the optional callback format.
149147

150148
```javascript
151149
var json2csv = require('json2csv');
152150
var fields = ['car', 'color'];
153151

154-
json2csv({ data: myCars, fields: fields }, function(err, csv) {
155-
if (err) console.log(err);
156-
console.log(csv);
157-
});
152+
var csv = json2csv({ data: myCars, fields: fields });
153+
154+
console.log(csv);
158155
```
159156

160157
Results in

lib/json2csv.js

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,38 +32,17 @@ var flatten = require('flat');
3232
/**
3333
* Main function that converts json to csv.
3434
*
35-
* @param {Json2CsvParams} params Function parameters containing data, fields,
36-
* delimiter (default is ','), header (default is true)
37-
* and default value (default is '')
38-
* @param {Function} [callback] Callback function
39-
* if error, returning error in call back.
40-
* if csv is created successfully, returning csv output to callback.
35+
* @param {Json2CsvParams} params parameters containing data and
36+
* and options to configure how that data is processed.
37+
* @returns {String} The CSV formated data as a string
4138
*/
42-
module.exports = function (params, callback) {
43-
var hasCallback = typeof callback === 'function';
44-
45-
try {
46-
checkParams(params);
47-
} catch (err) {
48-
if (hasCallback) {
49-
return process.nextTick(function () {
50-
callback(err);
51-
});
52-
} else {
53-
throw err;
54-
}
55-
}
39+
module.exports = function (params) {
40+
checkParams(params);
5641

5742
var titles = createColumnTitles(params);
5843
var csv = createColumnContent(params, titles);
5944

60-
if (hasCallback) {
61-
return process.nextTick(function () {
62-
callback(null, csv);
63-
});
64-
} else {
65-
return csv;
66-
}
45+
return csv;
6746
};
6847

6948

0 commit comments

Comments
 (0)