😗

Supabaseのデータベースのテーブル情報からtypes(型)を作成する

2022/11/28に公開

※2022年12月23日(日) 追記
SUPABASE CLI を使ったtype生成方法のドキュメントがあった
こっちのほうがドキュメントとして新しいみたい(たぶん)
https://supabase.com/docs/guides/api/generating-types

以下本文 -----
※2022年11月27日(日)
公式ドキュメント通りに実行してみたがエラー出たので、解決策をメモとして残しておく。

Generating types (公式ドキュメント)

https://supabase.com/docs/reference/javascript/typescript-support

実行してみる

% yarn openapi-typescript https://your-project.supabase.co/rest/v1/?apikey=your-anon-key --output types/supabase.ts
yarn run v1.22.19
✨ openapi-typescript 6.1.0
 ✘  Swagger 2.0 and older no longer supported. Please use v5.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

エラーが出る。
openapi-typescript 6系ではSwagger2.0以前をサポートしなくなったみたいで、5系を使えということらしい。確認してみると、18日前に 5系 - > 6系 に変わっていました。
https://www.npmjs.com/package/openapi-typescript

解決策

supabase のほうに合わせて、 openapi-typescript のバージョンを落とす。
package.json で5系のバージョンを指定して再インストール

{
  "dependencies": {
    # 略
  },
  "devDependencies": {
    "openapi-typescript": "5.4.1",
  }
}

インストールしなおし

$ yarn

出来た

% yarn openapi-typescript https://your-project.supabase.co/rest/v1/?apikey=your-anon-key --output types/supabase.tssrc/types/supabase.ts
yarn run v1.22.19
✨ openapi-typescript 5.4.1
🚀 ********************** -> /path/to/project/types/supabase.ts [393ms]
✨  Done in 1.58s.

Discussion