2019-01-22 bouzuya/node-wsse 3.0.0 をつくった
bouzuya/node-wsse 3.0.0 をつくった。
主な変更は CoffeeScript から TypeScript に置き換えたこと。あとは module.exports = function /* ... */
を削除したくらいか。 require('wsse').default
で良いだろう。どうせ babel か TypeScript あたりで import wsse from 'wsse';
して使っているだろうし……。
2019-01-21 の bouzuya/table-b から設定をコピーしてきたのでその点では楽だった。
これね、 JavaScript や CoffeeScript あたりで書かれたアプリケーションを TypeScript に直したことがある人だと感じるんじゃないかな……。ぼくの経験だとわりと普通にバグってるよ。
— bouzuya (@bouzuya) 2019年1月18日
↑のツイートしてから数日後にまさにそういう事例が起きてしまった。型を明示してみたら間違いに気づいた。 s
という変数だったので string
をつけたら実は Buffer | string
だった。 s
の利用箇所は new Buffer(s)
だったので実害はないのだけど気持ちが悪い。そも new Buffer(s)
も deprecated だ。
Node.js の API はしばしば↑のような返し方をする。今回は hash.digest([encoding])
の encoding
の有無で戻り値の型が Buffer
と string
で変わる。 JavaScript だなあ。
CoffeeScript & JavaScript のリポジトリを整理している。↑の wsse に依存するものがいくつかあった。 TypeScript に置き換えようとしてから気づいた。置き換えにも依存関係というか順序があった。