たかぎとねこの忘備録

プログラミングに関する忘備録を自分用に残しときます。マサカリ怖い。

Remix

1つのPostgreSQLコンテナに複数のデータベースを作成して、複数のアプリケーションからアクセス可能にしてみる

docker-composeでPostgreSQLコンテナを立ち上げる。docker-compose.ymlの内容は次のような感じで、Ktorプロジェクトのルートディレクトリに作成する。 version: "3.7" services: postgres: image: 'postgres:13' container_name: takagimeow-postgres restar…

React Native用にRemixのuseActionDataもどきを作ってみる話

僕がWebアプリを開発するときはもっぱらRemixフレームワークを利用する。 remix.run 理由は単純で、loader関数とaction関数の考え方が大好きだからだ。 React Nativeのアプリの開発をするときも、Remixのloader関数とaction関数を使いたい。 しかし、そんな…

Google OAuth2.0認証時に取得したアクセストークンの有効期限が切れてしまい、Google APIにアクセスできなくなったときの対処法

remix-authとremix-auth-googleを使ってRemixアプリケーションでGoogleアカウントでのログインを実装するとaccessTokenとrefreshTokenを取得することができる。 今まではaccessTokenのみにしか注目しておらず、refreshTokenについては全く触らずに開発を行な…

@remix-run/reactからエクスポートされているコンポーネントを含んだコンポーネントをテストする場合のTips

@testing-library/reactのrenderメソッドを使用してコンポーネントをテストするときに、その対象のコンポーネントが内部で@remix-run/reactパッケージから<Link />コンポーネントや<Form />コンポーネントをインポートしている場合に、次のようなエラーが発生した。 ... Cons</form></link>…

PlanetScaleにPrismaを接続する際のschema.prismaの書き方

PlanetScaleでは外部キー制約をサポートしていない。 PlanetScale doesn't support FOREIGN KEY constraints. docs.planetscale.com そしてPrismaのドキュメントの外部キーに対するインデックスの作成に関する部分を見ていたら次の文章を見つけた。 One issu…

GitHub Actionsでテスト用のジョブを動かした時に`Process completed with exit code 139.`エラーが発生した場合の対処法

GitHub Actionsでテスト用のジョブを動かしていた時に、全てのテストが成功しているにもかかわらず、次のようなエラーが発生してジョブが失敗したことになってしまった Segmentation fault (core dumped) 97 Error: Process completed with exit code 139. T…

Remixでfetcher.submitの完了と同時に画面が再読み込みされてしまう問題を解決する

今回、Remix Stacksが登場する以前にnpx create-remixで作成したプロジェクトをRemix Blues Stackに移行させる過程で発生した問題についての対処法をまとめておく。 TL;DR github.com 問題が発覚するまでの時系列 現在開発中のプロジェクトを立ち上げたとき…

Remix AuthにおけるStrategyのsuccessメソッドを呼び出してもセッションデータが保存されない問題を解決する

Remix Authとは Remixにサーバーサイドでの認証を組み込みたいときに便利なのがremix-authというパッケージです。 このパッケージはPassport.jsからとても強い影響を受けていて、ストラテジーベースの認証を提供しています。 github.com カスタムストラテジ…