Skip to content
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

refactor: createLoggerを少しリファクタリング #2489

Merged
merged 2 commits into from
Jan 17, 2025

Conversation

Hiroshiba
Copy link
Member

@Hiroshiba Hiroshiba commented Jan 16, 2025

内容

タイトルの通り、createLoggerを少しリファクタリングしました。

その他

本当はelectron環境問わずloggerを作れる関数を作りたかったんですが、フロントエンドでelectron-logをimportしようとするとエラーになる問題が解決できずに諦めました。。。
なにか解決策ないのかな。。

@Hiroshiba Hiroshiba requested a review from a team as a code owner January 16, 2025 18:09

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.

@voicevox-preview-pages
Copy link

voicevox-preview-pages bot commented Jan 16, 2025

🚀 プレビュー用ページを作成しました 🚀

更新時点でのコミットハッシュ:35f4cbf

@sevenc-nanashi
Copy link
Member

sevenc-nanashi commented Jan 16, 2025

フロントエンドでelectron-logをimportしようとするとエラーになる問題

require()で動的に読み込めば良さそう?
とは言っても一時凌ぎですが...(Electron側をESModuleにしようとした時に詰む)

@sevenc-nanashi
Copy link
Member

ESModuleにしても問題ないようにするなら、

https://github.com/KeJunMao/unplugin-preprocessor-directives

こういうのでビルド段階で処理するしかなさそう?

@Hiroshiba
Copy link
Member Author

助言助かります!!
やっぱりESModuleでなんか頑張る方法は簡単なのは無さそうなんですね〜
多少複雑になっても良いから、いつでもどこからでも作れるloggerあると便利そうではある・・・。

@sevenc-nanashi
Copy link
Member

sevenc-nanashi commented Jan 17, 2025

初回だけ遅れるのを許容すればdynamic importでいい感じにできると思います。

@Hiroshiba
Copy link
Member Author

たしかに!!
と思ったけど、asyncになっちゃうからトップレベルawaitできずちょっと不便かも。。。。。

@sevenc-nanashi
Copy link
Member

asyncになっちゃうからトップレベルawaitできずちょっと不便かも。。。。。

let electronLogOrNull;

const logInternal = (args) => {
  electronLogOrNull.log(args);
}

export const log = (args) => {
  if (electronLogOrNull) {
    logInternal(args);
  } else {
    void import("electron-log").then((l) => {
      electronLogOrNull = l;
      logInternal(args);
    });
  }
}

こういうイメージです

@Hiroshiba
Copy link
Member Author

なるほどです、なんかできそうな気がしてきますね!!
ログが前後しうるのはちょい危ないかも?

とりあえずこのPRマージしちゃえると良さそうかも。
その後気が向いたら実装挑戦してみます!

@sevenc-nanashi
Copy link
Member

ログが前後しうる

electron内では前後しないはず?electronLogOrNullに値が入ってからawait入れなければ他のスレッドに移らないはずなので

Copy link
Member

@sevenc-nanashi sevenc-nanashi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

良さそう。

@Hiroshiba Hiroshiba enabled auto-merge January 17, 2025 14:32
@Hiroshiba Hiroshiba added this pull request to the merge queue Jan 17, 2025
Merged via the queue into VOICEVOX:main with commit 8e4eb03 Jan 17, 2025
11 checks passed
@Hiroshiba Hiroshiba deleted the hiho-20250117-030855 branch January 17, 2025 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants