@squawk/flightplan
Advanced tools
+10
-6
| { | ||
| "name": "@squawk/flightplan", | ||
| "version": "0.4.5", | ||
| "version": "0.5.0", | ||
| "type": "module", | ||
@@ -24,2 +24,6 @@ "description": "Flight plan route string parsing and resolution using composed navigation resolvers", | ||
| "import": "./dist/index.js" | ||
| }, | ||
| "./browser": { | ||
| "types": "./dist/index.d.ts", | ||
| "import": "./dist/index.js" | ||
| } | ||
@@ -44,11 +48,11 @@ }, | ||
| "@squawk/airport-data": "^0.7.2", | ||
| "@squawk/airports": "^0.5.4", | ||
| "@squawk/airports": "^0.6.0", | ||
| "@squawk/airway-data": "^0.5.2", | ||
| "@squawk/airways": "^0.3.5", | ||
| "@squawk/airways": "^0.4.0", | ||
| "@squawk/fix-data": "^0.6.2", | ||
| "@squawk/fixes": "^0.2.5", | ||
| "@squawk/fixes": "^0.3.0", | ||
| "@squawk/navaid-data": "^0.6.2", | ||
| "@squawk/navaids": "^0.3.5", | ||
| "@squawk/navaids": "^0.4.0", | ||
| "@squawk/procedure-data": "^0.7.1", | ||
| "@squawk/procedures": "^0.4.4", | ||
| "@squawk/procedures": "^0.5.0", | ||
| "@types/node": "^25.6.0" | ||
@@ -55,0 +59,0 @@ }, |
+36
-0
@@ -53,2 +53,38 @@ <h1><img src="../../../assets/squawk-logo.svg" alt="squawk logo" width="48" height="48" style="vertical-align: middle"> @squawk/flightplan</h1> | ||
| ## Browser / SPA usage | ||
| The resolver factory has no Node-specific imports and ships an explicit `/browser` subpath for SPAs and edge runtimes. Pair it with the `/browser` entries of the resolvers you want to compose: | ||
| ```typescript | ||
| import { loadUsBundledAirports } from '@squawk/airport-data/browser'; | ||
| import { loadUsBundledNavaids } from '@squawk/navaid-data/browser'; | ||
| import { loadUsBundledFixes } from '@squawk/fix-data/browser'; | ||
| import { loadUsBundledAirways } from '@squawk/airway-data/browser'; | ||
| import { loadUsBundledProcedures } from '@squawk/procedure-data/browser'; | ||
| import { createAirportResolver } from '@squawk/airports/browser'; | ||
| import { createNavaidResolver } from '@squawk/navaids/browser'; | ||
| import { createFixResolver } from '@squawk/fixes/browser'; | ||
| import { createAirwayResolver } from '@squawk/airways/browser'; | ||
| import { createProcedureResolver } from '@squawk/procedures/browser'; | ||
| import { createFlightplanResolver } from '@squawk/flightplan/browser'; | ||
| const [airports, navaids, fixes, airways, procedures] = await Promise.all([ | ||
| loadUsBundledAirports(), | ||
| loadUsBundledNavaids(), | ||
| loadUsBundledFixes(), | ||
| loadUsBundledAirways(), | ||
| loadUsBundledProcedures(), | ||
| ]); | ||
| const resolver = createFlightplanResolver({ | ||
| airports: createAirportResolver({ data: airports.records }), | ||
| navaids: createNavaidResolver({ data: navaids.records }), | ||
| fixes: createFixResolver({ data: fixes.records }), | ||
| airways: createAirwayResolver({ data: airways.records }), | ||
| procedures: createProcedureResolver({ data: procedures.records }), | ||
| }); | ||
| ``` | ||
| The `/browser` entry is identical to the main entry; the separate subpath exists so browser support is an explicit, `publint`-verified part of the public API surface. | ||
| ## API | ||
@@ -55,0 +91,0 @@ |
48291
3.88%162
28.57%