JavaScript コードをブックマークレットコードに変換する「Bookmarkletify」を作った

ブックマークレットを作る時、エディタで JavaScript コードを書き、それを難読化して縮めつつ、先頭に javascript: とプロトコルを記載したり即時関数で囲んだりする。コレを自動化するツールを作った。その名も @neos21/bookmarkletify

既に類似パッケージは存在するのだが、自分が思ったようなモノがなかったので自作した。

npm でグローバルインストールして、JavaScript ファイルを渡してみたり、コマンドの後ろに直接 JavaScript コードを書いてみたりすると、ブックマークレット化したコードを出力してくれる。

$ npm install -g @neos21/bookmarkletify

$ bookmarkletify --input ./my-file.js
$ bookmarkletify "console.log('Test');"

こんな感じで使える。

内部的には uglify-es で難読化しているだけ。あとは javascript:(() => { })(); という体裁を常に保つため、即時関数ごと渡された場合も、素のコードを渡された場合も、上手く処理している。

とりあえずこんな感じでいいかなー。