-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add: デフォルトエンジンかつVVPPが設定できるよう型と実装を変更 #2242
The head ref may contain hidden characters: "vvpp\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u30A8\u30F3\u30B8\u30F3\u30CB\u6307\u5B9A\u53EF\u80FD\u306B\u3059\u308B"
Conversation
正直、設計がこれでいいのか若干自信がないです。 もっと先まで作ってからプルリクエストにする手もあるかも。 @sevenc-nanashi もしよかったら見ていただけると 🙇 |
|
||
## マルチエンジン | ||
|
||
エンジンの追加は VVPP ファイルをインストールする形と、エンジンディレクトリのパスを指定する形があります。 | ||
|
||
| | VVPP | パス | | ||
| -------------------- | ------------------------------------ | ----------------------------------- | | ||
| `EngineInfo`の`type` | `"vvpp"` | `"path"` | | ||
| 追加時の処理 | zipファイルを所定のフォルダに展開 | エンジンのパスを`config.json`に保存 | | ||
| 読み込み時の処理 | 所定のフォルダ内にあるものを読む | `config.json`に保存されたパスを読む | | ||
| 削除時の処理 | 所定のフォルダ内のディレクトリを削除 | `config.json`からパスを削除 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vvppとpathで保存形式が違っていてちょっとややこしかったのでまとめてみました。
const engineInfos = await window.backend.engineInfos(); | ||
let engineInfos = await window.backend.engineInfos(); | ||
|
||
// マルチエンジンオフモード時はengineIdsをデフォルトエンジンのIDだけにする。 | ||
let engineIds: EngineId[]; | ||
// マルチエンジンオフモード時はデフォルトエンジンだけにする。 | ||
if (state.isMultiEngineOffMode) { | ||
engineIds = engineInfos | ||
.filter((engineInfo) => engineInfo.type === "default") | ||
.map((info) => info.uuid); | ||
} else { | ||
engineIds = engineInfos.map((engineInfo) => engineInfo.uuid); | ||
engineInfos = engineInfos.filter((engineInfo) => engineInfo.isDefault); | ||
} | ||
const engineIds = engineInfos.map((engineInfo) => engineInfo.uuid); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
マルチエンジンオフモードの時はデフォルトエンジンだけにするのですが、
engineIds
はフィルタしてengineInfos
はフィルタしない設計だったことに気づいたので、ついでにどっちもフィルタするようにしてみました。
大丈夫だと思います。気をつけるべきとしてはデフォルトエンジンを消し飛ばす(エンジン管理画面からとか)ことができないことを確かめる、とかですかね? |
レビューありがとうございます!!! 心強いです 🙇
ですね! 一応このPRではデフォルトのは消せないのを確かめ済みです。 あとは・・・デフォルトエンジンと同じIDを持つvvppをインストールできてしまう、とかがあり得るかも。 |
内容
の下準備です。
今の形だと、デフォルトエンジンだった場合
type: "vvpp"
を指定できませんでした。(typeの型が"default" | "vvpp" | "path"
)このままだとデフォルトエンジンかつVVPPが指定できず、色々共通化とかで不便な気がしたので、
isDefault
プロパティにしてみました。関連 Issue
その他
とりあえず既存エンジンもVVPP経由で追加できることや、デフォルトエンジンできないことは確認しました。
将来、普通のVVPP追加エンジンと、VVPPでインストールされたデフォルトエンジンが混じりそうですが、これはデフォルトエンジンがインストールされるVVPPのディレクトリと、普通に追加されたVVPPディレクトリを分けることで解決できる気がしてます。