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>
45 lines
1.2 KiB
Markdown
45 lines
1.2 KiB
Markdown
# JSON Pointer for Node.js
|
|
|
|
This is an implementation of [JSON Pointer](https://tools.ietf.org/html/rfc6901).
|
|
|
|
## CLI
|
|
|
|
Looking to filter JSON from the command line? Check out [jsonpointer-cli](https://github.com/joeyespo/jsonpointer-cli).
|
|
|
|
## Usage
|
|
```javascript
|
|
var jsonpointer = require('jsonpointer');
|
|
var obj = { foo: 1, bar: { baz: 2}, qux: [3, 4, 5]};
|
|
|
|
jsonpointer.get(obj, '/foo'); // returns 1
|
|
jsonpointer.get(obj, '/bar/baz'); // returns 2
|
|
jsonpointer.get(obj, '/qux/0'); // returns 3
|
|
jsonpointer.get(obj, '/qux/1'); // returns 4
|
|
jsonpointer.get(obj, '/qux/2'); // returns 5
|
|
jsonpointer.get(obj, '/quo'); // returns undefined
|
|
|
|
jsonpointer.set(obj, '/foo', 6); // sets obj.foo = 6;
|
|
jsonpointer.set(obj, '/qux/-', 6) // sets obj.qux = [3, 4, 5, 6]
|
|
|
|
var pointer = jsonpointer.compile('/foo')
|
|
pointer.get(obj) // returns 1
|
|
pointer.set(obj, 1) // sets obj.foo = 1
|
|
```
|
|
|
|
## Testing
|
|
|
|
$ npm test
|
|
All tests pass.
|
|
$
|
|
|
|
[](https://github.com/janl/node-jsonpointer/actions/workflows/node.js.yml)
|
|
|
|
## Author
|
|
|
|
(c) 2011-2021 Jan Lehnardt <jan@apache.org> & Marc Bachmann <https://github.com/marcbachmann>
|
|
|
|
Thanks to all contributors.
|
|
|
|
## License
|
|
|
|
MIT License.
|