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

レジストリ

概要

レジストリはデータを保持するために使います。

定義

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

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

serializer を指定することでデータのシリアライズをカスタマイズすることができます。

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

データの取得

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

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

データの更新

.set()
,
.modify()
,
.update()
メソッドを使ってデータを更新します。

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 modifiedValue = 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
});