Get started by installing the package with npm
or yarn
:
$ npm install sncfconnect.js # or yarn add sncfconnect.js
The package is typescript ready, so you can use it with typescript or javascript. You decide!
import Client from "sncfconnect.js";
const client = new Client({
// Here you can pass userAgent. if you don't, one will be generated for you :)
});
(async () => {
// The package is promise based, so you can use async/await or .then()
const station = await client.searchStation("Genève Cornavin")
const geneva = station.places.transportPlaces[0];
// We get the first result :
const genevaId = geneva.id;
// We get the station boards :
const boards = await client.getStationBoards(genevaId);
// Now, we get the board for the first train in the first line :
const board = boards.boardsByLineId[boards.station.lines[0].id];
// We get the first train :
const train = board.mainLineBoards.departuresBoard.items[0];
// We get the journey details :
const journey = await client.getTraject(train.vehicleDetails.request);
// And now we have everything we need !
console.log(`The next train is going to ${train.vehicleDirection.mainDirectionLabel}. It will leave on ${train.vehicleDetails.request.date} at ${train.timeLabel} from platform ${train.platformLabel}.`);
console.log("Stops :");
console.log(journey.lineDetailStops.map(stop => `${stop.locationLabel} at ${stop.timeLabel} (${stop.semanticDurationLabel != "" ? stop.semanticDurationLabel : "Unknown stop duration"})`).join("\n"));
})()
It's as easy - and everything is typed!
No documentation for now, but you can check the types and the source code to see what you can do with the package.
Contributions are welcome! Feel free to open an issue or a pull request.
This project is licensed under the MIT License.
- THIS PACKAGE IS NOT AFFILIATED WITH SNCF IN ANY WAY.
- Made by @justekoro with ❤️
This package is not affiliated with SNCF in any way. It's a reverse-engineered API, so it can break at any time. Use it at your own risk.
If you like this package, you can donate to me using :
- ETH:
0x3173F2bE428F53E03cFDC5A9FBaA02d89b0cBdc8
- SOL:
koroAXzMAq6mkgRyjdUhWZiFHJ9SjsjtqTdybGbtPRN
- XMR:
48yNudxH1acdS7mmHrP24bPpHU6vbfjAGZyVXUt8hLYjW3HyG4go8WDF5jAboFjrJpdq6xQBjKnk1Rps5PNKkEJrPRaBk3n
Thanks a lot! ❤️