bouzuya.hatenablog.com

ぼうずやのにっき

node-backlog-api@0.11.0をつくった

bouzuya/node-backlog-api@0.11.0をつくった。node-backlog-apiはBacklog APIのラッパーライブラリ。これで有料プランのものを除いてはひととおり実装できた。次はCLIかな。Terminalで操作できると気持ち良い。

昨日書いていたprototypeあたりの知識不足うんぬんを簡単に説明しておくと、次のようなインタフェースを実現したい。

var backlogApi = require('backlog-api');
var backlog = backlogApi();
backlog.admin.getProjects().then(function(projects) {
  console.log(projects);
});

問題になるのがbacklog.admin.getProjects()の部分で、素直に書くとgetProjectthisadminになってしまう。これをどう回避しようかと試行錯誤していたというわけ。

最終的には、new Backlog() (backlogApi()の部分で内部的に実行している) のタイミングで this._root = this; this.admin._root = this; しておき、this._rootを使うことで回避した。

おもしろいやり方じゃないんだけど、まあいいかなと。