blog.bouzuya.net

2016-07-23 bouzuya/bbn-api をつくりはじめた

bouzuya/bbn-api をつくりはじめた。

bbn-api は bbn : blog.bouzuya.net の json api を提供する。bbn < 4.x (現行) における bouzuya/kraken に相当する。

kraken は yaml header 付きの markdown (ぼくは jekyll markdown と呼んでいる) から json を生成する。bbn-api はその Amazon S3 への upload のための CLI まで兼ねようかと思っている。責務過多になりそうなら npm package を分割するつもりだ。

今回の目標のひとつは jekyll markdown を捨てて meta data json と markdown を分離することだ。あるいは jekyll markdown 用の parser やそれらの parser を選択できるようにしたい。yaml と markdown の混在が生理的に嫌なので、ね。

前回の実装は CoffeeScript だった。今回の実装は TypeScript 2.0 beta ではじめている。Gulp も使わず、CLI で npm run-scripts で完結させるつもりだ。要するに、いまのぼくの環境に合わせていく。

今回は CI をはやめに設定した。最近は 0.1.0 release 後に CI を設定することが多くて無意味になっているので、はやめに。また、今回は CircleCI ではなく Travis CI で。これは最近の好みの問題。beater あたりから Travis CI に戻ってきている。ちなみに CI を有効にしておくと、beater などの自作 npm package の download も増えて、うれしい。

bbn-api のために bouzuya/time-keeper-js を使おうとして bug に気づいた。npm package に js が含まれていない。原因は package.jsonfiles の指定。files: ["./lib/"] と指定されているのだけど、これだと動かない。files: ["lib"] だと動く。

この対応のために bouzuya/time-keeper-js を 0.2.2 にした。 0.2.0...0.2.2 。同様に bouzuya/bath を 0.1.1 にした。0.1.0...0.1.1

使ってはじめて気づく。dogfooding は大切。