技術とかの雑なToday I Learnedメモ

JXAをTypeScriptで書く

JXAをTypeScriptで書く

JXAに入門したはいいものの、スクリプトエディタの使い心地はとても悪いので、VS Codeで書きたい。TypeScriptも使いたい。というのを叶えてくれるライブラリがあった。

JXAをTypeScriptでコード補完して書く環境やNode.jsから実行する環境を作った | Web Scratch

JXA for TypeScript/Node.js

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

applescript - How to interact with controls in a pane with Javascript for Automation (Yosemite) - Stack Overflow

ここらへんを参考にしている。