@dxos/echo-atom 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/atom.test.ts +3 -3
- package/src/query-atom.test.ts +10 -10
- package/src/ref-atom.test.ts +7 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/echo-atom",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.d05673bc65",
|
|
4
4
|
"description": "Effect Atom wrappers for ECHO objects with explicit subscriptions.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@effect-atom/atom": "^0.5.1",
|
|
32
|
-
"@dxos/echo
|
|
33
|
-
"@dxos/
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/invariant": "0.8.4-main.
|
|
32
|
+
"@dxos/echo": "0.8.4-main.d05673bc65",
|
|
33
|
+
"@dxos/util": "0.8.4-main.d05673bc65",
|
|
34
|
+
"@dxos/echo-db": "0.8.4-main.d05673bc65",
|
|
35
|
+
"@dxos/invariant": "0.8.4-main.d05673bc65"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"effect": "3.19.16",
|
|
39
|
-
"@dxos/random": "0.8.4-main.
|
|
40
|
-
"@dxos/test-utils": "0.8.4-main.
|
|
39
|
+
"@dxos/random": "0.8.4-main.d05673bc65",
|
|
40
|
+
"@dxos/test-utils": "0.8.4-main.d05673bc65"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"effect": "3.19.16"
|
package/src/atom.test.ts
CHANGED
|
@@ -357,7 +357,7 @@ describe('AtomObj.makeWithReactive', () => {
|
|
|
357
357
|
tasks: [Ref.make(task)],
|
|
358
358
|
}),
|
|
359
359
|
);
|
|
360
|
-
await db.flush(
|
|
360
|
+
await db.flush();
|
|
361
361
|
|
|
362
362
|
const ref = person.tasks![0];
|
|
363
363
|
const registry = Registry.make();
|
|
@@ -381,7 +381,7 @@ describe('AtomObj.makeWithReactive', () => {
|
|
|
381
381
|
tasks: [Ref.make(task)],
|
|
382
382
|
}),
|
|
383
383
|
);
|
|
384
|
-
await db.flush(
|
|
384
|
+
await db.flush();
|
|
385
385
|
|
|
386
386
|
const ref = person.tasks![0];
|
|
387
387
|
const registry = Registry.make();
|
|
@@ -390,7 +390,7 @@ describe('AtomObj.makeWithReactive', () => {
|
|
|
390
390
|
expect(registry.get(atom)).toBe(task);
|
|
391
391
|
|
|
392
392
|
db.remove(task);
|
|
393
|
-
await db.flush(
|
|
393
|
+
await db.flush();
|
|
394
394
|
|
|
395
395
|
expect(registry.get(atom)).toBeUndefined();
|
|
396
396
|
});
|
package/src/query-atom.test.ts
CHANGED
|
@@ -23,7 +23,7 @@ const TestItem = Schema.Struct({
|
|
|
23
23
|
value: Schema.Number,
|
|
24
24
|
}).pipe(
|
|
25
25
|
Type.object({
|
|
26
|
-
typename: 'example.
|
|
26
|
+
typename: 'com.example.type.test-item',
|
|
27
27
|
version: '0.1.0',
|
|
28
28
|
}),
|
|
29
29
|
);
|
|
@@ -48,7 +48,7 @@ describe('AtomQuery', () => {
|
|
|
48
48
|
test('creates atom with initial results', async () => {
|
|
49
49
|
db.add(Obj.make(TestItem, { name: 'Object 1', value: 100 }));
|
|
50
50
|
db.add(Obj.make(TestItem, { name: 'Object 2', value: 100 }));
|
|
51
|
-
await db.flush(
|
|
51
|
+
await db.flush();
|
|
52
52
|
|
|
53
53
|
const queryResult: QueryResult.QueryResult<TestItem> = db.query(
|
|
54
54
|
Query.select(Filter.type(TestItem, { value: 100 })),
|
|
@@ -64,7 +64,7 @@ describe('AtomQuery', () => {
|
|
|
64
64
|
|
|
65
65
|
test('registry.subscribe fires on QueryResult changes', async () => {
|
|
66
66
|
db.add(Obj.make(TestItem, { name: 'Initial', value: 200 }));
|
|
67
|
-
await db.flush(
|
|
67
|
+
await db.flush();
|
|
68
68
|
|
|
69
69
|
const queryResult: QueryResult.QueryResult<TestItem> = db.query(
|
|
70
70
|
Query.select(Filter.type(TestItem, { value: 200 })),
|
|
@@ -87,7 +87,7 @@ describe('AtomQuery', () => {
|
|
|
87
87
|
|
|
88
88
|
// Add a new object that matches the query.
|
|
89
89
|
db.add(Obj.make(TestItem, { name: 'New Object', value: 200 }));
|
|
90
|
-
await db.flush({
|
|
90
|
+
await db.flush({ updates: true });
|
|
91
91
|
|
|
92
92
|
// Subscription should have fired.
|
|
93
93
|
expect(updateCount).toBeGreaterThan(0);
|
|
@@ -97,7 +97,7 @@ describe('AtomQuery', () => {
|
|
|
97
97
|
test('registry.subscribe fires when objects are removed', async () => {
|
|
98
98
|
const obj1 = db.add(Obj.make(TestItem, { name: 'Object 1', value: 300 }));
|
|
99
99
|
db.add(Obj.make(TestItem, { name: 'Object 2', value: 300 }));
|
|
100
|
-
await db.flush(
|
|
100
|
+
await db.flush();
|
|
101
101
|
|
|
102
102
|
const queryResult: QueryResult.QueryResult<TestItem> = db.query(
|
|
103
103
|
Query.select(Filter.type(TestItem, { value: 300 })),
|
|
@@ -120,7 +120,7 @@ describe('AtomQuery', () => {
|
|
|
120
120
|
|
|
121
121
|
// Remove an object.
|
|
122
122
|
db.remove(obj1);
|
|
123
|
-
await db.flush({
|
|
123
|
+
await db.flush({ updates: true });
|
|
124
124
|
|
|
125
125
|
// Subscription should have fired.
|
|
126
126
|
expect(updateCount).toBeGreaterThan(0);
|
|
@@ -130,7 +130,7 @@ describe('AtomQuery', () => {
|
|
|
130
130
|
|
|
131
131
|
test('unsubscribing from registry stops receiving updates', async () => {
|
|
132
132
|
db.add(Obj.make(TestItem, { name: 'Initial', value: 400 }));
|
|
133
|
-
await db.flush(
|
|
133
|
+
await db.flush();
|
|
134
134
|
|
|
135
135
|
const queryResult: QueryResult.QueryResult<TestItem> = db.query(
|
|
136
136
|
Query.select(Filter.type(TestItem, { value: 400 })),
|
|
@@ -151,7 +151,7 @@ describe('AtomQuery', () => {
|
|
|
151
151
|
|
|
152
152
|
// Add object and verify subscription fires.
|
|
153
153
|
db.add(Obj.make(TestItem, { name: 'Object 2', value: 400 }));
|
|
154
|
-
await db.flush({
|
|
154
|
+
await db.flush({ updates: true });
|
|
155
155
|
const countAfterFirstAdd = updateCount;
|
|
156
156
|
expect(countAfterFirstAdd).toBeGreaterThan(0);
|
|
157
157
|
|
|
@@ -160,7 +160,7 @@ describe('AtomQuery', () => {
|
|
|
160
160
|
|
|
161
161
|
// Add another object.
|
|
162
162
|
db.add(Obj.make(TestItem, { name: 'Object 3', value: 400 }));
|
|
163
|
-
await db.flush({
|
|
163
|
+
await db.flush({ updates: true });
|
|
164
164
|
|
|
165
165
|
// Update count should not have changed after unsubscribe.
|
|
166
166
|
expect(updateCount).toBe(countAfterFirstAdd);
|
|
@@ -180,7 +180,7 @@ describe('AtomQuery', () => {
|
|
|
180
180
|
|
|
181
181
|
test('multiple atoms from same query share underlying subscription', async () => {
|
|
182
182
|
db.add(Obj.make(TestItem, { name: 'Object', value: 500 }));
|
|
183
|
-
await db.flush(
|
|
183
|
+
await db.flush();
|
|
184
184
|
|
|
185
185
|
const queryResult: QueryResult.QueryResult<TestItem> = db.query(
|
|
186
186
|
Query.select(Filter.type(TestItem, { value: 500 })),
|
package/src/ref-atom.test.ts
CHANGED
|
@@ -33,7 +33,7 @@ describe('AtomRef - Basic Functionality', () => {
|
|
|
33
33
|
|
|
34
34
|
const targetObj = Obj.make(TestSchema.Person, { name: 'Target', username: 'target', email: 'target@example.com' });
|
|
35
35
|
db.add(targetObj);
|
|
36
|
-
await db.flush(
|
|
36
|
+
await db.flush();
|
|
37
37
|
|
|
38
38
|
const ref = Ref.make(targetObj);
|
|
39
39
|
const atom = AtomRef.make(ref);
|
|
@@ -48,7 +48,7 @@ describe('AtomRef - Basic Functionality', () => {
|
|
|
48
48
|
|
|
49
49
|
const targetObj = Obj.make(TestSchema.Person, { name: 'Target', username: 'target', email: 'target@example.com' });
|
|
50
50
|
db.add(targetObj);
|
|
51
|
-
await db.flush(
|
|
51
|
+
await db.flush();
|
|
52
52
|
|
|
53
53
|
const ref = Ref.make(targetObj);
|
|
54
54
|
const atom = AtomRef.make(ref);
|
|
@@ -90,7 +90,7 @@ describe('AtomRef - Referential Equality', () => {
|
|
|
90
90
|
|
|
91
91
|
const targetObj = Obj.make(TestSchema.Person, { name: 'Target', username: 'target', email: 'target@example.com' });
|
|
92
92
|
db.add(targetObj);
|
|
93
|
-
await db.flush(
|
|
93
|
+
await db.flush();
|
|
94
94
|
|
|
95
95
|
const ref = Ref.make(targetObj);
|
|
96
96
|
|
|
@@ -116,7 +116,7 @@ describe('AtomRef - Referential Equality', () => {
|
|
|
116
116
|
});
|
|
117
117
|
db.add(targetObj1);
|
|
118
118
|
db.add(targetObj2);
|
|
119
|
-
await db.flush(
|
|
119
|
+
await db.flush();
|
|
120
120
|
|
|
121
121
|
const ref1 = Ref.make(targetObj1);
|
|
122
122
|
const ref2 = Ref.make(targetObj2);
|
|
@@ -133,7 +133,7 @@ describe('AtomRef - Referential Equality', () => {
|
|
|
133
133
|
|
|
134
134
|
const targetObj = Obj.make(TestSchema.Person, { name: 'Target', username: 'target', email: 'target@example.com' });
|
|
135
135
|
db.add(targetObj);
|
|
136
|
-
await db.flush(
|
|
136
|
+
await db.flush();
|
|
137
137
|
|
|
138
138
|
// Create two separate refs to the same target.
|
|
139
139
|
const ref1 = Ref.make(targetObj);
|
|
@@ -158,7 +158,7 @@ describe('AtomRef - Referential Equality', () => {
|
|
|
158
158
|
|
|
159
159
|
const targetObj = Obj.make(TestSchema.Person, { name: 'Target', username: 'target', email: 'target@example.com' });
|
|
160
160
|
db.add(targetObj);
|
|
161
|
-
await db.flush(
|
|
161
|
+
await db.flush();
|
|
162
162
|
|
|
163
163
|
const ref = Ref.make(targetObj);
|
|
164
164
|
|
|
@@ -197,7 +197,7 @@ describe('AtomRef - Expando Objects', () => {
|
|
|
197
197
|
test('works with Expando objects', async () => {
|
|
198
198
|
const targetObj = Obj.make(TestSchema.Expando, { name: 'Expando Target', value: 42 });
|
|
199
199
|
db.add(targetObj);
|
|
200
|
-
await db.flush(
|
|
200
|
+
await db.flush();
|
|
201
201
|
|
|
202
202
|
const ref = Ref.make(targetObj);
|
|
203
203
|
const atom = AtomRef.make(ref);
|