blog.bouzuya.net

2015-10-09 r7kamura/cycle-fetcher-driver をためした

r7kamura/cycle-fetcher-driver

Cycle.js の HTTP request のための driver である r7kamura/cycle-fetcher-driver をためした。標準の HTTP driver である @cycle/http (cyclejs/cycle-http-driver) がなぜか Chrome で動かないので (CORS が原因なのだけどブラウザ間の差異が理解できない) 、代わりに試した次第。

それぞれの HTTP client としては cyclejs/cycle-http-drivervisionmedia/superagentr7kamura/cycle-fetcher-driverr7kamura/stackable-fetcher を使っている。

visionmedia/superagentrequest/request を使う前によく使っていたもので、このブログでは名前だけだけど 2013-09-252013-10-06 に登場している。Node.js ではメジャーな HTTP client だ。

r7kamura/stackable-fetcher は使ったことがないのだけど A middleware-based HTTP client library. の description の通り middleware で拡張できるようになっているっぽい。query_string と form との使い分けがない (parametersにまとめられている) けど大丈夫なのかな。

現状ではそこまでのこだわりはない。

わがままを言えば method を含めて object をひとつだけとって Promise を返してくれるシグネチャがうれしい。

request({ url, method, headers, body })
.then(({ status, body, headers }) => {
  console.log(body);
});

ものによっては stream のほうが都合が良いのだろうけど、そういう挙動が必要になるケースが少ないので……。