butter-lib
Version:
BuTTER Library は、ストレージ上に細分化した状態で保存されているGTFSを基にした時刻表情報を集め、ブラウザ内で必要な情報に加工するライブラリです。DBを使わずにデータ処理をブラウザ内とする
106 lines (89 loc) • 4.06 kB
HTML
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<h1>Test</h1>
<script type="module">
import Butter from './dist.js';
const assertEqual = (actual, expected, message) => {
if (JSON.stringify(actual) !== JSON.stringify(expected)) {
throw new Error(message || `Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`);
}
};
const main = async () => {
await Butter.init('https://s-ogawa.app.takoyaki3.com/v0.0.0/root.json');
// getHostDataListの検証
const hostList = await Butter.getHostDataList();
console.log({ "getHostDataList": hostList });
assertEqual(hostList[0].VehiclePosition_url, 'https://api-public.odpt.org/api/v4/gtfs/realtime/ToeiBus')
assertEqual(hostList[0].gtfs_id, 'ToeiBus')
assertEqual(hostList[0].license, 'CC BY 4.0公開元:東京都交通局・公共交通オープンデータ協議会')
assertEqual(hostList[0].name, '東京都交通局')
assertEqual(hostList[0].providerUrl, 'https://api-public.odpt.org/api/v4/files/Toei/data/ToeiBus-GTFS.zip')
assertEqual(hostList[0].updatedAt, '2023-12-28T00_00_00+09_00')
// getAgencyInfoの検証
const agencyInfo = await Butter.getAgencyInfo('ToeiBus');
console.log({ "GetInfo": agencyInfo });
assertEqual(agencyInfo, [{
version_id: '2023-12-28T15_11_54+09_00',
by_stop_hash_value_size: 2,
by_trip_hash_value_size: 2
}], "Agency info should match expected data");
// getBusStopsの検証
const stops = await Butter.getBusStops('ToeiBus');
console.log({ "getBusStops": stops });
// stopsの詳細な検証(例:stops[0]の構造など)
// getTripsの検証
const trips = await Butter.getTrips('ToeiBus');
console.log({ "getTrips": trips });
// tripsの詳細な検証(例:trips[0]の構造など)
// getVersionInfoの検証
const versionInfo = await Butter.getVersionInfo('ToeiBus');
console.log({ "getVersionInfo": versionInfo });
// versionInfoの詳細な検証
// getStopsBySubstringの検証
const substring = "東京国際";
const stopsBySubstring = await Butter.getStopsBySubstring(substring);
console.log({ "getStopsBySubstring": stopsBySubstring });
// stopsBySubstringの詳細な検証
// getStopsWithinRadiusの検証
const lat = 35.693906;
const lon = 139.701504;
const radius = 100;
const aroundStops = await Butter.getStopsWithinRadius(lat, lon, radius);
console.log({ "getStopsWithinRadius": aroundStops });
// aroundStopsの詳細な検証
// getBusInfoの検証
const busInfo = await Butter.getBusInfo(lat, lon);
console.log({ "getBusInfo": busInfo });
// busInfoの詳細な検証
// fetchTimeTableV1の検証
const queryParams = {
date: "20231231",
stop_ids: ['0605-07']
};
const tt = await Butter.fetchTimeTableV1('ToeiBus', queryParams);
console.log({ "fetchTimeTableV1": tt },tt.stop_times.length);
assertEqual(tt.stop_times.length,18)
// getComsumedOpの検証
const consumedOps = Butter.getComsumedOp();
console.log({ "getComsumedOp": consumedOps });
// assertEqual(consumedOps, 11)
// getDataInfoの検証
const dataInfo = await Butter.getDataInfo('ToeiBus');
console.log({ "getDataInfo": dataInfo });
// dataInfoの詳細な検証
// getHostUpdatedの検証
const hostUpdated = await Butter.getHostUpdated();
console.log({ "getHostUpdated": hostUpdated });
// hostUpdatedの詳細な検証
const busStop = await Butter.getStopsForBusPassingThrough('ToeiBus','0955-01')
console.log({ "getStopsForBusPassingThrough": busStop });
};
main().catch(error => console.error(error));
</script>
</body>
</html>