kdnakt blog

hello there.

awslabs/aws-cdkにプルリク2本投げてマージされた話とか

OSSプルリク2019年1本目&2本目。🎉

 

github.com

 

[1本目:ドキュメント修正]

github.com

 

先週aws-cdkを使ってCloudFormationを実装していたところ、ちょっと改善できそうなコードを見つけた。

その修正のプルリクエスト投げる前に、お作法を確認すべくCONTRIBUTING.mdを読んでいたら、マークダウンのリンクが壊れている箇所を発見したのでまずはこちらを修正した。

 

2019年最初のプルリクエストはドキュメント修正、しかも1文字だけ……。

 

[2本目:エラーメッセージ修正]

github.com

 

こちらが本題。

aws-cdkをTypeScriptで実装していたのだが、間違って同じ名前でCloudFormationリソースを定義してしまった際のエラーメッセージがわかりにくかったので修正した。 

 

修正前のエラーはこんな感じ。[object Object]ではどこが悪いのかわかりにくい。

f:id:kidani_a:20190211101706p:plain

 

というわけでリソース名を表示するように修正を試みた。下の画像が完成形で、ここではc0がリソース名。

f:id:kidani_a:20190211101721p:plain

 

エラーメッセージの表示箇所でthis.toString()が使われていたために[object Object]にとなっていたので、最初は単にthis.idを足せばいいか、と考えていた。

しかし、ルートのオブジェクトの場合にはidが空文字となってしまう問題があったので、construct.ts全体を確認したところ、toTreeString()という関数内で良さそうな処理を見つけたので、そちらを流用して修正し、ルートオブジェクトの場合にはRootと表示されるように修正した。

もちろんテストケースを先に作ってTDDを実践!

 

[まとめ]

今年も少しずつ世の中のソフトウェアを良くしていくぞ!

 

しかしまさか全然触ったことのないTypeScriptのプルリクエスト投げることになるとは……aws-cdk 0.25.0のリリースを待ちながら、TypeScriptも少し勉強しようかな。

Reactでも使えるみたいだし。