Skip to content

Commit 677e456

Browse files
committed
refactor(json-crdt): 💡 change node ordeer
1 parent 20d1c23 commit 677e456

File tree

1 file changed

+28
-28
lines changed
  • src/json-crdt/codec/structural/verbose

1 file changed

+28
-28
lines changed

src/json-crdt/codec/structural/verbose/types.ts

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,35 +27,40 @@ export type JsonCrdtLogicalTimestamp = [sessionId: number, time: number];
2727
export type JsonCrdtServerTimestamp = number;
2828

2929
/**
30-
* LWW JSON object node.
30+
* A constant immutable JSON value.
3131
*/
32-
export interface ObjectJsonCrdtNode {
33-
type: 'obj';
32+
export interface ConstantJsonCrdtNode {
33+
type: 'con';
3434
id: JsonCrdtTimestamp;
35-
keys: Record<string, JsonCrdtNode>;
35+
timestamp?: boolean;
36+
value?: unknown | JsonCrdtTimestamp;
3637
}
3738

3839
/**
39-
* Tuple (LWW JSON array) node.
40+
* LWW register for any JSON value.
4041
*/
41-
export interface TupleJsonCrdtNode {
42-
type: 'tup';
42+
export interface ValueJsonCrdtNode {
43+
type: 'val';
4344
id: JsonCrdtTimestamp;
44-
components: (null | JsonCrdtNode)[];
45+
value: JsonCrdtNode;
4546
}
4647

4748
/**
48-
* RGA JSON array node.
49+
* LWW JSON object node.
4950
*/
50-
export interface ArrayJsonCrdtNode {
51-
type: 'arr';
51+
export interface ObjectJsonCrdtNode {
52+
type: 'obj';
5253
id: JsonCrdtTimestamp;
53-
chunks: (ArrayJsonCrdtChunk | JsonCrdtRgaTombstone)[];
54+
keys: Record<string, JsonCrdtNode>;
5455
}
5556

56-
export interface ArrayJsonCrdtChunk {
57+
/**
58+
* Tuple (LWW JSON array) node.
59+
*/
60+
export interface TupleJsonCrdtNode {
61+
type: 'tup';
5762
id: JsonCrdtTimestamp;
58-
nodes: JsonCrdtNode[];
63+
components: (null | JsonCrdtNode)[];
5964
}
6065

6166
/**
@@ -87,30 +92,25 @@ export interface BinaryJsonCrdtChunk {
8792
}
8893

8994
/**
90-
* A tombstone used in RGA nodes.
95+
* RGA JSON array node.
9196
*/
92-
export interface JsonCrdtRgaTombstone {
97+
export interface ArrayJsonCrdtNode {
98+
type: 'arr';
9399
id: JsonCrdtTimestamp;
94-
span: number;
100+
chunks: (ArrayJsonCrdtChunk | JsonCrdtRgaTombstone)[];
95101
}
96102

97-
/**
98-
* LWW register for any JSON value.
99-
*/
100-
export interface ValueJsonCrdtNode {
101-
type: 'val';
103+
export interface ArrayJsonCrdtChunk {
102104
id: JsonCrdtTimestamp;
103-
value: JsonCrdtNode;
105+
nodes: JsonCrdtNode[];
104106
}
105107

106108
/**
107-
* A constant immutable JSON value.
109+
* A tombstone used in RGA nodes.
108110
*/
109-
export interface ConstantJsonCrdtNode {
110-
type: 'con';
111+
export interface JsonCrdtRgaTombstone {
111112
id: JsonCrdtTimestamp;
112-
timestamp?: boolean;
113-
value?: unknown | JsonCrdtTimestamp;
113+
span: number;
114114
}
115115

116116
export type JsonCrdtNode =

0 commit comments

Comments
 (0)