refactor: separate map feature queries and source records

This commit is contained in:
Sameh Khamis committed 2026-09-15 08:10:32 -07:00
1 parent a8125ad917
commit bf1d50f29b
28 files changed
+1128 -675

No files matched your search

+10 -1
View File
@@ -1,3 +1,4 @@
import { createOverpassFeatureSource } from '../sources/overpassFeatures.js';
/** Parse bounded retry information from a service response. */
function retryAfterMs(value) {
if (value == null || String(value).trim() === '') return null;
@@ -13,6 +14,7 @@ export function createApplicationRequestServices({
fetchImpl = (...args) => fetch(...args),
signal: lifetime,
endpoints = {},
features,
} = {}) {
const urls = {
boundaries: '/api/overpass',
@@ -62,7 +64,7 @@ export function createApplicationRequestServices({
throw new Error(`${label} unavailable (${response.status})`);
return response.data;
}
return {
const services = {
boundaries: {
async query(query, { signal } = {}) {
const response = await request(urls.boundaries, {
@@ -125,4 +127,11 @@ export function createApplicationRequestServices({
},
},
};
services.features =
features ??
createOverpassFeatureSource({
boundarySource: services.boundaries,
signal: lifetime,
});
return services;
}