現在ドキュメントは制作段階にあるため、多くの情報が不完全なものになっています

報告は Discord までお願いします

レジストリ

概要

データをアプリ間で同期・保持する事ができます

定義

レジストリは

omu.registries.json<T>(name, { default: ... })
から定義できます

  • T?: データの型
  • name: レジストリの名前。同じ名前で複数のレジストリを作ることはできません
  • default: レジストリの初期値を設定

omu.registries.serialized<T>(name, { default: ..., serializer: ... })
ではバイト配列として処理したい場合に使えます。シリアライザ を指定する必要があります

以下が定義例です

1
type MyData = {
2
    name: string;
3
    age: number;
4
};
5

6
// レジストリの定義
7
const myData = omu.registries.json<MyData>('my_data', {
8
    // データの初期値
9
    default: {
10
        name: 'Taro Yamada',
11
        age: 20,
12
    },
13
});

jsonであってもserializer を指定することで値のシリアライズをカスタマイズできます

1
// レジストリの定義
2
const myData = omu.registries.serialized<MyData>('my_data', {
3
    // データの初期値
4
    default: {
5
        name: 'Taro Yamada',
6
        age: 20,
7
    },
8
    // シリアライザ
9
    serializer: mySerializer,
10
});

データの取得

.get()
メソッドを使って値を取得します

1
// データの取得
2
const data = myData.value;
3

4
// .get() メソッドを使って値を取得することもできます
5
const data = await myData.get();

データの更新

.set(value)
,
.modify(modifier)
,
.update(updater)
メソッドを使って値を更新します

  • value: 新しく設定する値
  • modifier: 引数にデータを受け取りデータを変更する関数
  • updater: 引数にデータを受け取り新しいデータを返す関数
1
// 値を上書きする
2
// 新しいデータを引数に渡すことで更新します
3
await myData.set({
4
    name: 'Taro Yamada',
5
    age: 21,
6
});
7

8
// 値を変更する
9
// 引数の関数でデータを変更することで更新します
10
const modifiedValue = await myData.modify((data) => {
11
    data.age++;
12
});
13

14
// 値を更新する
15
// 引数の関数でデータを変更して新しいデータを返すことで更新します
16
const updatedValue = await myData.update((data) => {
17
    return {
18
        ...data,
19
        age: data.age + 1,
20
    };
21
});

値の監視

データの変更を監視することができます。

1
// 値の監視
2
myData.listen((data) => {
3
    console.log(data);
4
});
使用するパッケージマネージャー