jazz-tools 0.7.3 → 0.7.6
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/.turbo/turbo-build.log +2 -17
- package/CHANGELOG.md +6 -0
- package/dist/coValues/account.js +11 -1
- package/dist/coValues/account.js.map +1 -1
- package/dist/coValues/coList.js +156 -9
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coMap.js +122 -10
- package/dist/coValues/coMap.js.map +1 -1
- package/dist/coValues/group.js +1 -1
- package/dist/coValues/group.js.map +1 -1
- package/dist/coValues/interfaces.js.map +1 -1
- package/package.json +1 -1
- package/src/coValues/account.ts +24 -1
- package/src/coValues/coList.ts +163 -15
- package/src/coValues/coMap.ts +122 -10
- package/src/coValues/group.ts +1 -1
- package/src/coValues/interfaces.ts +1 -0
package/.turbo/turbo-build.log
CHANGED
@@ -1,23 +1,8 @@
|
|
1
1
|
|
2
|
-
> jazz-tools@0.7.
|
2
|
+
> jazz-tools@0.7.3 build /Users/anselm/jazz/jazz/packages/jazz-tools
|
3
3
|
> npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
|
4
4
|
|
5
5
|
|
6
|
-
> jazz-tools@0.7.
|
6
|
+
> jazz-tools@0.7.3 lint
|
7
7
|
> eslint . --ext ts,tsx
|
8
8
|
|
9
|
-
|
10
|
-
/Users/anselm/jazz/jazz/packages/jazz-tools/src/coValues/coStream.ts
|
11
|
-
671:9 error 'Cl' is defined but never used. Allowed unused vars must match /^_/u @typescript-eslint/no-unused-vars
|
12
|
-
686:9 error 'Cl' is defined but never used. Allowed unused vars must match /^_/u @typescript-eslint/no-unused-vars
|
13
|
-
|
14
|
-
/Users/anselm/jazz/jazz/packages/jazz-tools/src/coValues/interfaces.ts
|
15
|
-
56:12 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
16
|
-
|
17
|
-
✖ 3 problems (3 errors, 0 warnings)
|
18
|
-
|
19
|
-
npm ERR! Lifecycle script `lint` failed with error:
|
20
|
-
npm ERR! Error: command failed
|
21
|
-
npm ERR! in workspace: jazz-tools@0.7.1
|
22
|
-
npm ERR! at location: /Users/anselm/jazz/jazz/packages/jazz-tools
|
23
|
-
ELIFECYCLE Command failed with exit code 1.
|
package/CHANGELOG.md
CHANGED
package/dist/coValues/account.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
var _a;
|
2
|
-
import { LocalNode } from "cojson";
|
2
|
+
import { LocalNode, cojsonInternals } from "cojson";
|
3
3
|
import { Context } from "effect";
|
4
4
|
import { Group, CoValueBase, MembersSym, Profile, Ref, SchemaInit, inspect, subscriptionsScopes, loadCoValue, loadCoValueEf, subscribeToCoValue, subscribeToCoValueEf, ensureCoValueLoaded, subscribeToExistingCoValue, } from "../internal.js";
|
5
5
|
/** @category Identity & Permissions */
|
@@ -83,6 +83,16 @@ export class Account extends CoValueBase {
|
|
83
83
|
});
|
84
84
|
return this.fromNode(node);
|
85
85
|
}
|
86
|
+
static createAs(as, options) {
|
87
|
+
// TODO: is there a cleaner way to do this?
|
88
|
+
const connectedPeers = cojsonInternals.connectedPeers("creatingAccount", "createdAccount", { peer1role: "server", peer2role: "client" });
|
89
|
+
as._raw.core.node.syncManager.addPeer(connectedPeers[1]);
|
90
|
+
return this.create({
|
91
|
+
creationProps: options.creationProps,
|
92
|
+
crypto: as._raw.core.node.crypto,
|
93
|
+
peersToLoadFrom: [connectedPeers[0]],
|
94
|
+
});
|
95
|
+
}
|
86
96
|
static fromNode(node) {
|
87
97
|
return new this({
|
88
98
|
fromRaw: node.account,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
|
package/dist/coValues/coList.js
CHANGED
@@ -2,9 +2,40 @@ var _a;
|
|
2
2
|
import { RawAccount } from "cojson";
|
3
3
|
import { Account, Group, InitValues, ItemsSym, Ref, SchemaInit, co, ensureCoValueLoaded, inspect, isRefEncoded, loadCoValue, loadCoValueEf, makeRefs, subscribeToCoValue, subscribeToCoValueEf, subscribeToExistingCoValue, } from "../internal.js";
|
4
4
|
import { encodeSync, decodeSync } from "@effect/schema/Schema";
|
5
|
-
/**
|
5
|
+
/**
|
6
|
+
* CoLists are collaborative versions of plain arrays.
|
7
|
+
*
|
8
|
+
* * @categoryDescription Content
|
9
|
+
* You can access items on a `CoList` as if they were normal items on a plain array, using `[]` notation, etc.
|
10
|
+
*
|
11
|
+
* Since `CoList` is a subclass of `Array`, you can use all the normal array methods like `push`, `pop`, `splice`, etc.
|
12
|
+
*
|
13
|
+
* ```ts
|
14
|
+
* colorList[0];
|
15
|
+
* colorList[3] = "yellow";
|
16
|
+
* colorList.push("Kawazaki Green");
|
17
|
+
* colorList.splice(1, 1);
|
18
|
+
* ```
|
19
|
+
*
|
20
|
+
* @category CoValues
|
21
|
+
*/
|
6
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
7
23
|
export class CoList extends Array {
|
24
|
+
/**
|
25
|
+
* Declare a `CoList` by subclassing `CoList.Of(...)` and passing the item schema using `co`.
|
26
|
+
*
|
27
|
+
* @example
|
28
|
+
* ```ts
|
29
|
+
* class ColorList extends CoList.Of(
|
30
|
+
* co.string
|
31
|
+
* ) {}
|
32
|
+
* class AnimalList extends CoList.Of(
|
33
|
+
* co.ref(Animal)
|
34
|
+
* ) {}
|
35
|
+
* ```
|
36
|
+
*
|
37
|
+
* @category Declaration
|
38
|
+
*/
|
8
39
|
static Of(item) {
|
9
40
|
var _b, _c;
|
10
41
|
// TODO: cache superclass for item class
|
@@ -17,19 +48,38 @@ export class CoList extends Array {
|
|
17
48
|
_b = co.items,
|
18
49
|
_c;
|
19
50
|
}
|
20
|
-
/**
|
51
|
+
/**
|
52
|
+
* @ignore
|
53
|
+
* @deprecated Use UPPERCASE `CoList.Of` instead! */
|
21
54
|
static of(..._args) {
|
22
55
|
throw new Error("Can't use Array.of with CoLists");
|
23
56
|
}
|
57
|
+
/** @internal */
|
24
58
|
get _schema() {
|
25
59
|
return this.constructor._schema;
|
26
60
|
}
|
61
|
+
/** @category Collaboration */
|
27
62
|
get _owner() {
|
28
63
|
return this._raw.group instanceof RawAccount
|
29
64
|
? Account.fromRaw(this._raw.group)
|
30
65
|
: Group.fromRaw(this._raw.group);
|
31
66
|
}
|
32
|
-
/**
|
67
|
+
/**
|
68
|
+
* If a `CoList`'s items are a `co.ref(...)`, you can use `coList._refs[i]` to access
|
69
|
+
* the `Ref` instead of the potentially loaded/null value.
|
70
|
+
*
|
71
|
+
* This allows you to always get the ID or load the value manually.
|
72
|
+
*
|
73
|
+
* @example
|
74
|
+
* ```ts
|
75
|
+
* animals._refs[0].id; // => ID<Animal>
|
76
|
+
* animals._refs[0].value;
|
77
|
+
* // => Animal | null
|
78
|
+
* const animal = await animals._refs[0].load();
|
79
|
+
* ```
|
80
|
+
*
|
81
|
+
* @category Content
|
82
|
+
**/
|
33
83
|
get _refs() {
|
34
84
|
return makeRefs((idx) => this._raw.get(idx), () => Array.from({ length: this._raw.entries().length }, (_, idx) => idx), this._loadedAs, (_idx) => this._schema[ItemsSym]);
|
35
85
|
}
|
@@ -65,6 +115,27 @@ export class CoList extends Array {
|
|
65
115
|
}
|
66
116
|
return new Proxy(this, CoListProxyHandler);
|
67
117
|
}
|
118
|
+
/**
|
119
|
+
* Create a new CoList with the given initial values and owner.
|
120
|
+
*
|
121
|
+
* The owner (a Group or Account) determines access rights to the CoMap.
|
122
|
+
*
|
123
|
+
* The CoList will immediately be persisted and synced to connected peers.
|
124
|
+
*
|
125
|
+
* @example
|
126
|
+
* ```ts
|
127
|
+
* const colours = ColorList.create(
|
128
|
+
* ["red", "green", "blue"],
|
129
|
+
* { owner: me }
|
130
|
+
* );
|
131
|
+
* const animals = AnimalList.create(
|
132
|
+
* [cat, dog, fish],
|
133
|
+
* { owner: me }
|
134
|
+
* );
|
135
|
+
* ```
|
136
|
+
*
|
137
|
+
* @category Creation
|
138
|
+
**/
|
68
139
|
static create(items, options) {
|
69
140
|
return new this({ init: items, owner: options.owner });
|
70
141
|
}
|
@@ -123,34 +194,110 @@ export class CoList extends Array {
|
|
123
194
|
[inspect]() {
|
124
195
|
return this.toJSON();
|
125
196
|
}
|
197
|
+
/** @category Internals */
|
126
198
|
static fromRaw(raw) {
|
127
199
|
return new this({ fromRaw: raw });
|
128
200
|
}
|
201
|
+
/** @internal */
|
129
202
|
static schema(def) {
|
130
203
|
this._schema || (this._schema = {});
|
131
204
|
Object.assign(this._schema, def);
|
132
205
|
}
|
133
|
-
/**
|
206
|
+
/**
|
207
|
+
* Load a `CoList` with a given ID, as a given account.
|
208
|
+
*
|
209
|
+
* `depth` specifies if item CoValue references should be loaded as well before resolving.
|
210
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
211
|
+
*
|
212
|
+
* You can pass `[]` or for shallowly loading only this CoList, or `[itemDepth]` for recursively loading referenced CoValues.
|
213
|
+
*
|
214
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
215
|
+
*
|
216
|
+
* @example
|
217
|
+
* ```ts
|
218
|
+
* const animalsWithVets =
|
219
|
+
* await ListOfAnimals.load(
|
220
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
221
|
+
* me,
|
222
|
+
* [{ vet: {} }]
|
223
|
+
* );
|
224
|
+
* ```
|
225
|
+
*
|
226
|
+
* @category Subscription & Loading
|
227
|
+
*/
|
134
228
|
static load(id, as, depth) {
|
135
229
|
return loadCoValue(this, id, as, depth);
|
136
230
|
}
|
137
|
-
/**
|
231
|
+
/**
|
232
|
+
* Effectful version of `CoList.load()`.
|
233
|
+
*
|
234
|
+
* Needs to be run inside an `AccountCtx` context.
|
235
|
+
*
|
236
|
+
* @category Subscription & Loading
|
237
|
+
*/
|
138
238
|
static loadEf(id, depth) {
|
139
239
|
return loadCoValueEf(this, id, depth);
|
140
240
|
}
|
141
|
-
/**
|
241
|
+
/**
|
242
|
+
* Load and subscribe to a `CoList` with a given ID, as a given account.
|
243
|
+
*
|
244
|
+
* Automatically also subscribes to updates to all referenced/nested CoValues as soon as they are accessed in the listener.
|
245
|
+
*
|
246
|
+
* `depth` specifies if item CoValue references should be loaded as well before calling `listener` for the first time.
|
247
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
248
|
+
*
|
249
|
+
* You can pass `[]` or for shallowly loading only this CoList, or `[itemDepth]` for recursively loading referenced CoValues.
|
250
|
+
*
|
251
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
252
|
+
*
|
253
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
254
|
+
*
|
255
|
+
* Also see the `useCoState` hook to reactively subscribe to a CoValue in a React component.
|
256
|
+
*
|
257
|
+
* @example
|
258
|
+
* ```ts
|
259
|
+
* const unsub = ListOfAnimals.subscribe(
|
260
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
261
|
+
* me,
|
262
|
+
* { vet: {} },
|
263
|
+
* (animalsWithVets) => console.log(animalsWithVets)
|
264
|
+
* );
|
265
|
+
* ```
|
266
|
+
*
|
267
|
+
* @category Subscription & Loading
|
268
|
+
*/
|
142
269
|
static subscribe(id, as, depth, listener) {
|
143
270
|
return subscribeToCoValue(this, id, as, depth, listener);
|
144
271
|
}
|
145
|
-
/**
|
272
|
+
/**
|
273
|
+
* Effectful version of `CoList.subscribe()` that returns a stream of updates.
|
274
|
+
*
|
275
|
+
* Needs to be run inside an `AccountCtx` context.
|
276
|
+
*
|
277
|
+
* @category Subscription & Loading
|
278
|
+
*/
|
146
279
|
static subscribeEf(id, depth) {
|
147
280
|
return subscribeToCoValueEf(this, id, depth);
|
148
281
|
}
|
149
|
-
/**
|
282
|
+
/**
|
283
|
+
* Given an already loaded `CoList`, ensure that items are loaded to the specified depth.
|
284
|
+
*
|
285
|
+
* Works like `CoList.load()`, but you don't need to pass the ID or the account to load as again.
|
286
|
+
*
|
287
|
+
* @category Subscription & Loading
|
288
|
+
*/
|
150
289
|
ensureLoaded(depth) {
|
151
290
|
return ensureCoValueLoaded(this, depth);
|
152
291
|
}
|
153
|
-
/**
|
292
|
+
/**
|
293
|
+
* Given an already loaded `CoList`, subscribe to updates to the `CoList` and ensure that items are loaded to the specified depth.
|
294
|
+
*
|
295
|
+
* Works like `CoList.subscribe()`, but you don't need to pass the ID or the account to load as again.
|
296
|
+
*
|
297
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
298
|
+
*
|
299
|
+
* @category Subscription & Loading
|
300
|
+
**/
|
154
301
|
subscribe(depth, listener) {
|
155
302
|
return subscribeToExistingCoValue(this, depth, listener);
|
156
303
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAepC,OAAO,EACH,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,GAAG,EACH,UAAU,EACV,EAAE,EACF,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAG/D
|
1
|
+
{"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/coValues/coList.ts"],"names":[],"mappings":"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"}
|
package/dist/coValues/coMap.js
CHANGED
@@ -7,6 +7,8 @@ import { Account, CoValueBase, Ref, SchemaInit, inspect, makeRefs, subscriptions
|
|
7
7
|
* @categoryDescription Declaration
|
8
8
|
* Declare your own CoMap schemas by subclassing `CoMap` and assigning field schemas with `co`.
|
9
9
|
*
|
10
|
+
* Optional `co.ref(...)` fields must be marked with `{ optional: true }`.
|
11
|
+
*
|
10
12
|
* ```ts
|
11
13
|
* import { co, CoMap } from "jazz-tools";
|
12
14
|
*
|
@@ -14,6 +16,7 @@ import { Account, CoValueBase, Ref, SchemaInit, inspect, makeRefs, subscriptions
|
|
14
16
|
* name = co.string;
|
15
17
|
* age = co.number;
|
16
18
|
* pet = co.ref(Animal);
|
19
|
+
* car = co.ref(Car, { optional: true });
|
17
20
|
* }
|
18
21
|
* ```
|
19
22
|
*
|
@@ -39,17 +42,19 @@ export class CoMap extends CoValueBase {
|
|
39
42
|
/**
|
40
43
|
* If property `prop` is a `co.ref(...)`, you can use `coMaps._refs.prop` to access
|
41
44
|
* the `Ref` instead of the potentially loaded/null value.
|
45
|
+
*
|
42
46
|
* This allows you to always get the ID or load the value manually.
|
43
47
|
*
|
44
48
|
* @example
|
45
49
|
* ```ts
|
46
50
|
* person._refs.pet.id; // => ID<Animal>
|
47
51
|
* person._refs.pet.value;
|
48
|
-
* // => Animal |
|
52
|
+
* // => Animal | null
|
49
53
|
* const pet = await person._refs.pet.load();
|
50
54
|
* ```
|
51
55
|
*
|
52
|
-
* @category Content
|
56
|
+
* @category Content
|
57
|
+
**/
|
53
58
|
get _refs() {
|
54
59
|
return makeRefs((key) => this._raw.get(key), () => {
|
55
60
|
const keys = this._raw.keys().filter((key) => {
|
@@ -117,7 +122,24 @@ export class CoMap extends CoValueBase {
|
|
117
122
|
}
|
118
123
|
return new Proxy(this, CoMapProxyHandler);
|
119
124
|
}
|
120
|
-
/**
|
125
|
+
/**
|
126
|
+
* Create a new CoMap with the given initial values and owner.
|
127
|
+
*
|
128
|
+
* The owner (a Group or Account) determines access rights to the CoMap.
|
129
|
+
*
|
130
|
+
* The CoMap will immediately be persisted and synced to connected peers.
|
131
|
+
*
|
132
|
+
* @example
|
133
|
+
* ```ts
|
134
|
+
* const person = Person.create({
|
135
|
+
* name: "Alice",
|
136
|
+
* age: 42,
|
137
|
+
* pet: cat,
|
138
|
+
* }, { owner: friendGroup });
|
139
|
+
* ```
|
140
|
+
*
|
141
|
+
* @category Creation
|
142
|
+
**/
|
121
143
|
static create(init, options) {
|
122
144
|
return new this({ init, owner: options.owner });
|
123
145
|
}
|
@@ -172,7 +194,24 @@ export class CoMap extends CoValueBase {
|
|
172
194
|
}
|
173
195
|
return rawOwner.createMap(rawInit);
|
174
196
|
}
|
175
|
-
/**
|
197
|
+
/**
|
198
|
+
* Declare a Record-like CoMap schema, by extending `CoMap.Record(...)` and passing the value schema using `co`. Keys are always `string`.
|
199
|
+
*
|
200
|
+
* @example
|
201
|
+
* ```ts
|
202
|
+
* import { co, CoMap } from "jazz-tools";
|
203
|
+
*
|
204
|
+
* class ColorToFruitMap extends CoMap.Record(
|
205
|
+
* co.ref(Fruit)
|
206
|
+
* ) {}
|
207
|
+
*
|
208
|
+
* // assume we have map: ColorToFruitMap
|
209
|
+
* // and strawberry: Fruit
|
210
|
+
* map["red"] = strawberry;
|
211
|
+
* ```
|
212
|
+
*
|
213
|
+
* @category Declaration
|
214
|
+
*/
|
176
215
|
static Record(value) {
|
177
216
|
var _b;
|
178
217
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
@@ -185,27 +224,100 @@ export class CoMap extends CoValueBase {
|
|
185
224
|
_b = ItemsSym;
|
186
225
|
return RecordLikeCoMap;
|
187
226
|
}
|
188
|
-
/**
|
227
|
+
/**
|
228
|
+
* Load a `CoMap` with a given ID, as a given account.
|
229
|
+
*
|
230
|
+
* `depth` specifies which (if any) fields that reference other CoValues to load as well before resolving.
|
231
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
232
|
+
*
|
233
|
+
* You can pass `[]` or `{}` for shallowly loading only this CoMap, or `{ fieldA: depthA, fieldB: depthB }` for recursively loading referenced CoValues.
|
234
|
+
*
|
235
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
236
|
+
*
|
237
|
+
* @example
|
238
|
+
* ```ts
|
239
|
+
* const person = await Person.load(
|
240
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
241
|
+
* me,
|
242
|
+
* { pet: {} }
|
243
|
+
* );
|
244
|
+
* ```
|
245
|
+
*
|
246
|
+
* @category Subscription & Loading
|
247
|
+
*/
|
189
248
|
static load(id, as, depth) {
|
190
249
|
return loadCoValue(this, id, as, depth);
|
191
250
|
}
|
192
|
-
/**
|
251
|
+
/**
|
252
|
+
* Effectful version of `CoMap.load()`.
|
253
|
+
*
|
254
|
+
* Needs to be run inside an `AccountCtx` context.
|
255
|
+
*
|
256
|
+
* @category Subscription & Loading
|
257
|
+
*/
|
193
258
|
static loadEf(id, depth) {
|
194
259
|
return loadCoValueEf(this, id, depth);
|
195
260
|
}
|
196
|
-
/**
|
261
|
+
/**
|
262
|
+
* Load and subscribe to a `CoMap` with a given ID, as a given account.
|
263
|
+
*
|
264
|
+
* Automatically also subscribes to updates to all referenced/nested CoValues as soon as they are accessed in the listener.
|
265
|
+
*
|
266
|
+
* `depth` specifies which (if any) fields that reference other CoValues to load as well before calling `listener` for the first time.
|
267
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
268
|
+
*
|
269
|
+
* You can pass `[]` or `{}` for shallowly loading only this CoMap, or `{ fieldA: depthA, fieldB: depthB }` for recursively loading referenced CoValues.
|
270
|
+
*
|
271
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
272
|
+
*
|
273
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
274
|
+
*
|
275
|
+
* Also see the `useCoState` hook to reactively subscribe to a CoValue in a React component.
|
276
|
+
*
|
277
|
+
* @example
|
278
|
+
* ```ts
|
279
|
+
* const unsub = Person.subscribe(
|
280
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
281
|
+
* me,
|
282
|
+
* { pet: {} },
|
283
|
+
* (person) => console.log(person)
|
284
|
+
* );
|
285
|
+
* ```
|
286
|
+
*
|
287
|
+
* @category Subscription & Loading
|
288
|
+
*/
|
197
289
|
static subscribe(id, as, depth, listener) {
|
198
290
|
return subscribeToCoValue(this, id, as, depth, listener);
|
199
291
|
}
|
200
|
-
/**
|
292
|
+
/**
|
293
|
+
* Effectful version of `CoMap.subscribe()` that returns a stream of updates.
|
294
|
+
*
|
295
|
+
* Needs to be run inside an `AccountCtx` context.
|
296
|
+
*
|
297
|
+
* @category Subscription & Loading
|
298
|
+
*/
|
201
299
|
static subscribeEf(id, depth) {
|
202
300
|
return subscribeToCoValueEf(this, id, depth);
|
203
301
|
}
|
204
|
-
/**
|
302
|
+
/**
|
303
|
+
* Given an already loaded `CoMap`, ensure that the specified fields are loaded to the specified depth.
|
304
|
+
*
|
305
|
+
* Works like `CoMap.load()`, but you don't need to pass the ID or the account to load as again.
|
306
|
+
*
|
307
|
+
* @category Subscription & Loading
|
308
|
+
*/
|
205
309
|
ensureLoaded(depth) {
|
206
310
|
return ensureCoValueLoaded(this, depth);
|
207
311
|
}
|
208
|
-
/**
|
312
|
+
/**
|
313
|
+
* Given an already loaded `CoMap`, subscribe to updates to the `CoMap` and ensure that the specified fields are loaded to the specified depth.
|
314
|
+
*
|
315
|
+
* Works like `CoMap.subscribe()`, but you don't need to pass the ID or the account to load as again.
|
316
|
+
*
|
317
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
318
|
+
*
|
319
|
+
* @category Subscription & Loading
|
320
|
+
**/
|
209
321
|
subscribe(depth, listener) {
|
210
322
|
return subscribeToExistingCoValue(this, depth, listener);
|
211
323
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/coValues/coMap.ts"],"names":[],"mappings":"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"}
|
package/dist/coValues/group.js
CHANGED
@@ -33,7 +33,7 @@ export class Group extends CoValueBase {
|
|
33
33
|
const initOwner = options.owner;
|
34
34
|
if (!initOwner)
|
35
35
|
throw new Error("No owner provided");
|
36
|
-
if (initOwner
|
36
|
+
if (initOwner._type === "Account" &&
|
37
37
|
isControlledAccount(initOwner)) {
|
38
38
|
const rawOwner = initOwner._raw;
|
39
39
|
raw = rawOwner.createGroup();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/coValues/group.ts"],"names":[],"mappings":";AAYA,OAAO,EACH,OAAO,EACP,KAAK,EACL,WAAW,EACX,GAAG,EACH,EAAE,EACF,mBAAmB,EACnB,2BAA2B,EAC3B,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC7B,MAAM,gBAAgB,CAAC;AAGxB,uCAAuC;AACvC,MAAM,OAAO,OAAQ,SAAQ,KAAK;IAAlC;;QACI,SAAI,GAAG,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC;CAAA;AAED,uCAAuC;AACvC,MAAM,OAAO,KAAM,SAAQ,WAAW;IAUlC,IAAI,OAAO;QAKP,OAAQ,IAAI,CAAC,WAA4B,CAAC,OAAO,CAAC;IACtD,CAAC;IAoBD,IAAI,KAAK;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAE1B,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAEpB,CAAC;QAChB,OAAO;YACH,OAAO,EACH,SAAS;gBACR,IAAI,GAAG,CACJ,SAAS,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CAAC,OAEZ,CAIO;YAChB,IAAI,EACA,MAAM;gBACL,IAAI,GAAG,CACJ,MAAM,EACN,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CAAC,IAA6C,CAIlD;SACnB,CAAC;IACN,CAAC;IAED,8DAA8D;IAC9D,YAAY,OAA2D;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,GAAa,CAAC;QAElB,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YAClC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACrD,IACI,SAAS,
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/coValues/group.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/coValues/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EACH,OAAO,EACP,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,GAAG,EACH,OAAO,EACP,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAmCjD,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,KAAU;IAChC,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;AAC1B,8DAA8D;AAC9D,KAAU;IAEV,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;AACtE,CAAC;AAOD,gBAAgB;AAChB,MAAM,OAAO,WAAW;
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/coValues/interfaces.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/coValues/account.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { LocalNode } from "cojson";
|
1
|
+
import { LocalNode, cojsonInternals } from "cojson";
|
2
2
|
import type {
|
3
3
|
AgentSecret,
|
4
4
|
CoID,
|
@@ -214,6 +214,29 @@ export class Account extends CoValueBase implements CoValue {
|
|
214
214
|
return this.fromNode(node) as A;
|
215
215
|
}
|
216
216
|
|
217
|
+
static createAs<A extends Account>(
|
218
|
+
this: CoValueClass<A> & typeof Account,
|
219
|
+
as: Account,
|
220
|
+
options: {
|
221
|
+
creationProps: { name: string };
|
222
|
+
},
|
223
|
+
) {
|
224
|
+
// TODO: is there a cleaner way to do this?
|
225
|
+
const connectedPeers = cojsonInternals.connectedPeers(
|
226
|
+
"creatingAccount",
|
227
|
+
"createdAccount",
|
228
|
+
{ peer1role: "server", peer2role: "client" },
|
229
|
+
);
|
230
|
+
|
231
|
+
as._raw.core.node.syncManager.addPeer(connectedPeers[1]);
|
232
|
+
|
233
|
+
return this.create<A>({
|
234
|
+
creationProps: options.creationProps,
|
235
|
+
crypto: as._raw.core.node.crypto,
|
236
|
+
peersToLoadFrom: [connectedPeers[0]],
|
237
|
+
});
|
238
|
+
}
|
239
|
+
|
217
240
|
static fromNode<A extends Account>(
|
218
241
|
this: CoValueClass<A>,
|
219
242
|
node: LocalNode,
|
package/src/coValues/coList.ts
CHANGED
@@ -35,9 +35,40 @@ import {
|
|
35
35
|
import { encodeSync, decodeSync } from "@effect/schema/Schema";
|
36
36
|
import { Effect, Stream } from "effect";
|
37
37
|
|
38
|
-
/**
|
38
|
+
/**
|
39
|
+
* CoLists are collaborative versions of plain arrays.
|
40
|
+
*
|
41
|
+
* * @categoryDescription Content
|
42
|
+
* You can access items on a `CoList` as if they were normal items on a plain array, using `[]` notation, etc.
|
43
|
+
*
|
44
|
+
* Since `CoList` is a subclass of `Array`, you can use all the normal array methods like `push`, `pop`, `splice`, etc.
|
45
|
+
*
|
46
|
+
* ```ts
|
47
|
+
* colorList[0];
|
48
|
+
* colorList[3] = "yellow";
|
49
|
+
* colorList.push("Kawazaki Green");
|
50
|
+
* colorList.splice(1, 1);
|
51
|
+
* ```
|
52
|
+
*
|
53
|
+
* @category CoValues
|
54
|
+
*/
|
39
55
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
40
56
|
export class CoList<Item = any> extends Array<Item> implements CoValue {
|
57
|
+
/**
|
58
|
+
* Declare a `CoList` by subclassing `CoList.Of(...)` and passing the item schema using `co`.
|
59
|
+
*
|
60
|
+
* @example
|
61
|
+
* ```ts
|
62
|
+
* class ColorList extends CoList.Of(
|
63
|
+
* co.string
|
64
|
+
* ) {}
|
65
|
+
* class AnimalList extends CoList.Of(
|
66
|
+
* co.ref(Animal)
|
67
|
+
* ) {}
|
68
|
+
* ```
|
69
|
+
*
|
70
|
+
* @category Declaration
|
71
|
+
*/
|
41
72
|
static Of<Item>(item: Item): typeof CoList<Item> {
|
42
73
|
// TODO: cache superclass for item class
|
43
74
|
return class CoListOf extends CoList<Item> {
|
@@ -45,36 +76,62 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
45
76
|
};
|
46
77
|
}
|
47
78
|
|
48
|
-
/**
|
79
|
+
/**
|
80
|
+
* @ignore
|
81
|
+
* @deprecated Use UPPERCASE `CoList.Of` instead! */
|
49
82
|
static of(..._args: never): never {
|
50
83
|
throw new Error("Can't use Array.of with CoLists");
|
51
84
|
}
|
52
85
|
|
86
|
+
/**
|
87
|
+
* The ID of this `CoList`
|
88
|
+
* @category Content */
|
53
89
|
id!: ID<this>;
|
90
|
+
/** @category Type Helpers */
|
54
91
|
_type!: "CoList";
|
55
92
|
static {
|
56
93
|
this.prototype._type = "CoList";
|
57
94
|
}
|
95
|
+
/** @category Internals */
|
58
96
|
_raw!: RawCoList;
|
97
|
+
/** @category Internals */
|
59
98
|
_instanceID!: string;
|
60
99
|
|
61
100
|
/** @internal This is only a marker type and doesn't exist at runtime */
|
62
101
|
[ItemsSym]!: Item;
|
102
|
+
/** @internal */
|
63
103
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
64
104
|
static _schema: any;
|
105
|
+
/** @internal */
|
65
106
|
get _schema(): {
|
66
107
|
[ItemsSym]: SchemaFor<Item>;
|
67
108
|
} {
|
68
109
|
return (this.constructor as typeof CoList)._schema;
|
69
110
|
}
|
70
111
|
|
112
|
+
/** @category Collaboration */
|
71
113
|
get _owner(): Account | Group {
|
72
114
|
return this._raw.group instanceof RawAccount
|
73
115
|
? Account.fromRaw(this._raw.group)
|
74
116
|
: Group.fromRaw(this._raw.group);
|
75
117
|
}
|
76
118
|
|
77
|
-
/**
|
119
|
+
/**
|
120
|
+
* If a `CoList`'s items are a `co.ref(...)`, you can use `coList._refs[i]` to access
|
121
|
+
* the `Ref` instead of the potentially loaded/null value.
|
122
|
+
*
|
123
|
+
* This allows you to always get the ID or load the value manually.
|
124
|
+
*
|
125
|
+
* @example
|
126
|
+
* ```ts
|
127
|
+
* animals._refs[0].id; // => ID<Animal>
|
128
|
+
* animals._refs[0].value;
|
129
|
+
* // => Animal | null
|
130
|
+
* const animal = await animals._refs[0].load();
|
131
|
+
* ```
|
132
|
+
*
|
133
|
+
* @category Content
|
134
|
+
**/
|
78
135
|
get _refs(): {
|
79
136
|
[idx: number]: Exclude<Item, null> extends CoValue
|
80
137
|
? Ref<UnCo<Exclude<Item, null>>>
|
@@ -152,6 +209,27 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
152
209
|
return new Proxy(this, CoListProxyHandler as ProxyHandler<this>);
|
153
210
|
}
|
154
211
|
|
212
|
+
/**
|
213
|
+
* Create a new CoList with the given initial values and owner.
|
214
|
+
*
|
215
|
+
* The owner (a Group or Account) determines access rights to the CoMap.
|
216
|
+
*
|
217
|
+
* The CoList will immediately be persisted and synced to connected peers.
|
218
|
+
*
|
219
|
+
* @example
|
220
|
+
* ```ts
|
221
|
+
* const colours = ColorList.create(
|
222
|
+
* ["red", "green", "blue"],
|
223
|
+
* { owner: me }
|
224
|
+
* );
|
225
|
+
* const animals = AnimalList.create(
|
226
|
+
* [cat, dog, fish],
|
227
|
+
* { owner: me }
|
228
|
+
* );
|
229
|
+
* ```
|
230
|
+
*
|
231
|
+
* @category Creation
|
232
|
+
**/
|
155
233
|
static create<L extends CoList>(
|
156
234
|
this: CoValueClass<L>,
|
157
235
|
items: UnCo<L[number]>[],
|
@@ -160,9 +238,6 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
160
238
|
return new this({ init: items, owner: options.owner });
|
161
239
|
}
|
162
240
|
|
163
|
-
push(...items: Item[]): number;
|
164
|
-
/** @private For exact type compatibility with Array superclass */
|
165
|
-
push(...items: Item[]): number;
|
166
241
|
push(...items: Item[]): number {
|
167
242
|
for (const item of toRawItems(
|
168
243
|
items as Item[],
|
@@ -174,9 +249,6 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
174
249
|
return this._raw.entries().length;
|
175
250
|
}
|
176
251
|
|
177
|
-
unshift(...items: Item[]): number;
|
178
|
-
/** @private For exact type compatibility with Array superclass */
|
179
|
-
unshift(...items: Item[]): number;
|
180
252
|
unshift(...items: Item[]): number {
|
181
253
|
for (const item of toRawItems(
|
182
254
|
items as Item[],
|
@@ -247,6 +319,7 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
247
319
|
return this.toJSON();
|
248
320
|
}
|
249
321
|
|
322
|
+
/** @category Internals */
|
250
323
|
static fromRaw<V extends CoList>(
|
251
324
|
this: CoValueClass<V> & typeof CoList,
|
252
325
|
raw: RawCoList,
|
@@ -254,6 +327,7 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
254
327
|
return new this({ fromRaw: raw });
|
255
328
|
}
|
256
329
|
|
330
|
+
/** @internal */
|
257
331
|
static schema<V extends CoList>(
|
258
332
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
259
333
|
this: { new (...args: any): V } & typeof CoList,
|
@@ -263,7 +337,28 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
263
337
|
Object.assign(this._schema, def);
|
264
338
|
}
|
265
339
|
|
266
|
-
/**
|
340
|
+
/**
|
341
|
+
* Load a `CoList` with a given ID, as a given account.
|
342
|
+
*
|
343
|
+
* `depth` specifies if item CoValue references should be loaded as well before resolving.
|
344
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
345
|
+
*
|
346
|
+
* You can pass `[]` or for shallowly loading only this CoList, or `[itemDepth]` for recursively loading referenced CoValues.
|
347
|
+
*
|
348
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
349
|
+
*
|
350
|
+
* @example
|
351
|
+
* ```ts
|
352
|
+
* const animalsWithVets =
|
353
|
+
* await ListOfAnimals.load(
|
354
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
355
|
+
* me,
|
356
|
+
* [{ vet: {} }]
|
357
|
+
* );
|
358
|
+
* ```
|
359
|
+
*
|
360
|
+
* @category Subscription & Loading
|
361
|
+
*/
|
267
362
|
static load<L extends CoList, Depth>(
|
268
363
|
this: CoValueClass<L>,
|
269
364
|
id: ID<L>,
|
@@ -273,7 +368,13 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
273
368
|
return loadCoValue(this, id, as, depth);
|
274
369
|
}
|
275
370
|
|
276
|
-
/**
|
371
|
+
/**
|
372
|
+
* Effectful version of `CoList.load()`.
|
373
|
+
*
|
374
|
+
* Needs to be run inside an `AccountCtx` context.
|
375
|
+
*
|
376
|
+
* @category Subscription & Loading
|
377
|
+
*/
|
277
378
|
static loadEf<L extends CoList, Depth>(
|
278
379
|
this: CoValueClass<L>,
|
279
380
|
id: ID<L>,
|
@@ -282,7 +383,34 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
282
383
|
return loadCoValueEf<L, Depth>(this, id, depth);
|
283
384
|
}
|
284
385
|
|
285
|
-
/**
|
386
|
+
/**
|
387
|
+
* Load and subscribe to a `CoList` with a given ID, as a given account.
|
388
|
+
*
|
389
|
+
* Automatically also subscribes to updates to all referenced/nested CoValues as soon as they are accessed in the listener.
|
390
|
+
*
|
391
|
+
* `depth` specifies if item CoValue references should be loaded as well before calling `listener` for the first time.
|
392
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
393
|
+
*
|
394
|
+
* You can pass `[]` or for shallowly loading only this CoList, or `[itemDepth]` for recursively loading referenced CoValues.
|
395
|
+
*
|
396
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
397
|
+
*
|
398
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
399
|
+
*
|
400
|
+
* Also see the `useCoState` hook to reactively subscribe to a CoValue in a React component.
|
401
|
+
*
|
402
|
+
* @example
|
403
|
+
* ```ts
|
404
|
+
* const unsub = ListOfAnimals.subscribe(
|
405
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
406
|
+
* me,
|
407
|
+
* { vet: {} },
|
408
|
+
* (animalsWithVets) => console.log(animalsWithVets)
|
409
|
+
* );
|
410
|
+
* ```
|
411
|
+
*
|
412
|
+
* @category Subscription & Loading
|
413
|
+
*/
|
286
414
|
static subscribe<L extends CoList, Depth>(
|
287
415
|
this: CoValueClass<L>,
|
288
416
|
id: ID<L>,
|
@@ -293,7 +421,13 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
293
421
|
return subscribeToCoValue<L, Depth>(this, id, as, depth, listener);
|
294
422
|
}
|
295
423
|
|
296
|
-
/**
|
424
|
+
/**
|
425
|
+
* Effectful version of `CoList.subscribe()` that returns a stream of updates.
|
426
|
+
*
|
427
|
+
* Needs to be run inside an `AccountCtx` context.
|
428
|
+
*
|
429
|
+
* @category Subscription & Loading
|
430
|
+
*/
|
297
431
|
static subscribeEf<L extends CoList, Depth>(
|
298
432
|
this: CoValueClass<L>,
|
299
433
|
id: ID<L>,
|
@@ -302,7 +436,13 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
302
436
|
return subscribeToCoValueEf<L, Depth>(this, id, depth);
|
303
437
|
}
|
304
438
|
|
305
|
-
/**
|
439
|
+
/**
|
440
|
+
* Given an already loaded `CoList`, ensure that items are loaded to the specified depth.
|
441
|
+
*
|
442
|
+
* Works like `CoList.load()`, but you don't need to pass the ID or the account to load as again.
|
443
|
+
*
|
444
|
+
* @category Subscription & Loading
|
445
|
+
*/
|
306
446
|
ensureLoaded<L extends CoList, Depth>(
|
307
447
|
this: L,
|
308
448
|
depth: Depth & DepthsIn<L>,
|
@@ -310,7 +450,15 @@ export class CoList<Item = any> extends Array<Item> implements CoValue {
|
|
310
450
|
return ensureCoValueLoaded(this, depth);
|
311
451
|
}
|
312
452
|
|
313
|
-
/**
|
453
|
+
/**
|
454
|
+
* Given an already loaded `CoList`, subscribe to updates to the `CoList` and ensure that items are loaded to the specified depth.
|
455
|
+
*
|
456
|
+
* Works like `CoList.subscribe()`, but you don't need to pass the ID or the account to load as again.
|
457
|
+
*
|
458
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
459
|
+
*
|
460
|
+
* @category Subscription & Loading
|
461
|
+
**/
|
314
462
|
subscribe<L extends CoList, Depth>(
|
315
463
|
this: L,
|
316
464
|
depth: Depth & DepthsIn<L>,
|
package/src/coValues/coMap.ts
CHANGED
@@ -53,6 +53,8 @@ type InitValuesFor<C extends CoMap> = {
|
|
53
53
|
* @categoryDescription Declaration
|
54
54
|
* Declare your own CoMap schemas by subclassing `CoMap` and assigning field schemas with `co`.
|
55
55
|
*
|
56
|
+
* Optional `co.ref(...)` fields must be marked with `{ optional: true }`.
|
57
|
+
*
|
56
58
|
* ```ts
|
57
59
|
* import { co, CoMap } from "jazz-tools";
|
58
60
|
*
|
@@ -60,6 +62,7 @@ type InitValuesFor<C extends CoMap> = {
|
|
60
62
|
* name = co.string;
|
61
63
|
* age = co.number;
|
62
64
|
* pet = co.ref(Animal);
|
65
|
+
* car = co.ref(Car, { optional: true });
|
63
66
|
* }
|
64
67
|
* ```
|
65
68
|
*
|
@@ -103,17 +106,19 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
103
106
|
/**
|
104
107
|
* If property `prop` is a `co.ref(...)`, you can use `coMaps._refs.prop` to access
|
105
108
|
* the `Ref` instead of the potentially loaded/null value.
|
109
|
+
*
|
106
110
|
* This allows you to always get the ID or load the value manually.
|
107
111
|
*
|
108
112
|
* @example
|
109
113
|
* ```ts
|
110
114
|
* person._refs.pet.id; // => ID<Animal>
|
111
115
|
* person._refs.pet.value;
|
112
|
-
* // => Animal |
|
116
|
+
* // => Animal | null
|
113
117
|
* const pet = await person._refs.pet.load();
|
114
118
|
* ```
|
115
119
|
*
|
116
|
-
* @category Content
|
120
|
+
* @category Content
|
121
|
+
**/
|
117
122
|
get _refs(): {
|
118
123
|
[Key in CoKeys<this>]: IfCo<this[Key], RefIfCoValue<this[Key]>>;
|
119
124
|
} {
|
@@ -227,7 +232,24 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
227
232
|
return new Proxy(this, CoMapProxyHandler as ProxyHandler<this>);
|
228
233
|
}
|
229
234
|
|
230
|
-
/**
|
235
|
+
/**
|
236
|
+
* Create a new CoMap with the given initial values and owner.
|
237
|
+
*
|
238
|
+
* The owner (a Group or Account) determines access rights to the CoMap.
|
239
|
+
*
|
240
|
+
* The CoMap will immediately be persisted and synced to connected peers.
|
241
|
+
*
|
242
|
+
* @example
|
243
|
+
* ```ts
|
244
|
+
* const person = Person.create({
|
245
|
+
* name: "Alice",
|
246
|
+
* age: 42,
|
247
|
+
* pet: cat,
|
248
|
+
* }, { owner: friendGroup });
|
249
|
+
* ```
|
250
|
+
*
|
251
|
+
* @category Creation
|
252
|
+
**/
|
231
253
|
static create<M extends CoMap>(
|
232
254
|
this: CoValueClass<M>,
|
233
255
|
init: Simplify<CoMapInit<M>>,
|
@@ -301,7 +323,24 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
301
323
|
return rawOwner.createMap(rawInit);
|
302
324
|
}
|
303
325
|
|
304
|
-
/**
|
326
|
+
/**
|
327
|
+
* Declare a Record-like CoMap schema, by extending `CoMap.Record(...)` and passing the value schema using `co`. Keys are always `string`.
|
328
|
+
*
|
329
|
+
* @example
|
330
|
+
* ```ts
|
331
|
+
* import { co, CoMap } from "jazz-tools";
|
332
|
+
*
|
333
|
+
* class ColorToFruitMap extends CoMap.Record(
|
334
|
+
* co.ref(Fruit)
|
335
|
+
* ) {}
|
336
|
+
*
|
337
|
+
* // assume we have map: ColorToFruitMap
|
338
|
+
* // and strawberry: Fruit
|
339
|
+
* map["red"] = strawberry;
|
340
|
+
* ```
|
341
|
+
*
|
342
|
+
* @category Declaration
|
343
|
+
*/
|
305
344
|
static Record<Value>(value: IfCo<Value, Value>) {
|
306
345
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
307
346
|
class RecordLikeCoMap extends CoMap {
|
@@ -313,7 +352,27 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
313
352
|
return RecordLikeCoMap;
|
314
353
|
}
|
315
354
|
|
316
|
-
/**
|
355
|
+
/**
|
356
|
+
* Load a `CoMap` with a given ID, as a given account.
|
357
|
+
*
|
358
|
+
* `depth` specifies which (if any) fields that reference other CoValues to load as well before resolving.
|
359
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
360
|
+
*
|
361
|
+
* You can pass `[]` or `{}` for shallowly loading only this CoMap, or `{ fieldA: depthA, fieldB: depthB }` for recursively loading referenced CoValues.
|
362
|
+
*
|
363
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
364
|
+
*
|
365
|
+
* @example
|
366
|
+
* ```ts
|
367
|
+
* const person = await Person.load(
|
368
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
369
|
+
* me,
|
370
|
+
* { pet: {} }
|
371
|
+
* );
|
372
|
+
* ```
|
373
|
+
*
|
374
|
+
* @category Subscription & Loading
|
375
|
+
*/
|
317
376
|
static load<M extends CoMap, Depth>(
|
318
377
|
this: CoValueClass<M>,
|
319
378
|
id: ID<M>,
|
@@ -323,7 +382,13 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
323
382
|
return loadCoValue(this, id, as, depth);
|
324
383
|
}
|
325
384
|
|
326
|
-
/**
|
385
|
+
/**
|
386
|
+
* Effectful version of `CoMap.load()`.
|
387
|
+
*
|
388
|
+
* Needs to be run inside an `AccountCtx` context.
|
389
|
+
*
|
390
|
+
* @category Subscription & Loading
|
391
|
+
*/
|
327
392
|
static loadEf<M extends CoMap, Depth>(
|
328
393
|
this: CoValueClass<M>,
|
329
394
|
id: ID<M>,
|
@@ -332,7 +397,34 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
332
397
|
return loadCoValueEf<M, Depth>(this, id, depth);
|
333
398
|
}
|
334
399
|
|
335
|
-
/**
|
400
|
+
/**
|
401
|
+
* Load and subscribe to a `CoMap` with a given ID, as a given account.
|
402
|
+
*
|
403
|
+
* Automatically also subscribes to updates to all referenced/nested CoValues as soon as they are accessed in the listener.
|
404
|
+
*
|
405
|
+
* `depth` specifies which (if any) fields that reference other CoValues to load as well before calling `listener` for the first time.
|
406
|
+
* The `DeeplyLoaded` return type guarantees that corresponding referenced CoValues are loaded to the specified depth.
|
407
|
+
*
|
408
|
+
* You can pass `[]` or `{}` for shallowly loading only this CoMap, or `{ fieldA: depthA, fieldB: depthB }` for recursively loading referenced CoValues.
|
409
|
+
*
|
410
|
+
* Check out the `load` methods on `CoMap`/`CoList`/`CoStream`/`Group`/`Account` to see which depth structures are valid to nest.
|
411
|
+
*
|
412
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
413
|
+
*
|
414
|
+
* Also see the `useCoState` hook to reactively subscribe to a CoValue in a React component.
|
415
|
+
*
|
416
|
+
* @example
|
417
|
+
* ```ts
|
418
|
+
* const unsub = Person.subscribe(
|
419
|
+
* "co_zdsMhHtfG6VNKt7RqPUPvUtN2Ax",
|
420
|
+
* me,
|
421
|
+
* { pet: {} },
|
422
|
+
* (person) => console.log(person)
|
423
|
+
* );
|
424
|
+
* ```
|
425
|
+
*
|
426
|
+
* @category Subscription & Loading
|
427
|
+
*/
|
336
428
|
static subscribe<M extends CoMap, Depth>(
|
337
429
|
this: CoValueClass<M>,
|
338
430
|
id: ID<M>,
|
@@ -343,7 +435,13 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
343
435
|
return subscribeToCoValue<M, Depth>(this, id, as, depth, listener);
|
344
436
|
}
|
345
437
|
|
346
|
-
/**
|
438
|
+
/**
|
439
|
+
* Effectful version of `CoMap.subscribe()` that returns a stream of updates.
|
440
|
+
*
|
441
|
+
* Needs to be run inside an `AccountCtx` context.
|
442
|
+
*
|
443
|
+
* @category Subscription & Loading
|
444
|
+
*/
|
347
445
|
static subscribeEf<M extends CoMap, Depth>(
|
348
446
|
this: CoValueClass<M>,
|
349
447
|
id: ID<M>,
|
@@ -352,7 +450,13 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
352
450
|
return subscribeToCoValueEf<M, Depth>(this, id, depth);
|
353
451
|
}
|
354
452
|
|
355
|
-
/**
|
453
|
+
/**
|
454
|
+
* Given an already loaded `CoMap`, ensure that the specified fields are loaded to the specified depth.
|
455
|
+
*
|
456
|
+
* Works like `CoMap.load()`, but you don't need to pass the ID or the account to load as again.
|
457
|
+
*
|
458
|
+
* @category Subscription & Loading
|
459
|
+
*/
|
356
460
|
ensureLoaded<M extends CoMap, Depth>(
|
357
461
|
this: M,
|
358
462
|
depth: Depth & DepthsIn<M>,
|
@@ -360,7 +464,15 @@ export class CoMap extends CoValueBase implements CoValue {
|
|
360
464
|
return ensureCoValueLoaded(this, depth);
|
361
465
|
}
|
362
466
|
|
363
|
-
/**
|
467
|
+
/**
|
468
|
+
* Given an already loaded `CoMap`, subscribe to updates to the `CoMap` and ensure that the specified fields are loaded to the specified depth.
|
469
|
+
*
|
470
|
+
* Works like `CoMap.subscribe()`, but you don't need to pass the ID or the account to load as again.
|
471
|
+
*
|
472
|
+
* Returns an unsubscribe function that you should call when you no longer need updates.
|
473
|
+
*
|
474
|
+
* @category Subscription & Loading
|
475
|
+
**/
|
364
476
|
subscribe<M extends CoMap, Depth>(
|
365
477
|
this: M,
|
366
478
|
depth: Depth & DepthsIn<M>,
|
package/src/coValues/group.ts
CHANGED
@@ -114,7 +114,7 @@ export class Group extends CoValueBase implements CoValue {
|
|
114
114
|
const initOwner = options.owner;
|
115
115
|
if (!initOwner) throw new Error("No owner provided");
|
116
116
|
if (
|
117
|
-
initOwner
|
117
|
+
initOwner._type === "Account" &&
|
118
118
|
isControlledAccount(initOwner)
|
119
119
|
) {
|
120
120
|
const rawOwner = initOwner._raw;
|