fuzzy-stations
v1.0.0
Published
Fast fuzzy search for UK rail stations with cleansed NLC, CRS, and name data
Maintainers
Readme
fuzzy-stations
Fast fuzzy search for UK rail stations. Cleansed and optimized from NLC/CRS/name data.
Install
From npm (once published)
npm install fuzzy-stationsFrom this folder (local development)
npm install /path/to/FuzzyStationsNPMOr inside your project:
npm install ../FuzzyStationsNPMOr link it while developing:
cd /path/to/FuzzyStationsNPM
npm link
cd /path/to/your-project
npm link fuzzy-stationsUsage
ESM (Node 18+, recommended)
import { searchStations, stationSearch, createStationSearch } from "fuzzy-stations";
// Fuzzy search by name, CRS, or NLC
const results = searchStations("paddington");
console.log(results[0].station.name); // "London Paddington"
console.log(results[0].score); // 0.95+
// Exact lookups
stationSearch.findByCrs("PAD");
stationSearch.findByNlc("3087");
stationSearch.findAllByCrs("CLJ"); // handles duplicate CRS entries
// Options
searchStations("boundary zone", { includeNonStations: true });
searchStations("clapham", { limit: 5, minScore: 0.5, types: ["rail"] });Import the raw dataset
import stations from "fuzzy-stations/data";TypeScript
Types are included. No @types package needed.
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext"
}
}Quick console test
npm run build
node --input-type=module -e "import { searchStations } from 'fuzzy-stations'; console.log(searchStations('PAD'));"API
| Export | Description |
|--------|-------------|
| searchStations(query, options?) | Fuzzy search (default instance) |
| stationSearch | Default search index |
| createStationSearch(options?) | Create a custom search index |
| stations | Full cleansed dataset |
Package contents
Published tarball includes:
dist/— compiled ESM + TypeScript declarationsdata/stations.json— cleansed station dataset
License
MIT
