insa-hafas

1.0.1 • Public • Published

insa-hafas

A client for the public transport authority Nahverkehr Sachsen-Anhalt (NASA)/INSA. It acts as a consistent and straightforward interface on top of a verbose API.

This project is actually a thin wrapper around hafas-client@5. Its docs document the API in general.

npm version build status ISC-licensed minimum Node.js version chat on gitter support Jannis via GitHub Sponsors

Installing

npm install insa-hafas

API

Check the docs for hafas-client@5 as well as its INSA-specific customisations.

Usage

const hafas = require('insa-hafas')

As an example, we will search for a route from Berlin Jungfernheide to München Hbf. To get the station IDs, use locations(query, [opt]).

client.journeys('8011167', '8000261', {results: 1})
.then(({journeys}) => console.log(journeys[0]))
.catch(console.error)

The output will be an array of journey objects in the Friendly Public Transport Format 1.2.1 format:

{
    type: 'journey',
    legs: [{
        mode: 'walking',
        public: true
 
        origin: {
            type: 'station',
            id: '8010226',
            name: 'Magdeburg-Neustadt',
            location: {
                type: 'location',
                latitude: 52.148842,
                longitude: 11.641705
            },
            products: {
                nationalExp: true,
                national: true,
                regional: true,
                suburban: true,
                bus: true,
                tram: true,
                tourismTrain: true
            }
        },
        departure: '2018-03-14T03:01:00.000+01:00',
        plannedDeparture: '2018-03-14T03:01:00.000+01:00',
        departureDelay: null,
 
        destination: {
            type: 'station',
            id: '7368',
            name: 'Magdeburg, S-Bahnhof Neustadt (Tram)',
            location: { /* … */ },
            products: { /* … */ }
        },
        arrival: '2018-03-14T03:06:00.000+01:00',
        plannedArrival: '2018-03-14T03:06:00.000+01:00',
        arrivalDelay: null,
    }, {
        tripId: '1|86821|1|80|14032018',
        direction: 'Alter Markt',
        line: {
            type: 'line',
            id: 'n8',
            name: 'N8',
            public: true,
            product: 'tram',
            mode: 'train',
            operator: {
                type: 'operator',
                id: 'magdeburger-verkehrsbetriebe',
                name: 'Magdeburger Verkehrsbetriebe'
            }
        },
 
        origin: {
            type: 'station',
            id: '7368',
            name: 'Magdeburg, S-Bahnhof Neustadt (Tram)',
            location: { /* … */ },
            products: { /* … */ }
        },
        departure: '2018-03-14T03:06:00.000+01:00',
        plannedDeparture: '2018-03-14T03:05:00.000+01:00',
        departureDelay: 60,
        departurePlatform: null,
        plannedDeparturePlatform: null,
 
        destination: {
            type: 'station',
            id: '7333',
            name: 'Magdeburg, Alter Markt',
            location: { /* … */ },
            products: { /* … */ }
        },
        arrival: '2018-03-14T03:12:00.000+01:00',
        plannedArrival: '2018-03-14T03:12:00.000+01:00',
        arrivalDelay: 0,
        arrivalPlatform: '2a',
        plannedArrivalPlatform: '1',
 
        alternatives: [{
            line: {
                type: 'line',
                id: 'str-n8',
                name: 'Str N8',
                public: true,
                product: 'tram',
                mode: 'train'
            },
            when: '2018-03-14T04:06:00.000+01:00'
        }]
    } /* … */ ]
}

Related

Check hafas-client's related libs.

Contributing

If you have a question, found a bug or want to propose a feature, have a look at the issues page.

Package Sidebar

Install

npm i insa-hafas

Weekly Downloads

0

Version

1.0.1

License

ISC

Unpacked Size

8.07 kB

Total Files

7

Last publish

Collaborators

  • derhuerst