Skip to content

Kai-Z-JP/gtfs-jp-ts

Repository files navigation

@gtfs-jp

GTFS-JP v4 を TypeScript で扱うためのライブラリ群です。ブラウザ上で GTFS-JP ZIP を SQLite WASM に取り込み、型安全にデータを読み書きできます。

Packages

パッケージ 概要
@gtfs-jp/types GTFS-JP v4 全33テーブルのスキーマ定義と TypeScript 型
@gtfs-jp/loader Browser SQLite WASM (in-memory / OPFS) によるZIPインポートとクエリ

Quick Start

npm install @gtfs-jp/types @gtfs-jp/loader

Vite の設定

Vite を使う場合は、SQLite WASM ファイルが正しく配置されるよう gtfsLoaderPlugin を追加してください。

// vite.config.ts
import { defineConfig } from 'vite';
import { gtfsLoaderPlugin } from '@gtfs-jp/loader/vite';

export default defineConfig({
  plugins: [gtfsLoaderPlugin()],
});

基本的な使い方

import { createGtfsLoader } from '@gtfs-jp/loader';

const loader = createGtfsLoader({ storage: 'memory' });
await loader.open();

// GTFS-JP ZIP をインポート
await loader.importZip(file);

// Kysely で型付きクエリ
const routes = await loader.db().selectFrom('routes').selectAll().limit(100).execute();
// routes[0].route_id, routes[0].route_type ... 全て型付き

await loader.close();

API 概要

GtfsLoader が提供する主なメソッド:

メソッド 説明
open() SQLite セッションを開く
close(options?) セッションを閉じる。{ unlink: true } で OPFS ファイルを削除
reset() データベースをリセット(close + open)
importZip(file, options?) GTFS-JP ZIP をインポート。options.onProgress で進捗を取得可能
validate() 必須テーブルの存在を検証し GtfsValidationResult を返す
listTables() インポート済みテーブル名の一覧を返す
listGtfsTables() GTFS-JP テーブル名のみに絞った一覧を返す
hasTable(name) 指定テーブルが存在するか確認する
db() Kysely インスタンスを返す(型安全クエリ用)

サブパスエクスポート

エクスポート 内容
@gtfs-jp/loader createGtfsLoaderdefineGtfsSchemaderivedTable など主要 API
@gtfs-jp/loader/vite Vite プラグイン(gtfsLoaderPlugin
@gtfs-jp/loader/kysely Kysely 型定義(GtfsDatabaseKyselyDatabaseFromLoader など)

Apps

ディレクトリ 概要
apps/demo @gtfs-jp/loader を使ったブラウザ UI サンプル

Development

pnpm install
pnpm build
pnpm test

pnpm install 後は Husky の pre-commit hook が有効になり、staged な js / ts / tsx / json / md / yml / yaml / css / html ファイルに Prettier が自動実行されます。

GitHub Actions では main 向けの push / pull_request ごとに pnpm format:checkpnpm lintpnpm typecheckpnpm test を実行します。

License

MIT

About

GTFS-JP v4 を TypeScript で扱うためのライブラリ群です。ブラウザ上で GTFS-JP ZIP を SQLite WASM に取り込み、型安全にデータを読み書きできます。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors