diff --git a/src/OpenStreetBrowserLoader.js b/src/OpenStreetBrowserLoader.js index 18eb5e5c..1faf0a30 100644 --- a/src/OpenStreetBrowserLoader.js +++ b/src/OpenStreetBrowserLoader.js @@ -1,4 +1,5 @@ var OverpassLayer = require('overpass-layer') +var jsonMultilineStrings = require('./json-multiline-strings') function OpenStreetBrowserLoader () { this.types = {} @@ -31,6 +32,7 @@ OpenStreetBrowserLoader.prototype.getCategory = function (id, callback) { } var data = JSON.parse(req.responseText) + data = jsonMultilineStrings.join(data) this.getCategoryFromData(id, data, function (err, category) { if (category) { diff --git a/src/json-multiline-strings.js b/src/json-multiline-strings.js new file mode 100644 index 00000000..0f26fc48 --- /dev/null +++ b/src/json-multiline-strings.js @@ -0,0 +1,31 @@ +function isStringArray (arr) { + if (!Array.isArray(arr)) { + return false + } + + var nonStringElements = arr.filter(function (x) { + return typeof x !== 'string' + }) + + if (nonStringElements.length) { + return false + } + + return true +} + +function join (data) { + for (var k in data) { + if (isStringArray(data[k])) { + data[k] = data[k].join('\n') + } else if (typeof data[k] === 'object') { + data[k] = join(data[k]) + } + } + + return data +} + +module.exports = { + join: join +}