@squawk/types
v0.8.6
Published
Shared TypeScript type definitions for the @squawk aviation libraries
Maintainers
Readme
Shared TypeScript type definitions used across multiple @squawk packages. Contains types for core domain models that cross the logic/data/build-script boundary: aircraft, position, airports, navaids, fixes, airways, procedures, airspace, and aircraft registration.
Domain-specific types that are produced and consumed by a single package live in that package instead:
- Weather types (METAR, TAF, SIGMET, AIRMET, PIREP) are exported by
@squawk/weather - NOTAM types (ICAO and FAA domestic) are exported by
@squawk/notams
Part of the @squawk aviation library suite. See all packages on npm.
Installation
npm install @squawk/typesUsage
import type { Aircraft, Position, Airport, Navaid, Fix } from '@squawk/types';All types are re-exported from the package root. See the documentation for the full reference.
Exported types by domain
| Domain | Types |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aircraft (ADS-B) | Aircraft, AircraftCategory |
| Position | Position, Coordinates |
| Airport | Airport, Runway, RunwayEnd, IlsSystem, AirportFrequency, FacilityType, OwnershipType, FacilityUseType, FacilityStatus, SurfaceCondition, SurfaceTreatment, RunwayLighting, RunwayMarkingType, RunwayMarkingCondition, VgsiType, IlsCategory, IlsSystemType |
| Navaid | Navaid, NavaidType, NavaidStatus |
| Fix | Fix, FixUseCode, FixCompulsory, FixNavaidAssociation |
| Airway | Airway, AirwayWaypoint, AirwayType, AirwayRegion, AirwayWaypointType |
| Airspace | AirspaceFeature, AirspaceType, ArtccStratum, AltitudeBound, AltitudeReference |
| Procedure | Procedure, ProcedureType, ApproachType, ProcedureLeg, ProcedureLegPathTerminator, ProcedureLegFixCategory, ProcedureTransition, ProcedureCommonRoute, MissedApproachSequence, AltitudeConstraint, AltitudeConstraintDescriptor, SpeedConstraint, SpeedConstraintDescriptor, TurnDirection |
| Aircraft registration | AircraftRegistration, AircraftType, EngineType |
The package also re-exports source-code lookup maps (FACILITY_TYPE_MAP, NAVAID_TYPE_MAP, AWY_TYPE_MAP, ATS_TYPE_MAP, AIRWAY_REGION_MAP, FIX_USE_CODE_MAP, FIX_COMPULSORY_MAP, NAVAID_STATUS_MAP, ILS_CATEGORY_MAP, ILS_SYSTEM_TYPE_MAP) used by the FAA NASR build pipelines to translate raw source-data values to the typed unions above. See the TypeDoc reference for full per-type signatures and field-level documentation.
Type guards
For the user-facing string-literal union types - the ones that flow in from URL params, config files, or MCP tool inputs - the package ships an is<Name> predicate paired with a <NAME>S const array as the single source of truth. Use the predicate to narrow an external string into the union without hand-rolling the membership list per consumer; use the const array as the value-side iteration target (e.g. building a lookup table keyed by the union):
import {
AIRSPACE_TYPES,
ARTCC_STRATA,
FACILITY_TYPES,
AIRWAY_TYPES,
NAVAID_TYPES,
FIX_USE_CODES,
isAirspaceType,
isArtccStratum,
isFacilityType,
isAirwayType,
isNavaidType,
isFixUseCode,
} from '@squawk/types';
const raw = new URLSearchParams(window.location.search).get('type') ?? '';
if (isAirspaceType(raw)) {
// raw is now narrowed to AirspaceType
}The arrays are branded with as const satisfies readonly <Type>[], so adding a new union member without updating the array fails the build.
