【日本語 / English】
Denoで作られたJSON形式のDBモジュール。
このモジュールは暗号化に対応していません。重要なデータの保存には用いないでください。
- Denoモジュール
- JSON形式でのデータ保存
- インメモリとファイルでのデータ保存に対応
Local Storage APIやCache APIへの対応を予定しています。
詳細はIssuesを参照してください。
もし必要だと思う機能がなければ、Issueを作成して教えてください。参考にします。
大きく分けてファイル作成形式とインメモリ形式があります。
ファイル作成形式はFileDB
としてモジュールが分離されており、これはDeno Deployが仕様上ファイル作成できないためです。それ以外はBracesDB
としてモジュール化されています。
FileDB
ではファイルの読み込みと書き込みを行なうため、実行の際に--allow-read
と--allow-write
をつけてください。
type
はDBの種類です。現在はインメモリのみ指定できます。
import { BracesDB } from "https://deno.land/x/bracesdb/mod.ts";
interface DB {
name?: string;
description?: string;
}
const db = new BracesDB<DB>({ type: "memory" });
folder
はDBファイルを格納するフォルダのパスです。デフォルトではプロジェクトルートに生成されます。
filename
はDBファイルの名前です。デフォルトはmain
です。
import { FileDB } from "https://deno.land/x/bracesdb/mod.ts";
interface DB {
name?: string;
description?: string;
}
const db = new FileDB<DB>({
folder: "./db/",
filename: "test",
});
第1引数はDBに追加するObject、第2引数は重複防止処理で利用するkeyです。
以下の例の場合、name
の値が重複すると追加されません。なお、現状は無警告で重複を弾きます。
const test = {
name: "あそまか といか",
description: "ふと思い浮かんだ名前",
};
await db.add(test, "name");
DBから該当するObjectを削除します。
第1引数はkey、第2引数はその値です。
await db.delete("name", "あそまか といか");
完全一致と正規表現による部分一致に対応しています。
第1引数にkeyの名前、第2引数にkeyの値を指定し、該当するObjectを返します。
引数なしは、DBデータすべてを返します。
// 完全一致
const data = db.find("name", "あそまか といか");
// 部分検索
const dataPartial = db.find("name", /といか/);
// すべてのDBデータ
const dataAll = db.find();
以下のコマンドを実行してください。
$ git clone https://github.com/rwl-dev/bracesdb.git
$ cd bracesdb
$ deno task test