@squawk/flightplan 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -2
- package/package.json +19 -14
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<h1><img src="
|
|
1
|
+
<h1><img src="../../../assets/squawk-logo.svg" alt="squawk logo" width="48" height="48" style="vertical-align: middle"> @squawk/flightplan</h1>
|
|
2
2
|
|
|
3
|
-
[](
|
|
3
|
+
[](../../../LICENSE.md) [](https://www.npmjs.com/package/@squawk/flightplan) 
|
|
4
4
|
|
|
5
5
|
Pure logic library for parsing flight plan route strings into structured,
|
|
6
6
|
coordinate-resolved route elements. Composes airport, navaid, fix, airway,
|
|
@@ -50,6 +50,42 @@ const resolver = createFlightplanResolver({ airports: myAirportResolver });
|
|
|
50
50
|
const route = resolver.parse('KJFK DCT KLAX');
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
+
## Browser / SPA usage
|
|
54
|
+
|
|
55
|
+
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:
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { loadUsBundledAirports } from '@squawk/airport-data/browser';
|
|
59
|
+
import { loadUsBundledNavaids } from '@squawk/navaid-data/browser';
|
|
60
|
+
import { loadUsBundledFixes } from '@squawk/fix-data/browser';
|
|
61
|
+
import { loadUsBundledAirways } from '@squawk/airway-data/browser';
|
|
62
|
+
import { loadUsBundledProcedures } from '@squawk/procedure-data/browser';
|
|
63
|
+
import { createAirportResolver } from '@squawk/airports/browser';
|
|
64
|
+
import { createNavaidResolver } from '@squawk/navaids/browser';
|
|
65
|
+
import { createFixResolver } from '@squawk/fixes/browser';
|
|
66
|
+
import { createAirwayResolver } from '@squawk/airways/browser';
|
|
67
|
+
import { createProcedureResolver } from '@squawk/procedures/browser';
|
|
68
|
+
import { createFlightplanResolver } from '@squawk/flightplan/browser';
|
|
69
|
+
|
|
70
|
+
const [airports, navaids, fixes, airways, procedures] = await Promise.all([
|
|
71
|
+
loadUsBundledAirports(),
|
|
72
|
+
loadUsBundledNavaids(),
|
|
73
|
+
loadUsBundledFixes(),
|
|
74
|
+
loadUsBundledAirways(),
|
|
75
|
+
loadUsBundledProcedures(),
|
|
76
|
+
]);
|
|
77
|
+
|
|
78
|
+
const resolver = createFlightplanResolver({
|
|
79
|
+
airports: createAirportResolver({ data: airports.records }),
|
|
80
|
+
navaids: createNavaidResolver({ data: navaids.records }),
|
|
81
|
+
fixes: createFixResolver({ data: fixes.records }),
|
|
82
|
+
airways: createAirwayResolver({ data: airways.records }),
|
|
83
|
+
procedures: createProcedureResolver({ data: procedures.records }),
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
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.
|
|
88
|
+
|
|
53
89
|
## API
|
|
54
90
|
|
|
55
91
|
### `createFlightplanResolver(options)`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squawk/flightplan",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Flight plan route string parsing and resolution using composed navigation resolvers",
|
|
6
6
|
"author": "Neil Cochran",
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
".": {
|
|
22
22
|
"types": "./dist/index.d.ts",
|
|
23
23
|
"import": "./dist/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./browser": {
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"import": "./dist/index.js"
|
|
24
28
|
}
|
|
25
29
|
},
|
|
26
30
|
"files": [
|
|
@@ -29,25 +33,26 @@
|
|
|
29
33
|
],
|
|
30
34
|
"scripts": {
|
|
31
35
|
"build": "tsc",
|
|
32
|
-
"test": "
|
|
36
|
+
"test": "vitest run",
|
|
37
|
+
"test:coverage": "vitest run --coverage",
|
|
33
38
|
"lint": "tsc --noEmit && eslint src",
|
|
34
39
|
"lint:pack": "publint && attw --pack . --profile esm-only"
|
|
35
40
|
},
|
|
36
41
|
"dependencies": {
|
|
37
|
-
"@squawk/geo": "^0.4.
|
|
38
|
-
"@squawk/types": "^0.7.
|
|
42
|
+
"@squawk/geo": "^0.4.2",
|
|
43
|
+
"@squawk/types": "^0.7.2"
|
|
39
44
|
},
|
|
40
45
|
"devDependencies": {
|
|
41
|
-
"@squawk/airport-data": "^0.7.
|
|
42
|
-
"@squawk/airports": "^0.
|
|
43
|
-
"@squawk/airway-data": "^0.5.
|
|
44
|
-
"@squawk/airways": "^0.
|
|
45
|
-
"@squawk/fix-data": "^0.6.
|
|
46
|
-
"@squawk/fixes": "^0.
|
|
47
|
-
"@squawk/navaid-data": "^0.6.
|
|
48
|
-
"@squawk/navaids": "^0.
|
|
49
|
-
"@squawk/procedure-data": "^0.
|
|
50
|
-
"@squawk/procedures": "^0.
|
|
46
|
+
"@squawk/airport-data": "^0.7.2",
|
|
47
|
+
"@squawk/airports": "^0.6.0",
|
|
48
|
+
"@squawk/airway-data": "^0.5.2",
|
|
49
|
+
"@squawk/airways": "^0.4.0",
|
|
50
|
+
"@squawk/fix-data": "^0.6.2",
|
|
51
|
+
"@squawk/fixes": "^0.3.0",
|
|
52
|
+
"@squawk/navaid-data": "^0.6.2",
|
|
53
|
+
"@squawk/navaids": "^0.4.0",
|
|
54
|
+
"@squawk/procedure-data": "^0.7.1",
|
|
55
|
+
"@squawk/procedures": "^0.5.0",
|
|
51
56
|
"@types/node": "^25.6.0"
|
|
52
57
|
},
|
|
53
58
|
"keywords": [
|