雙峰祭オンラインシステムのクライアントです。
.env.example
を参考にFirebase・バックエンドURLを設定します。
npm i
で依存関係がインストールされます。
npm run dev
で開発用サーバが起動します。
npm run build
でビルドできます
Cloudflare Pagesにデプロイする場合はnpx @cloudflare/next-on-pages@1
で静的アセットを生成できます。
import { assignType } from "@/lib/openapi";
const newsId = "<uuid>";
const { data: newsRes, error: newsErr, isLoading } = useSWR(`/news/${newsId}`);
if (isLoading) {
// 読み込み時の処理
}
if (newsErr) {
// エラー時の処理
}
const news = assignType("/news/{news_id}", newsRes);
path parametersはurlに文字列として直接埋め込みます。
assignType
には、openapiで定義されているパスとnewsRes
を渡します。
openapi-fetchを使います。
GitHub Actionsを手動実行することでベータをデプロイできます。
schema.ymlを更新したのち、以下のコマンドを実行してください
npm run gen
npm run format
現在はopenapi-typescriptのバグ( openapi-ts/openapi-typescript#1464 )により、正しい型定義が生成されません。そのため、以下のコマンドを実行して型定義を修正してください。
sed -i '/type: "FormItem";/d' ./src/schema.d.ts
sed -i '/type: "NewFormItem";/d' ./src/schema.d.ts
sed -i 's/Omit<components\["schemas"\]\["FormItemKind"\], "type">/components["schemas"]["FormItemKind"]/' ./src/schema.d.ts