refactor: own application request operations and surface caches

This commit is contained in:
Sameh Khamis committed 2026-09-14 14:49:04 -07:00
1 parent 310809e8f1
commit ac977bd8bc
53 files changed
+4388 -3317

No files matched your search

+4 -4
View File
@@ -794,7 +794,7 @@ export async function searchAndFlyTo(viewer, query, options = {}) {
let viewport = result?.viewport || null;
// Nearby landmark recovery retains precedence over a fallback geocoder hit.
const recovered = await placesNearViewRecovery(
const recovered = await (options.recoverNearView || placesNearViewRecovery)(
viewer,
query,
result && !outcome.fallbackUsed ? { lat, lon: lng } : null,
@@ -885,7 +885,7 @@ export async function searchAndFlyTo(viewer, query, options = {}) {
const shouldResolveBuilding = navigationMode === 'precise-place';
const buildingBounds = shouldResolveBuilding
? await resolveBuildingBounds(lat, lng, query)
? await resolveBuildingBounds(lat, lng, query, options.boundaries)
: null;
const range = requestedRange || defaultRangeForNavigationMode(navigationMode);
if (!mayFly()) return CANCELLED_SEARCH;
@@ -1330,7 +1330,7 @@ function buildingPitch(bounds) {
return -32;
}
async function resolveBuildingBounds(lat, lon, query) {
async function resolveBuildingBounds(lat, lon, query, boundaries = applicationServices.boundaries) {
const overpassQuery = `
[out:json][timeout:10];
(
@@ -1346,7 +1346,7 @@ async function resolveBuildingBounds(lat, lon, query) {
const controller = new AbortController();
const timeout = window.setTimeout(() => controller.abort(), 6000);
try {
const elements = await applicationServices.boundaries.query(overpassQuery, { signal: controller.signal });
const elements = await boundaries.query(overpassQuery, { signal: controller.signal });
return selectBuildingBounds(Array.isArray(elements) ? elements : [], lat, lon, query);
} catch {
return null;