本文へ移動
rdlabo.devdocs

API

公開exportをimportパスごとに示します。完全なジェネリック型のシグネチャはインストール済みのTypeScript宣言を参照してください。寿命と再試行の動作はランタイムから確認できます。

@rdlabo/workers-mysql

function createHyperdriveDatabase

{ primaryHyperdrive, replicaHyperdrive, createOrm, connectionOptions? } を受け取り HyperdriveDatabase<TDrizzle> を返します。read<Row> はreplica、query<Rows>readTransaction はprimaryを使います。writetransaction はアプリのORMコールバックをawaitします。dispose は何もしません。

function createMysqlDatabase

{ orm, replica } を受け取り Database<TDrizzle> を返します。既存ハンドルは呼び出し元が所有します。databaseFrom(orm, replica) は位置引数版です。

function hyperdriveConnectionOptions

hyperdriveConnectionOptions(hyperdrive, extra?) は構造的な HyperdriveLike bindingからmysql2設定を作ります。既定値はDrizzleと日付を参照してください。

function withMysqlConnections

withMysqlConnections({ primary, replica }, ctx, fn, connectionOptions?) は両接続を開き、fn({ primary, replica }) をawaitします。ctx は互換性用で、明示的な解放には使いません。

function retryWhenDeadlock

retryWhenDeadlock(fn, retries = 3, delay = 100) はラップされたcauseを含む ER_LOCK_DEADLOCK を再試行します。retries は最大試行回数、待機時間は delay ミリ秒ずつ線形に増加します。他の例外は再throwします。コールバック全体が再実行され得ます。

書き込み結果と日付

insertIdOfaffectedRowsOfinsertedIdsOf はmysql2/Drizzleの書き込み結果を抽出します。MYSQL_TIMEZONEtoJstDatejstTimestampParamsjstDatetimeParamsjstDateParams は独立した固定JST通信契約を実装します。

公開型:DatabaseDisposableDatabaseHyperdriveDatabaseReadTransactionQueryRunnerTxOfCreateMysqlDatabaseOptionsCreateHyperdriveDatabaseOptionsConnectionPoolHyperdriveLikeExecutionContextLikeDzWriteResult

@rdlabo/workers-mysql/drizzle

任意のDrizzle peerが必要です。jstTimestampjstDatetimejstDatejstOnUpdateNowDRIZZLE_ORM_OPTIONSworkersDrizzleConfigresolveDbSecret をexportします。型は WorkersDrizzleConfigOptionsResolvedDbSecret です。honoDrizzleConfigHonoDrizzleConfigOptions は非推奨の互換名です。設定・secret解決はNode.jsツール用、カラムヘルパーはWorkerスキーマ用です。

@rdlabo/workers-mysql/migrations

Node.js専用の baselineMigrationsreadBaselineEntryresolveDbSecret と、型 BaselineMigrationsOptionsBaselineResultBaselineEntryResolvedDbSecret をexportします。移行とテストの安全条件を確認してください。

@rdlabo/workers-mysql/testing

Node.jsテスト用の createTestDbcreatePoolDatabasecreateNoopDatabase を提供します。型は TestDbCreateTestDbOptionsTestDbConnectionCreatePoolDatabaseOptionsDatabaseDisposableDatabaseQueryRunnerTxOf です。

@rdlabo/workers-mysql/baseline-cli

runBaselineCli(): Promise<void> は引数と環境変数を使ってbaselineを実行します。シェルでは同梱の workers-mysql-db-baseline を使ってください。