3.2.6 • Published 3 years ago

js-kmb-api v3.2.6

Weekly downloads
6
License
MIT
Repository
-
Last release
3 years ago

Node.js module for getting bus information of KMB

This is a node.js module for getting bus service information of KMB routes. It can get routes, stops, variants, and ETAs.

Try it out in RunKit

Example Usage

Loading the library

// import the library class
const Kmb = require('js-kmb-api').default;

// create an API instance using the default setting
const kmb = new Kmb;

// create an API instance with caching in the browser
// It's recommended to use localStorage to cache stops, and sessionStorage to cache stop routes
// because stop names do not change often and are reloaded automatically
const kmb = new Kmb('en', localStorage, sessionStorage);

Using the library

Refer to the example-javascript.js or example-typescript.ts files for the following example in a runnable form.

// Load the forward route of 104
const route = (await kmb.getRoutes('104')).find(route => route.bound === 1);
if (route === undefined) {
    throw new Error('route is not found');
}

// load the main variant
const variant = (await route.getVariants()).sort((a, b) => a.serviceType - b.serviceType)[0];
if (variant === undefined) {
    throw new Error('No variants are found');
}

// Load the stop list of the main variant
const stoppings = await variant.getStoppings();

// Find a stop called "Immigration Tower"
const stopping = stoppings.find(stopping => stopping.stop.name === 'Immigration Tower');
if (stopping === undefined) {
    throw new Error('Stop is not found');
}

// Get the ETA there
const etas = await stopping.getEtas();
console.log(etas);

// Get the stoppings of all other routes for that stop
const stoppings_at_immigration_tower = await stopping.stop.getStoppings();
console.log(stoppings_at_immigration_tower);

To run the example, use

node example-javascript.js # Javascript example
ts-node example-typescript.ts # Typescript example
3.2.6

3 years ago

3.2.5

3 years ago

3.2.4

4 years ago

3.2.3

4 years ago

3.2.2

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0-beta.9

4 years ago

2.0.0-beta.10

4 years ago

2.0.0

4 years ago

2.0.0-beta.8

4 years ago

2.0.0-beta.7

4 years ago

2.0.0-beta.6

4 years ago

2.0.0-beta.5

4 years ago

2.0.0-beta.4

4 years ago

2.0.0-beta.3

4 years ago

2.0.0-beta.2

4 years ago

2.0.0-alpha.3

4 years ago

2.0.0-beta.1

4 years ago

2.0.0-alpha.2

4 years ago

2.0.0-alpha.1

4 years ago

2.0.0-alpha.0

4 years ago