nominatim-client
Version:
A simple client to handle nominatim searches
1 lines • 3.04 kB
Source Map (JSON)
{"version":3,"file":"nominatim.module.min.mjs","sources":["lib/fetch.js","lib/nominatim.js"],"sourcesContent":["const https = require('https');\n\nmodule.exports = function fetch(host, path, { headers, ...params }) {\n return new Promise((resolve, reject) => {\n https.get({ host, path, headers }, (res) => {\n let data = '';\n\n res.setEncoding('utf8');\n res.on('error', reject);\n\n res.on('data', (chunk) => {\n data += chunk;\n });\n\n res.on('end', () => {\n try {\n data = params.format === 'json' ? JSON.parse(data) : data;\n\n resolve(data);\n } catch (err) {\n reject(err);\n }\n });\n }).on('error', reject);\n });\n};\n","const fetch = require('./fetch');\n\nconst API_ENDPOINT = 'nominatim.openstreetmap.org';\nconst defaultParams = {\n format: 'json',\n};\n\nfunction encode(params) {\n const params_query = [];\n\n for (const key in params) {\n params_query.push(key + '=' + encodeURIComponent(params[key]));\n }\n\n return params_query.join('&');\n};\n\nmodule.exports = {\n createClient: ({ useragent, referer, ...options }) => {\n const headers = {\n 'User-Agent': useragent,\n referer,\n };\n\n return {\n search(params) {\n const queryParams = { ...defaultParams, ...options, ...params };\n const search = encode(queryParams);\n\n return fetch(API_ENDPOINT, `/?${search}`, { ...queryParams, headers });\n },\n reverse(params) {\n const queryParams = { ...defaultParams, zoom: 18, ...options, ...params };\n const search = encode(queryParams);\n\n return fetch(API_ENDPOINT, `/reverse?${search}`, { ...queryParams, headers });\n },\n };\n },\n};\n"],"names":["https","require$$0","fetch","host","path","headers","params","Promise","resolve","reject","get","res","data","setEncoding","on","chunk","format","JSON","parse","err","defaultParams","encode","params_query","key","push","encodeURIComponent","join","nominatim","createClient","useragent","referer","options","search","queryParams","reverse","zoom"],"mappings":";qBAAA,MAAMA,EAAQC,ECAd,MAAMC,EDEW,SAAeC,EAAMC,GAAMC,QAAEA,KAAYC,IACxD,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3BT,EAAMU,IAAI,CAAEP,KAAAA,EAAMC,KAAAA,EAAMC,QAAAA,IAAYM,IAClC,IAAIC,EAAO,GAEXD,EAAIE,YAAY,QAChBF,EAAIG,GAAG,QAASL,GAEhBE,EAAIG,GAAG,QAASC,IACZH,GAAQG,KAGZJ,EAAIG,GAAG,OAAO,KACZ,IACEF,EAAyB,SAAlBN,EAAOU,OAAoBC,KAAKC,MAAMN,GAAQA,EAErDJ,EAAQI,GACR,MAAOO,GACPV,EAAOU,UAGVL,GAAG,QAASL,OCpBbW,EAAgB,CACpBJ,OAAQ,QAGV,SAASK,EAAOf,GACd,MAAMgB,EAAe,GAErB,IAAK,MAAMC,KAAOjB,EAChBgB,EAAaE,KAAKD,EAAM,IAAME,mBAAmBnB,EAAOiB,KAG1D,OAAOD,EAAaI,KAAK,SAG3BC,EAAiB,CACfC,aAAc,EAAGC,UAAAA,EAAWC,QAAAA,KAAYC,MACtC,MAAM1B,EAAU,CACd,aAAcwB,EACdC,QAAAA,GAGF,MAAO,CACLE,OAAO1B,GACL,MAAM2B,EAAc,IAAKb,KAAkBW,KAAYzB,GACjD0B,EAASX,EAAOY,GAEtB,OAAO/B,EA3BM,8BA2Bc,KAAK8B,IAAU,IAAKC,EAAa5B,QAAAA,KAE9D6B,QAAQ5B,GACN,MAAM2B,EAAc,IAAKb,EAAee,KAAM,MAAOJ,KAAYzB,GAC3D0B,EAASX,EAAOY,GAEtB,OAAO/B,EAjCM,8BAiCc,YAAY8B,IAAU,IAAKC,EAAa5B,QAAAA"}