typesafetyというパッケージを作りました。
Hacklangでコードを書いていると頻繁に型のチェックをかけるのですが、チェックをするのにサーバーを再起動したりしないといけないのでとても面倒でした。
なので、サーバーの起動と型のチェックをまとめてできるようにしました。
特徴として、全てstrictモードで実装されているのと、UNSAFEコメントを使用したアンチパターンを使用していません。
使い方
composerを使用して、インストールします。
composer require hhpack/typesafety
後はコマンドを実行するだけで、型のチェックを行えます。
vendor/bin/typesafety [ROOT_DIRECTORY]
さらに、composer.jsonのscriptsに実行できるようにすると楽になります。
{ "scripts": { "check": "vendor/bin/typesafety" } }
これで下記のように簡単に型チェックを行えるようになります。
composer check
CIでの型チェック
CIでテスト実行前に、型チェックをかけることにより、型安全な状態でテストを実行することができます。
型の補償がされていない状態でテストを実行しても、正常に終了する確率が低いので、事前に型のチェックを行うことでテスト時間を短縮できます。
travis-ciの場合は、yamlの設定ファイルに型のチェックを追加することで、実現できます。
script: - composer check - composer test
typesafetyをリリースするのに別途作ったパッケージ
- hhpack/process - プロセスを扱うパッケージ、サブプロセスでコマンドを実行できたりする
- hhpack/typechecker-client - 型チェッカーのクライアントライブラリ、サーバーの起動、停止などで使用する
- hhpack/color - コンソールの出力をカラーリングするのに使用
- hhpack/publisher - シンプルなPub/Subライブラリ、型のチェック結果を通知するのに使用