@verdant-web/react 15.0.1

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Grant Forrest
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ import { StorageSchema } from '@verdant-web/common';
2
+ export declare function createHooks<Presence = any, Profile = any>(schema: StorageSchema<any>): any;
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.createHooks = void 0;
15
+ const jsx_runtime_1 = require("react/jsx-runtime");
16
+ const store_1 = require("@verdant-web/store");
17
+ const react_1 = require("react");
18
+ const suspend_react_1 = require("suspend-react");
19
+ const with_selector_js_1 = require("use-sync-external-store/with-selector.js");
20
+ function useLiveQuery(liveQuery) {
21
+ if (liveQuery && liveQuery.status === 'initial') {
22
+ (0, suspend_react_1.suspend)(() => liveQuery.resolved, [liveQuery]);
23
+ }
24
+ return (0, react_1.useSyncExternalStore)((callback) => {
25
+ if (liveQuery) {
26
+ return liveQuery.subscribe(callback);
27
+ }
28
+ else {
29
+ return () => { };
30
+ }
31
+ }, () => {
32
+ return liveQuery ? liveQuery.current : null;
33
+ });
34
+ }
35
+ function capitalize(str) {
36
+ return (str.charAt(0).toUpperCase() + str.slice(1));
37
+ }
38
+ function createHooks(schema) {
39
+ const Context = (0, react_1.createContext)(null);
40
+ function useStorage() {
41
+ const ctx = (0, react_1.useContext)(Context);
42
+ if (!ctx) {
43
+ throw new Error('No verdant provider was found');
44
+ }
45
+ return (0, suspend_react_1.suspend)(() => ctx.readyPromise, ['lofi_' + ctx.namespace]);
46
+ }
47
+ function useWatch(liveObject, prop) {
48
+ return (0, react_1.useSyncExternalStore)((handler) => {
49
+ if (liveObject) {
50
+ return liveObject.subscribe('change', handler);
51
+ }
52
+ return () => { };
53
+ }, () => {
54
+ if (liveObject) {
55
+ if (liveObject instanceof store_1.EntityFile) {
56
+ return liveObject.url;
57
+ }
58
+ else {
59
+ if (prop) {
60
+ return liveObject.get(prop);
61
+ }
62
+ return liveObject.getAll();
63
+ }
64
+ }
65
+ return undefined;
66
+ });
67
+ }
68
+ function useSelf() {
69
+ const storage = useStorage();
70
+ return (0, react_1.useSyncExternalStore)((callback) => storage.sync.presence.subscribe('selfChanged', callback), () => storage.sync.presence.self);
71
+ }
72
+ function usePeerIds() {
73
+ const storage = useStorage();
74
+ return (0, react_1.useSyncExternalStore)((callback) => storage.sync.presence.subscribe('peersChanged', callback), () => storage.sync.presence.peerIds);
75
+ }
76
+ function usePeer(peerId) {
77
+ const storage = useStorage();
78
+ return (0, react_1.useSyncExternalStore)((callback) => {
79
+ const unsubs = [];
80
+ unsubs.push(storage.sync.presence.subscribe('peerChanged', (id, user) => {
81
+ if (id === peerId) {
82
+ callback();
83
+ }
84
+ }));
85
+ unsubs.push(storage.sync.presence.subscribe('peerLeft', (id) => {
86
+ if (id === peerId) {
87
+ callback();
88
+ }
89
+ }));
90
+ return () => {
91
+ unsubs.forEach((unsub) => unsub());
92
+ };
93
+ }, () => { var _a; return (peerId ? (_a = storage.sync.presence.peers[peerId]) !== null && _a !== void 0 ? _a : null : null); });
94
+ }
95
+ function useFindPeer(query, options) {
96
+ const storage = useStorage();
97
+ return (0, react_1.useSyncExternalStore)((callback) => {
98
+ const unsubs = [];
99
+ unsubs.push(storage.sync.presence.subscribe('peerChanged', (id, user) => {
100
+ if (query(user)) {
101
+ callback();
102
+ }
103
+ }));
104
+ unsubs.push(storage.sync.presence.subscribe('peerLeft', (id) => {
105
+ if (query(storage.sync.presence.peers[id])) {
106
+ callback();
107
+ }
108
+ }));
109
+ if (options === null || options === void 0 ? void 0 : options.includeSelf) {
110
+ unsubs.push(storage.sync.presence.subscribe('selfChanged', (user) => {
111
+ if (query(user)) {
112
+ callback();
113
+ }
114
+ }));
115
+ }
116
+ return () => {
117
+ unsubs.forEach((unsub) => unsub());
118
+ };
119
+ }, () => {
120
+ const peers = Object.values(storage.sync.presence.peers);
121
+ if (options === null || options === void 0 ? void 0 : options.includeSelf) {
122
+ peers.push(storage.sync.presence.self);
123
+ }
124
+ return peers.find(query) || null;
125
+ });
126
+ }
127
+ function useFindPeers(query, options) {
128
+ const storage = useStorage();
129
+ return (0, with_selector_js_1.useSyncExternalStoreWithSelector)((callback) => {
130
+ const unsubs = [];
131
+ unsubs.push(storage.sync.presence.subscribe('peerChanged', (id, user) => {
132
+ if (query(user)) {
133
+ callback();
134
+ }
135
+ }));
136
+ unsubs.push(storage.sync.presence.subscribe('peerLeft', (id) => {
137
+ callback();
138
+ }));
139
+ if (options === null || options === void 0 ? void 0 : options.includeSelf) {
140
+ unsubs.push(storage.sync.presence.subscribe('selfChanged', (user) => {
141
+ if (query(user)) {
142
+ callback();
143
+ }
144
+ }));
145
+ }
146
+ return () => {
147
+ unsubs.forEach((unsub) => unsub());
148
+ };
149
+ }, () => {
150
+ const peers = Object.values(storage.sync.presence.peers).filter(Boolean);
151
+ if (options === null || options === void 0 ? void 0 : options.includeSelf) {
152
+ peers.push(storage.sync.presence.self);
153
+ }
154
+ return peers.filter(query);
155
+ }, () => [], (peers) => peers, (a, b) => a.length === b.length && a.every((peer, i) => peer === b[i]));
156
+ }
157
+ function useSyncStatus() {
158
+ const storage = useStorage();
159
+ return (0, react_1.useSyncExternalStore)((callback) => storage.sync.subscribe('onlineChange', callback), () => storage.sync.isConnected);
160
+ }
161
+ function useUndo() {
162
+ const storage = useStorage();
163
+ return (0, react_1.useCallback)(() => storage.undoHistory.undo(), [storage]);
164
+ }
165
+ function useRedo() {
166
+ const storage = useStorage();
167
+ return (0, react_1.useCallback)(() => storage.undoHistory.redo(), [storage]);
168
+ }
169
+ function useCanUndo() {
170
+ const storage = useStorage();
171
+ return (0, react_1.useSyncExternalStore)((callback) => storage.undoHistory.subscribe('change', callback), () => storage.undoHistory.canUndo);
172
+ }
173
+ function useCanRedo() {
174
+ const storage = useStorage();
175
+ return (0, react_1.useSyncExternalStore)((callback) => storage.undoHistory.subscribe('change', callback), () => storage.undoHistory.canRedo);
176
+ }
177
+ function useUnsuspendedClient() {
178
+ const desc = (0, react_1.useContext)(Context);
179
+ const client = desc === null || desc === void 0 ? void 0 : desc.current;
180
+ const [_, forceUpdate] = (0, react_1.useState)(0);
181
+ if (desc && !client) {
182
+ desc.readyPromise.then(() => forceUpdate((n) => n + 1));
183
+ }
184
+ return client || null;
185
+ }
186
+ /**
187
+ * Non-suspending hook which allows declarative sync start/stop
188
+ * control.
189
+ *
190
+ * You can optionally configure parameters as part of this as well.
191
+ */
192
+ function useSync(isOn, config = {}) {
193
+ const client = useUnsuspendedClient();
194
+ (0, react_1.useEffect)(() => {
195
+ if (client) {
196
+ if (isOn) {
197
+ client.sync.start();
198
+ }
199
+ else {
200
+ client.sync.stop();
201
+ }
202
+ }
203
+ }, [client, isOn]);
204
+ (0, react_1.useEffect)(() => {
205
+ if (client) {
206
+ if (config.mode !== undefined) {
207
+ client.sync.setMode(config.mode);
208
+ }
209
+ }
210
+ }, [client, config.mode]);
211
+ (0, react_1.useEffect)(() => {
212
+ if (client) {
213
+ if (config.pullInterval !== undefined) {
214
+ client.sync.setPullInterval(config.pullInterval);
215
+ }
216
+ }
217
+ }, [client, config.pullInterval]);
218
+ }
219
+ function SyncController({ isOn }) {
220
+ useSync(isOn);
221
+ return null;
222
+ }
223
+ const hooks = {
224
+ useStorage,
225
+ useClient: useStorage,
226
+ useUnsuspendedClient,
227
+ useWatch,
228
+ useSelf,
229
+ usePeerIds,
230
+ usePeer,
231
+ useFindPeer,
232
+ useFindPeers,
233
+ useSyncStatus,
234
+ useUndo,
235
+ useRedo,
236
+ useCanUndo,
237
+ useCanRedo,
238
+ useSync,
239
+ Context,
240
+ Provider: (_a) => {
241
+ var { value, children, sync, suspenseFallback } = _a, rest = __rest(_a, ["value", "children", "sync", "suspenseFallback"]);
242
+ // auto-open storage when used in provider
243
+ (0, react_1.useMemo)(() => {
244
+ value.open();
245
+ }, [value]);
246
+ return ((0, jsx_runtime_1.jsx)(Context.Provider, Object.assign({ value: value }, rest, { children: (0, jsx_runtime_1.jsxs)(react_1.Suspense, Object.assign({ fallback: suspenseFallback || null }, { children: [children, sync !== undefined && (0, jsx_runtime_1.jsx)(SyncController, { isOn: sync })] })) })));
247
+ },
248
+ };
249
+ const collectionNames = Object.keys(schema.collections);
250
+ for (const name of collectionNames) {
251
+ const collection = schema.collections[name];
252
+ const getOneHookName = `use${capitalize(collection.name)}`;
253
+ hooks[getOneHookName] = function useIndividual(id, { skip } = {}) {
254
+ const storage = useStorage();
255
+ const liveQuery = (0, react_1.useMemo)(() => {
256
+ return skip ? null : storage[name].get(id);
257
+ }, [id, skip]);
258
+ const data = useLiveQuery(liveQuery);
259
+ return data;
260
+ };
261
+ const findOneHookName = `useOne${capitalize(collection.name)}`;
262
+ hooks[findOneHookName] = function useOne({ skip, index, key, } = {}) {
263
+ const storage = useStorage();
264
+ const liveQuery = (0, react_1.useMemo)(() => {
265
+ return skip ? null : storage[name].findOne({ index, key });
266
+ }, [index, skip]);
267
+ const data = useLiveQuery(liveQuery);
268
+ return data;
269
+ };
270
+ const getAllHookName = `useAll${capitalize(collection.pluralName || collection.name + 's')}`;
271
+ hooks[getAllHookName] = function useAll({ index, skip, key, } = {}) {
272
+ const storage = useStorage();
273
+ // assumptions: this query getter is fast and returns the same
274
+ // query identity for subsequent calls.
275
+ const liveQuery = (0, react_1.useMemo)(() => (skip ? null : storage[name].findAll({ index, key })), [index, skip]);
276
+ const data = useLiveQuery(liveQuery);
277
+ return data || [];
278
+ };
279
+ const getAllPaginatedHookName = `useAll${capitalize(collection.pluralName || collection.name + 's')}Paginated`;
280
+ hooks[getAllPaginatedHookName] = function useAllPaginated({ index, skip, pageSize = 10, key, } = {}) {
281
+ const storage = useStorage();
282
+ // assumptions: this query getter is fast and returns the same
283
+ // query identity for subsequent calls.
284
+ const liveQuery = (0, react_1.useMemo)(() => skip
285
+ ? null
286
+ : storage[name].findPage({
287
+ index,
288
+ pageSize,
289
+ page: 0,
290
+ key: key || getAllPaginatedHookName,
291
+ }), [index, skip, pageSize]);
292
+ const data = useLiveQuery(liveQuery);
293
+ const tools = (0, react_1.useMemo)(() => ({
294
+ next: () => liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.nextPage(),
295
+ previous: () => liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.previousPage(),
296
+ setPage: (page) => liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.setPage(page),
297
+ get hasPrevious() {
298
+ return liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.hasPreviousPage;
299
+ },
300
+ get hasNext() {
301
+ return liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.hasNextPage;
302
+ },
303
+ }), [liveQuery]);
304
+ return [data, tools];
305
+ };
306
+ const getAllInfiniteHookName = `useAll${capitalize(collection.pluralName || collection.name + 's')}Infinite`;
307
+ hooks[getAllInfiniteHookName] = function useAllInfinite({ index, skip, pageSize = 10, key, } = {}) {
308
+ const storage = useStorage();
309
+ // assumptions: this query getter is fast and returns the same
310
+ // query identity for subsequent calls.
311
+ const liveQuery = (0, react_1.useMemo)(() => skip
312
+ ? null
313
+ : storage[name].findAllInfinite({
314
+ index,
315
+ pageSize,
316
+ key: key || getAllInfiniteHookName,
317
+ }), [index, skip, pageSize]);
318
+ const data = useLiveQuery(liveQuery);
319
+ const tools = (0, react_1.useMemo)(() => ({
320
+ loadMore: () => liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.loadMore(),
321
+ get hasMore() {
322
+ return liveQuery === null || liveQuery === void 0 ? void 0 : liveQuery.hasMore;
323
+ },
324
+ }), [liveQuery]);
325
+ return [data, tools];
326
+ };
327
+ }
328
+ hooks.withMutations = (mutations) => {
329
+ const augmentedHooks = Object.assign({}, hooks);
330
+ for (const [name, subHook] of Object.entries(mutations)) {
331
+ augmentedHooks[name] = (...args) => {
332
+ const client = hooks.useClient();
333
+ return subHook(client, ...args);
334
+ };
335
+ }
336
+ return augmentedHooks;
337
+ };
338
+ return hooks;
339
+ }
340
+ exports.createHooks = createHooks;
341
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const store_1 = require("@verdant-web/store");
4
+ const vitest_1 = require("vitest");
5
+ const hooks_js_1 = require("./hooks.js");
6
+ (0, vitest_1.describe)('generated hooks', () => {
7
+ (0, vitest_1.it)('should create singular and plural hooks for all collections', () => {
8
+ const author = (0, store_1.collection)({
9
+ name: 'author',
10
+ primaryKey: 'id',
11
+ fields: {
12
+ id: {
13
+ type: 'string',
14
+ indexed: true,
15
+ },
16
+ name: {
17
+ type: 'string',
18
+ },
19
+ },
20
+ compounds: {},
21
+ synthetics: {},
22
+ });
23
+ const tally = (0, store_1.collection)({
24
+ name: 'tally',
25
+ pluralName: 'tallies',
26
+ primaryKey: 'id',
27
+ fields: {
28
+ id: {
29
+ type: 'string',
30
+ indexed: true,
31
+ },
32
+ count: {
33
+ type: 'number',
34
+ },
35
+ },
36
+ compounds: {},
37
+ synthetics: {},
38
+ });
39
+ const testSchema = (0, store_1.schema)({
40
+ version: 1,
41
+ collections: {
42
+ author,
43
+ tally,
44
+ },
45
+ });
46
+ const hooks = (0, hooks_js_1.createHooks)(testSchema);
47
+ (0, vitest_1.expect)(hooks).toHaveProperty('useAuthor');
48
+ (0, vitest_1.expect)(hooks).toHaveProperty('useAllAuthors');
49
+ (0, vitest_1.expect)(hooks).toHaveProperty('useTally');
50
+ (0, vitest_1.expect)(hooks).toHaveProperty('useAllTallies');
51
+ });
52
+ });
53
+ //# sourceMappingURL=hooks.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../src/hooks.test.ts"],"names":[],"mappings":";;AAAA,8CAAwD;AACxD,mCAA8C;AAC9C,yCAAyC;AAEzC,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC;YACzB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;iBACb;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACd;aACD;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC;YACxB,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACP,EAAE,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;iBACb;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,QAAQ;iBACd;aACD;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC;YACzB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE;gBACZ,MAAM;gBACN,KAAK;aACL;SACD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAA,sBAAW,EAAC,UAAU,CAAC,CAAC;QAEtC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './hooks.js';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./hooks.js"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -0,0 +1,2 @@
1
+ import { StorageSchema } from '@verdant-web/common';
2
+ export declare function createHooks<Presence = any, Profile = any>(schema: StorageSchema<any>): any;