JXAをTypeScriptで書く
JXAに入門したはいいものの、スクリプトエディタの使い心地はとても悪いので、VS Codeで書きたい。TypeScriptも使いたい。というのを叶えてくれるライブラリがあった。
JXAをTypeScriptでコード補完して書く環境やNode.jsから実行する環境を作った | Web Scratch
JXA-userland/JXA: JavaScript for Automation(JXA) packages for TypeScript/Node.js.
ありがたすぎる。
手元でTypeScriptの環境を整え、@jxa/global-typesや@jxa/runなどを使って簡単に書けるようになったしホットリロードもできるようになった。
TypeScriptのプロジェクト作成は、
Node.js & TypeScriptのプロジェクト作成 - TypeScript Deep Dive 日本語版
これをそのままやった。
実際に使ってみた結果、型定義に関してはどうしても足りないところがあったりするものの、だいぶ便利に書けるようになった。
特にVS Codeで書けるというのがすごい。
リファレンスの読みにくさから、TypeScriptで書けるようになってもだいぶ詰まっていたが、心持ちはだいぶ変わる。
実現したいもの
実際に実現したいものはこんな感じ。
toggle-night-shift/Toggle Night Shift.applescript at master · ravicious/toggle-night-shift
これをAppleScriptではなくJXAで書きたい。
convert AppleScript to JXAなライブラリはないかと思ったが、どうやらなさそう。
また、関数の呼び出し方などはリファレンスを見るより実際のコードを見たほうが理解が早かった(というか実際のコードを見ないと分からなかった)
JavaScript for Automation (JXA) | Toggle macOS Accessibility Keyboard
ここらへんを参考にしている。