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:(() => { })();
という体裁を常に保つため、即時関数ごと渡された場合も、素のコードを渡された場合も、上手く処理している。
とりあえずこんな感じでいいかなー。