Skip to content

Latest commit

 

History

614 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ダイススペック

概要

どういうアプリ?

TRPGのちょっとしたツールをまとめたようなアプリです。現在は以下のような機能を備えています。

  • ダイス予測
    • ダイスの期待値や確率を計算します
  • ダイスロール
    • シンプルなダイスロールおよびBCDiceを使ったダイスロールができます
  • ログ解析
    • ココフォリアのルームログからダイスの出目を解析します (クトゥルフ神話TRPG 6版・7版 二のみ対応)
  • ココフォリア出力
    • ココフォリアのキャラ出力形式をビジュアルで編集できます

機能追加のリクエストはサポート用のDiscordサーバーまでお願いします。

環境セットアップ

必要なもの: Node.js、pnpm

pnpm install
pnpm dev

依存パッケージの監査

pnpm audit で残る警告の大半は、next-pwa、Sentry、OpenNext などの開発・ビルド用推移依存です。 直接依存の互換更新と protobufjs の修正版への固定は行っていますが、上流が要求する版を越えた強制 override は互換性を壊すため行いません。 依存元が修正版を採用した時点で通常の pnpm update により解消します。

リポジトリの設計

ディレクトリ構成

src
├── app       # Next.jsのルート、画面固有UI、機能の組み立て
├── features  # 機能ごとのドメインロジックと外部サービス連携
├── shared    # 機能に依存しないUI、ライブラリ、基盤コード
└── test      # 複数のテストから使う補助コード

app はルーティングと機能の組み立てを担当します。 画面内だけで完結する表示状態とコンポーネントは、対象ルートの _components に置きます。

features はログ解析、期待値計算、アカウント、プロフィール、Stripeなどの機能単位で分けます。 計算規則、永続化、外部APIとの契約は、利用する画面ではなく所有する機能に置きます。

shared は特定機能を知らないコードだけを置きます。 Firebaseの初期化や汎用UIは含みますが、ユーザー購読や解析保存などの機能固有処理は含みません。

依存方向

依存方向は app -> features -> shared を基本とします。

  • app は features と shared を利用できます。
  • features は shared を利用できますが、app を参照できません。
  • shared は app と features を参照できません。
  • 機能間の依存は、account や profile のように複数機能を調整する処理に限定します。

この依存方向と循環依存は Oxlint で検査します。 機能ロジックを変更するときは、同じディレクトリに正常系と異常系のテストを追加します。

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages