-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.js
31 lines (23 loc) · 840 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const debug = require('debug')('osm-search-data-export');
const inputs = require('./src/input');
const outputs = require('./src/output');
const createConfig = require('./src/config');
const Transformer = require('./src/transformer');
function osmToSearchData(input, output, userConfig = {}) {
const config = createConfig(userConfig);
if (!(typeof input === 'function')) {
throw new Error('Invalid input');
}
if (!(typeof output === 'function')) {
throw new Error('Invalid output');
}
const transformer = new Transformer(config);
input({
onItem: (item) => transformer.addItem(item),
onComplete: () => output(transformer.complete()),
});
debug('Done');
}
// Make input and output funcs available as static properties
Object.assign(osmToSearchData, inputs, outputs);
module.exports = osmToSearchData;