何でもできる巨大なJavaScriptフレームワークがあふれる中、is.jsという小さなライブラリのニーズは高まっているかもしれない。このライブラリは100を超えるデータチェックを、小さな使いやすいパッケージとして提供する。
「日々の開発で使いそうなデータチェックを書きました」is.jsの作者であるAras Atasaygin氏はこう語る。このライブラリを使うには、is.min.jsファイル(ミニマイズして13KB)をプロジェクトに入れ、次のように問い合わせればよい。
is.capitalized("Yes it is");
今のところ、is.function()
のような型チェックからis.inNextYear()
のような日付チェックまで、多岐にわたるチェックが可能になっている。現在、100以上の様々な型、存在、正規表現、文字列、数値、環境をチェックすることができ、その数はますます増えている。チェックには信頼性の高いものもあれば、そうでないものもある。たとえば、メールアドレスの正規表現は、ブラウザが夏時間かどうか判断するのと同様、完全に正しくチェックするは難しいことが知られている。
is.jsには単純なチェックだけでなく、all
やany
といったアダプタも含まれている。複数のパラメータと組み合わせて使うことで、パラメータのすべてが、もしくはいずれかがパスするかどうかをかェックできる。チェックの真偽を反転するnot
も使える。
ライブラリに含まれているチェックにはそれほど複雑なものはなく、多くの開発者は自分のニーズに特化した1回限りのチェックライブラリを作ってきただろう。だがis.jsを使うことで時間を節約できるかもしれない。このライブラリにはRegExチェックがたくさん含まれており、よく使われるものがデフォルトで多数用意されている。たとえば、文字列がURLかどうかをチェックするには、以下のようにすればよい。
is.url("http://www.infoq.com");
チェックの大半は正規表現(固定の文字列)に基づいているため、コードをミニマイズすることができない。そのために、新しいチェックが追加されていくにつれ、ライブラリが肥大化するおそれがある。Atasaygin氏は「コントリビュータからの提案に耳を傾け、必要ならモジュール化機能を追加するかもしれません」と言っている。
「現在、プルリクエストから新たなチェックを追加しつつ、次にどうすべきかコミュニティの意見を聞いているところです」Atasaygin氏はそう語る。is.jsプロジェクトはGitHub上にある。