Skip to content

Commit 644ac63

Browse files
committed
fix: use new searchOne
1 parent 556c793 commit 644ac63

File tree

1 file changed

+67
-68
lines changed

1 file changed

+67
-68
lines changed

packages/simulator/lib/pelias.js

Lines changed: 67 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -7,83 +7,82 @@ const peliasUrl =
77
info('Pelias URL', peliasUrl)
88

99
const nearest = (position, layers = 'address,venue') => {
10-
const { lon, lat } = position
10+
const { lon, lat } = position
1111

12-
const url = `${peliasUrl}/v1/reverse?point.lat=${lat}&point.lon=${lon}&size=1&layers=${layers}`
13-
const promise = fetch(url)
14-
.then((response) => {
15-
if (!response.ok) throw 'pelias error: ' + response.statusText
16-
return response.json()
12+
const url = `${peliasUrl}/v1/reverse?point.lat=${lat}&point.lon=${lon}&size=1&layers=${layers}`
13+
const promise = fetch(url)
14+
.then((response) => {
15+
if (!response.ok) throw 'pelias error: ' + response.statusText
16+
return response.json()
17+
})
18+
.then((p) =>
19+
p.features[0]?.geometry?.coordinates?.length
20+
? p
21+
: Promise.reject('No coordinates found' + position.toString())
22+
)
23+
.then(
24+
({
25+
features: [
26+
{
27+
geometry,
28+
properties: { name, street, houseNumber, localadmin, label },
29+
} = {},
30+
] = [],
31+
}) => ({
32+
name,
33+
street,
34+
houseNumber,
35+
label,
36+
localadmin,
37+
position: new Position({
38+
lon: geometry.coordinates[0],
39+
lat: geometry.coordinates[1],
40+
}),
1741
})
18-
.then((p) =>
19-
p.features[0]?.geometry?.coordinates?.length
20-
? p
21-
: Promise.reject('No coordinates found' + position.toString())
22-
)
23-
.then(
24-
({
25-
features: [
26-
{
27-
geometry,
28-
properties: { name, street, houseNumber, localadmin, label },
29-
} = {},
30-
] = [],
31-
}) => ({
32-
name,
33-
street,
34-
houseNumber,
35-
label,
36-
localadmin,
42+
)
43+
.catch((e) => {
44+
const error = new Error().stack
45+
console.error(`Error in pelias nearest\n${error}\n${e}\n\n`)
46+
})
47+
48+
return promise
49+
}
50+
const search = (name, near = null, layers = 'address,venue', size = 1000) => {
51+
const encodedName = encodeURIComponent(name)
52+
const focus = near
53+
? `&focus.point.lat=${near.lat}&focus.point.lon=${near.lon}}&layers=${layers}`
54+
: ''
55+
const url = `${peliasUrl}/v1/search?text=${encodedName}${focus}&size=${size}`
56+
process.stdout.write('p')
57+
return fetch(url)
58+
.then((response) => {
59+
if (!response.ok) throw 'pelias error: ' + response.statusText
60+
return response.json()
61+
})
62+
.then((results) =>
63+
results.features
64+
.map(({ geometry, properties } = {}) => ({
65+
...properties,
3766
position: new Position({
3867
lon: geometry.coordinates[0],
3968
lat: geometry.coordinates[1],
4069
}),
41-
})
42-
)
43-
.catch((e) => {
44-
const error = new Error().stack
45-
console.error(`Error in pelias nearest\n${error}\n${e}\n\n`)
46-
})
47-
48-
return promise
49-
}
50-
const search = (name, near = null, layers = 'address,venue', size = 1000) => {
51-
const encodedName = encodeURIComponent(name)
52-
const focus = near
53-
? `&focus.point.lat=${near.lat}&focus.point.lon=${near.lon}}&layers=${layers}`
54-
: ''
55-
const url = `${peliasUrl}/v1/search?text=${encodedName}${focus}&size=${size}`
56-
process.stdout.write('p')
57-
return fetch(url)
58-
.then((response) => {
59-
if (!response.ok) throw 'pelias error: ' + response.statusText
60-
return response.json()
61-
})
62-
.then((results) =>
63-
results.features
64-
.map(({ geometry, properties } = {}) => ({
65-
...properties,
66-
position: new Position({
67-
lon: geometry.coordinates[0],
68-
lat: geometry.coordinates[1],
69-
}),
70-
}))
71-
.filter((p) => p.position.isValid())
72-
)
73-
.catch((e) => {
74-
const peliasError = new Error().stack
75-
error(`Error in pelias search\n${peliasError}\n${e}\n\n`)
76-
})
77-
},
78-
79-
const searchOne = async (name, near = null, layers = 'address,venue') => {
80-
const results = await pelias.search(name, near, layers, 1)
81-
return results[0]
82-
}
70+
}))
71+
.filter((p) => p.position.isValid())
72+
)
73+
.catch((e) => {
74+
const peliasError = new Error().stack
75+
error(`Error in pelias search\n${peliasError}\n${e}\n\n`)
76+
})
77+
}
8378

79+
const searchOne = async (name, near = null, layers = 'address,venue') => {
80+
const results = await search(name, near, layers, 1)
81+
return results[0]
82+
}
8483

8584
module.exports = {
8685
nearest,
8786
search,
8887
searchOne,
89-
}
88+
}

0 commit comments

Comments
 (0)