日本政府、経済産業省(経産省)から「IMI 情報共有基盤 コンポーネントツール」が発表されました。
5つ星オープンデータの語彙を定める「共通語彙基盤IMI」に関連したオープンソースなJavaScriptで作られたツール群です。
Node.js を前提に作られていますが、ブラウザや Deno で動かしたいので、ひとまず簡単そうな「全角-半角統一コンポーネント」を移植。インストール不要で下記のようにすっきり使えるものができました!(src on GitHub)
$ cat > main.mjs import IMIMojiConverter from "https://code4sabae.github.io/imi-moji-converter-es/IMIMojiConverter.mjs"; console.log(IMIMojiConverter.toHalfWidth("あかさたな0123456789")); console.log(IMIMojiConverter.toFullWidth("アカサタナ0123456789")); $ deno run main.mjs あかさたな0123456789 アカサタナ0123456789
ブラウザからはこの main.mjs をESモジュールとして読み込めば動きます
<script type="module" src="main.mjs"></script>
ブラウザ用の記述と、コンソール上のDeno、同じコードで動くのが、ESモジュールのいいところ!全角や半角という言葉をウェブサイト上で使っている方、利用者の登録率や利便性を向上させるためにご活用ください!
移植にあたって、imi-moji-converter が依存している Node.js 用の「半角全角変換ライブラリ」をDeno用に移植しました。(src on GitHub)
変換が必要ないので、srcフォルダが不要で、プログラムはすべてdocs内に置いています。ESモジュール以前の表記、require/export を import/export に変更し、testをDeno用に書き換えます。Node.jsっぽいテスト表記を実現する nodelikeassert.mjs を denolib に追加。
「半角全角変換ライブラリ test」
ライブラリはURLで読み込むだけなので、node_modules も不要、インストールも不要でとってもシンプルです!
経産省が住所変換や法人種別名、電話番号の正規化に使えるIMIコンポーネントツールを公開しました。
— Hal Seki (@hal_sk) May 28, 2020
ソースコードも公開。README にも使い方が丁寧に書かれていました。https://t.co/fPbV00EgZP
素晴らしい動き。こういう... #NewsPicks https://t.co/bew0qGKMFE
オープンソース活用、加速しそうです!
→ 2020-05-30 対応拡大!
links
- 経産省発の npm モジュール!住所や電話番号の正規化、ジオコーディングなどができる IMI コンポーネントツールを試した! - Geolonia developer's blog
- DenoとWebSocketで作る匿名チャットサーバー&webアプリ
- DenoとNodeとwebアプリの全対応、コンパクトに作り始めるLISPのS式風ライブラリ
- NodeからDenoへ、福井県で活用オープンソースのPUSHかんたんオープンデータ、バックエンド移行