Vite + TypeScript PWA that mirrors the Android app's core features: - Pre-processed shelter data (build-time UTM33N→WGS84 conversion) - Leaflet map with shelter markers, user location, and offline tiles - Canvas compass arrow (ported from DirectionArrowView.kt) - IndexedDB shelter cache with 7-day staleness check - Service worker with CacheFirst tiles and precached app shell - i18n for en, nb, nn (ported from Android strings.xml) - iOS/Android compass handling with low-pass filter - Respects user map interaction (no auto-snap on pan/zoom) - Build revision cache-breaker for reliable SW updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
16 lines
699 B
TypeScript
16 lines
699 B
TypeScript
import resolveUri from '@jridgewell/resolve-uri';
|
|
import stripFilename from './strip-filename';
|
|
|
|
type Resolve = (source: string | null) => string;
|
|
export default function resolver(
|
|
mapUrl: string | null | undefined,
|
|
sourceRoot: string | undefined,
|
|
): Resolve {
|
|
const from = stripFilename(mapUrl);
|
|
// The sourceRoot is always treated as a directory, if it's not empty.
|
|
// https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327
|
|
// https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401
|
|
const prefix = sourceRoot ? sourceRoot + '/' : '';
|
|
|
|
return (source) => resolveUri(prefix + (source || ''), from);
|
|
}
|