mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
refactor: separate map feature queries and source records
This commit is contained in:
1 parent
a8125ad917
commit
bf1d50f29b
28 files changed
+1128
-675
No files matched your search
@@ -1,3 +1,5 @@
|
||||
import { createOverpassFeatureSource } from '../sources/overpassFeatures.js';
|
||||
import { FEATURE_SOURCE_METHODS } from '../sources/featureSource.js';
|
||||
import { createSourceSlot } from '../sources/sourceSlot.js';
|
||||
import { createApplicationRequestServices } from './requests.js';
|
||||
|
||||
@@ -15,6 +17,11 @@ const slots = Object.fromEntries(
|
||||
createSourceSlot(defaults[name], methods, `${name} service`),
|
||||
]),
|
||||
);
|
||||
slots.features = createSourceSlot(
|
||||
createOverpassFeatureSource({ boundarySource: slots.boundaries.source }),
|
||||
FEATURE_SOURCE_METHODS,
|
||||
'features service',
|
||||
);
|
||||
export const applicationServices = Object.freeze(
|
||||
Object.fromEntries(
|
||||
Object.entries(slots).map(([name, slot]) => [name, slot.source]),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user