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>
50 lines
976 B
Markdown
50 lines
976 B
Markdown
# leven [](https://travis-ci.org/sindresorhus/leven)
|
|
|
|
> Measure the difference between two strings<br>
|
|
> One of the fastest JS implementations of the [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) algorithm
|
|
|
|
|
|
## Install
|
|
|
|
```
|
|
$ npm install leven
|
|
```
|
|
|
|
|
|
## Usage
|
|
|
|
```js
|
|
const leven = require('leven');
|
|
|
|
leven('cat', 'cow');
|
|
//=> 2
|
|
```
|
|
|
|
|
|
## Benchmark
|
|
|
|
```
|
|
$ npm run bench
|
|
```
|
|
|
|
```
|
|
165,926 op/s » leven
|
|
164,398 op/s » talisman
|
|
1,044 op/s » levenshtein-edit-distance
|
|
628 op/s » fast-levenshtein
|
|
497 op/s » levenshtein-component
|
|
195 op/s » ld
|
|
190 op/s » levenshtein
|
|
168 op/s » levdist
|
|
10 op/s » natural
|
|
```
|
|
|
|
|
|
## Related
|
|
|
|
- [leven-cli](https://github.com/sindresorhus/leven-cli) - CLI for this module
|
|
|
|
|
|
## License
|
|
|
|
MIT © [Sindre Sorhus](https://sindresorhus.com)
|