「grapheme-breaker-mjs JavaScript sample」
結合絵文字も正しく書記素の分解、できてます。
CoffeeScriptは、Pythonのようにインデントでブロックを表記するJavaScriptを出力する言語。coffee -c コマンドで、JavaScriptファイルが生成されるので、それを元にブラウザでも動作するES Module対応を進めました。 requireをimportに、使用しているライブラリも含めて js から mjs への書き換え。mochaを使ったテストも通りました。ブラウザで動作させたところ、Node.js とブラウザ上の動作の違いである、Bufferとbase64の扱いの違いに気が付き、対応して完了。
「taisukef/grapheme-breaker-mjs: A JS implementation of the Unicode grapheme cluster breaking algorithm (UAX #29)」
サーバーでもクライアントでも使えるライブラリのできあがりです!
GitHub pages は、gzipで自動的に圧縮されている模様、240KBあっても16KB程度に圧縮されるので、実際は大差なかったかも。base64ではなくバイナリファイル化してファイル数を減らす方が効果ありかもしれません。