Backbone.js で HTML5 Web SQL Database を使うための backbone-webdatabase を作ってみた

Backbone.Model の fetch や save はサーバーと通信するけど、データをサーバーではなくローカルにだけ保存したいときがある。例えば PhoneGap でスタンドアロンアプリを作るときとか。

localStorage にアクセスするライブラリは、backbone-localstorage っていうのが Backbone.js のリポジトリ内にあるけど、Web SQL Database にアクセスするライブラリは見つからなかった。使いたいのは Web SQL Database なんだけどな。

ネットで探してみたけど見つからなかったので、自作してみた。

とりあえず、自分が作ろうとしているアプリに必要な機能に絞って実装した。

使い方を簡単に説明すると、

var Book = Backbone.Model.extend({
    table: new Table("books", {
        title: "TEXT",
        author: "TEXT",
        price: "INTEGER"
    }
});

という風にすれば、fetch や save で Web SQL Database にアクセスするようになる。

不具合が見つかったら(多分)修正するけど、機能追加は必要に迫られるまでしないと思う。Fork、Pull Request は大歓迎。

というか、誰かがもっとちゃんとしたライブラリを作ってくれたらいいな。