Skip to content

Commit fd17ac9

Browse files
committed
Merge pull request mapbox#37 from mapbox/d3-dsv
Update from dsv to d3-dsv
2 parents 9a8c1e7 + 85964cf commit fd17ac9

4 files changed

Lines changed: 27 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 5.0.0
2+
3+
* Updates `dsv` dependency to `d3-dsv`
4+
15
## 4.0.0
26

37
* [toLine and toPolygon now include all properties of all aggregated objects.](https://github.com/mapbox/csv2geojson/pull/29)

index.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var dsv = require('dsv'),
1+
var dsv = require('d3-dsv'),
22
sexagesimal = require('sexagesimal');
33

44
function isLat(f) { return !!f.match(/(Lat)(itude)?/gi); }
@@ -13,7 +13,7 @@ function autoDelimiter(x) {
1313
var results = [];
1414

1515
delimiters.forEach(function(delimiter) {
16-
var res = dsv(delimiter).parse(x);
16+
var res = dsv.dsv(delimiter).parse(x);
1717
if (res.length >= 1) {
1818
var count = keyCount(res[0]);
1919
for (var i = 0; i < res.length; i++) {
@@ -35,10 +35,21 @@ function autoDelimiter(x) {
3535
}
3636
}
3737

38+
/**
39+
* Silly stopgap for dsv to d3-dsv upgrade
40+
*
41+
* @param {Array} x dsv output
42+
* @returns {Array} array without columns member
43+
*/
44+
function deleteColumns(x) {
45+
delete x.columns;
46+
return x;
47+
}
48+
3849
function auto(x) {
3950
var delimiter = autoDelimiter(x);
4051
if (!delimiter) return null;
41-
return dsv(delimiter).parse(x);
52+
return deleteColumns(dsv.dsv(delimiter).parse(x));
4253
}
4354

4455
function csv2geojson(x, options, callback) {
@@ -69,7 +80,8 @@ function csv2geojson(x, options, callback) {
6980
});
7081
}
7182

72-
var parsed = (typeof x == 'string') ? dsv(options.delimiter).parse(x) : x;
83+
var parsed = (typeof x == 'string') ?
84+
dsv.dsv(options.delimiter).parse(x) : x;
7385

7486
if (!parsed.length) return callback(null, featurecollection);
7587

@@ -84,7 +96,7 @@ function csv2geojson(x, options, callback) {
8496
return callback({
8597
type: 'Error',
8698
message: 'Latitude and longitude fields not present',
87-
data: parsed,
99+
data: deleteColumns(parsed),
88100
fields: fields
89101
});
90102
}
@@ -196,8 +208,8 @@ function toPolygon(gj) {
196208
module.exports = {
197209
isLon: isLon,
198210
isLat: isLat,
199-
csv: dsv.csv.parse,
200-
tsv: dsv.tsv.parse,
211+
csv: dsv.csvParse,
212+
tsv: dsv.tsvParse,
201213
dsv: dsv,
202214
auto: auto,
203215
csv2geojson: csv2geojson,

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616
},
1717
"license": "BSD",
1818
"devDependencies": {
19-
"brfs": "^1.3.0",
2019
"browserify": "^8.1.3",
2120
"expect.js": "~0.2.0",
2221
"mocha": "~1.8",
2322
"mocha-phantomjs": "~1.1.1"
2423
},
2524
"dependencies": {
2625
"optimist": "~0.6.1",
27-
"dsv": "0.0.3",
26+
"d3-dsv": "0.2.0",
2827
"sexagesimal": "0.4.0",
2928
"concat-stream": "~1.0.1"
3029
}

test/csv2geojson.js

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,6 @@ describe('csv2geojson', function() {
2828
});
2929
});
3030

31-
describe('#csv', function() {
32-
it('handles empty input', function() {
33-
expect(csv2geojson.csv('')).to.eql([]);
34-
});
35-
36-
it('handles simple fields', function() {
37-
expect(csv2geojson.csv('a,b\n1,2')).to.eql([{a: '1', b: '2'}]);
38-
});
39-
});
40-
4131
describe('#sexagesimal', function() {
4232
it('degrees', function(done) {
4333
csv2geojson.csv2geojson(textFile('degrees.csv'), function(err, data) {
@@ -217,13 +207,13 @@ describe('csv2geojson', function() {
217207
});
218208

219209
it('accepts a parsed object', function() {
220-
csv2geojson.csv2geojson(csv2geojson.csv(textFile('simple.csv')), function(err, data) {
210+
csv2geojson.csv2geojson(textFile('simple.csv'), function(err, data) {
221211
expect(data).to.eql(jsonFile('simple.geojson'));
222212
});
223213
});
224214

225215
it('reports bad coordinates', function() {
226-
csv2geojson.csv2geojson(csv2geojson.csv(textFile('bad_coord.csv')), function(err, data) {
216+
csv2geojson.csv2geojson(textFile('bad_coord.csv'), function(err, data) {
227217
expect(data).to.eql({
228218
type: 'FeatureCollection',
229219
features: []
@@ -233,7 +223,7 @@ describe('csv2geojson', function() {
233223
});
234224

235225
it('returns an error on not finding fields', function() {
236-
csv2geojson.csv2geojson(csv2geojson.csv('name\nfoo'), function(err, data) {
226+
csv2geojson.csv2geojson('name\nfoo', function(err, data) {
237227
expect(err).to.eql({
238228
type: 'Error',
239229
message: 'Latitude and longitude fields not present',

0 commit comments

Comments
 (0)