teamplay 0.5.0-alpha.16 → 0.5.0-alpha.17
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/index.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export { default as sub } from './orm/sub.js';
|
|
|
57
57
|
export { default as useSub, useAsyncSub, setUseDeferredValue as __setUseDeferredValue, setDefaultDefer as __setDefaultDefer } from './react/useSub.js';
|
|
58
58
|
export { default as useSuspendMemo, useSuspendMemoByKey } from './react/useSuspendMemo.js';
|
|
59
59
|
export declare const observer: ObserverFunction;
|
|
60
|
-
export { useBatch, useBatchDoc, useBatchDoc$, useBatchQuery, useBatchQuery$,
|
|
60
|
+
export { useBatch, useBatchDoc, useBatchDoc$, useBatchQuery, useBatchQuery$, useBatchQueryIds, useBatchQueryDoc, useBatchQueryDoc$ } from './orm/Compat/hooksCompat.js';
|
|
61
61
|
export { emit, useOn, useEmit } from './orm/Compat/eventsCompat.js';
|
|
62
62
|
export { useDidUpdate, useOnce, useSyncEffect } from './react/helpers.js';
|
|
63
63
|
export { connection, setConnection, getConnection, getDefaultFetchOnly, setDefaultFetchOnly, publicOnly, setPublicOnly } from './orm/connection.js';
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export { default as sub } from "./orm/sub.js";
|
|
|
18
18
|
export { default as useSub, useAsyncSub, setUseDeferredValue as __setUseDeferredValue, setDefaultDefer as __setDefaultDefer } from "./react/useSub.js";
|
|
19
19
|
export { default as useSuspendMemo, useSuspendMemoByKey } from "./react/useSuspendMemo.js";
|
|
20
20
|
export const observer = runtimeObserver;
|
|
21
|
-
export { useBatch, useBatchDoc, useBatchDoc$, useBatchQuery, useBatchQuery$,
|
|
21
|
+
export { useBatch, useBatchDoc, useBatchDoc$, useBatchQuery, useBatchQuery$, useBatchQueryIds, useBatchQueryDoc, useBatchQueryDoc$ } from './orm/Compat/hooksCompat.js';
|
|
22
22
|
export { emit, useOn, useEmit } from './orm/Compat/eventsCompat.js';
|
|
23
23
|
export { useDidUpdate, useOnce, useSyncEffect } from "./react/helpers.js";
|
|
24
24
|
export { connection, setConnection, getConnection, getDefaultFetchOnly, setDefaultFetchOnly, publicOnly, setPublicOnly } from "./orm/connection.js";
|
|
@@ -3,12 +3,6 @@ export const useBatchDoc: any
|
|
|
3
3
|
export const useBatchDoc$: any
|
|
4
4
|
export const useBatchQuery: any
|
|
5
5
|
export const useBatchQuery$: any
|
|
6
|
-
export const useQueryIds: any
|
|
7
6
|
export const useBatchQueryIds: any
|
|
8
|
-
export const useAsyncQueryIds: any
|
|
9
|
-
export const useQueryDoc: any
|
|
10
|
-
export const useQueryDoc$: any
|
|
11
7
|
export const useBatchQueryDoc: any
|
|
12
8
|
export const useBatchQueryDoc$: any
|
|
13
|
-
export const useAsyncQueryDoc: any
|
|
14
|
-
export const useAsyncQueryDoc$: any
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { getRootSignal, GLOBAL_ROOT_ID } from "../Root.js";
|
|
2
|
-
import useSub
|
|
2
|
+
import useSub from "../../react/useSub.js";
|
|
3
3
|
import universal$ from "../../react/universal$.js";
|
|
4
4
|
import * as promiseBatcher from "../../react/promiseBatcher.js";
|
|
5
|
-
import { isCompatEnv } from '../compatEnv.js';
|
|
6
5
|
import { isQueryReady } from './queryReadiness.js';
|
|
7
6
|
const $root = getRootSignal({ rootId: GLOBAL_ROOT_ID, rootFunction: universal$ });
|
|
8
7
|
const emittedCompatWarnings = new Set();
|
|
@@ -37,17 +36,6 @@ function getExtraQuerySignal($query, normalizedQuery) {
|
|
|
37
36
|
return $query;
|
|
38
37
|
return isExtraQuery(normalizedQuery) ? $query.extra : $query;
|
|
39
38
|
}
|
|
40
|
-
function useSyncQueryResult(collection, query, options, hookName) {
|
|
41
|
-
const normalizedOptions = normalizeSyncSubOptions(options);
|
|
42
|
-
const { $collection, $query } = useSubscribedQuery(collection, query, normalizedOptions, hookName, useSub);
|
|
43
|
-
return [$query.get(), $collection];
|
|
44
|
-
}
|
|
45
|
-
function useAsyncQueryResult(collection, query, options, hookName) {
|
|
46
|
-
const { $collection, $query } = useSubscribedQuery(collection, query, options, hookName, useAsyncSub);
|
|
47
|
-
if (!$query)
|
|
48
|
-
return [undefined, $collection];
|
|
49
|
-
return [$query.get(), $collection];
|
|
50
|
-
}
|
|
51
39
|
export function useBatchQuery$(collection, query, _options) {
|
|
52
40
|
const options = normalizeBatchSubOptions(_options);
|
|
53
41
|
const { $query } = useSubscribedQuery(collection, query, options, 'useBatchQuery', useSub);
|
|
@@ -60,22 +48,6 @@ export function useBatchQuery(collection, query, _options) {
|
|
|
60
48
|
return [undefined, $collection];
|
|
61
49
|
return [$query.get(), $collection];
|
|
62
50
|
}
|
|
63
|
-
export function useQueryIds(collection, ids = [], options = {}) {
|
|
64
|
-
const list = Array.isArray(ids) ? ids.slice() : [];
|
|
65
|
-
if (options?.reverse)
|
|
66
|
-
list.reverse();
|
|
67
|
-
const [docs, $collection] = useSyncQueryResult(collection, { _id: { $in: list } }, options, 'useQueryIds');
|
|
68
|
-
if (!docs)
|
|
69
|
-
return [docs, $collection];
|
|
70
|
-
const docsById = new Map();
|
|
71
|
-
for (const doc of docs) {
|
|
72
|
-
const id = doc?._id ?? doc?.id;
|
|
73
|
-
if (id != null)
|
|
74
|
-
docsById.set(id, doc);
|
|
75
|
-
}
|
|
76
|
-
const items = list.map(id => docsById.get(id)).filter(Boolean);
|
|
77
|
-
return [items, $collection];
|
|
78
|
-
}
|
|
79
51
|
export function useBatchQueryIds(collection, ids = [], options = {}) {
|
|
80
52
|
const list = Array.isArray(ids) ? ids.slice() : [];
|
|
81
53
|
if (options?.reverse)
|
|
@@ -92,39 +64,6 @@ export function useBatchQueryIds(collection, ids = [], options = {}) {
|
|
|
92
64
|
const items = list.map(id => docsById.get(id)).filter(Boolean);
|
|
93
65
|
return [items, $collection];
|
|
94
66
|
}
|
|
95
|
-
export function useAsyncQueryIds(collection, ids = [], options = {}) {
|
|
96
|
-
const list = Array.isArray(ids) ? ids.slice() : [];
|
|
97
|
-
if (options?.reverse)
|
|
98
|
-
list.reverse();
|
|
99
|
-
const [docs, $collection] = useAsyncQueryResult(collection, { _id: { $in: list } }, options, 'useAsyncQueryIds');
|
|
100
|
-
if (docs == null)
|
|
101
|
-
return [undefined, $collection];
|
|
102
|
-
const docsById = new Map();
|
|
103
|
-
for (const doc of docs) {
|
|
104
|
-
const id = doc?._id ?? doc?.id;
|
|
105
|
-
if (id != null)
|
|
106
|
-
docsById.set(id, doc);
|
|
107
|
-
}
|
|
108
|
-
const items = list.map(id => docsById.get(id)).filter(Boolean);
|
|
109
|
-
return [items, $collection];
|
|
110
|
-
}
|
|
111
|
-
export function useQueryDoc(collection, query, options) {
|
|
112
|
-
const normalized = normalizeQuery(query, 'useQueryDoc');
|
|
113
|
-
const queryDoc = {
|
|
114
|
-
...normalized,
|
|
115
|
-
$limit: 1,
|
|
116
|
-
$sort: normalized.$sort || { createdAt: -1 }
|
|
117
|
-
};
|
|
118
|
-
const [docs, $collection] = useSyncQueryResult(collection, queryDoc, options, 'useQueryDoc');
|
|
119
|
-
const doc = docs && docs[0];
|
|
120
|
-
const docId = doc?._id ?? doc?.id;
|
|
121
|
-
const $doc = docId != null ? $collection[docId] : undefined;
|
|
122
|
-
return [doc, $doc];
|
|
123
|
-
}
|
|
124
|
-
export function useQueryDoc$(collection, query, options) {
|
|
125
|
-
const [, $doc] = useQueryDoc(collection, query, options);
|
|
126
|
-
return $doc;
|
|
127
|
-
}
|
|
128
67
|
export function useBatchQueryDoc(collection, query, options) {
|
|
129
68
|
const normalized = normalizeQuery(query, 'useBatchQueryDoc');
|
|
130
69
|
const queryDoc = {
|
|
@@ -144,25 +83,6 @@ export function useBatchQueryDoc$(collection, query, options) {
|
|
|
144
83
|
const [, $doc] = useBatchQueryDoc(collection, query, options);
|
|
145
84
|
return $doc;
|
|
146
85
|
}
|
|
147
|
-
export function useAsyncQueryDoc(collection, query, options) {
|
|
148
|
-
const normalized = normalizeQuery(query, 'useAsyncQueryDoc');
|
|
149
|
-
const queryDoc = {
|
|
150
|
-
...normalized,
|
|
151
|
-
$limit: 1,
|
|
152
|
-
$sort: normalized.$sort || { createdAt: -1 }
|
|
153
|
-
};
|
|
154
|
-
const [docs, $collection] = useAsyncQueryResult(collection, queryDoc, options, 'useAsyncQueryDoc');
|
|
155
|
-
if (docs == null)
|
|
156
|
-
return [undefined, undefined];
|
|
157
|
-
const doc = docs && docs[0];
|
|
158
|
-
const docId = doc?._id ?? doc?.id;
|
|
159
|
-
const $doc = docId != null ? $collection[docId] : undefined;
|
|
160
|
-
return [doc, $doc];
|
|
161
|
-
}
|
|
162
|
-
export function useAsyncQueryDoc$(collection, query, options) {
|
|
163
|
-
const [, $doc] = useAsyncQueryDoc(collection, query, options);
|
|
164
|
-
return $doc;
|
|
165
|
-
}
|
|
166
86
|
function getDocSignal(collection, id, hookName) {
|
|
167
87
|
if (typeof collection !== 'string') {
|
|
168
88
|
throw Error(`[${hookName}] collection must be a string. Got: ${collection}`);
|
|
@@ -223,17 +143,6 @@ const BATCH_SUB_OPTIONS = Object.freeze({
|
|
|
223
143
|
// on route transitions and cause immediate reads from stale/empty local nodes.
|
|
224
144
|
defer: false
|
|
225
145
|
});
|
|
226
|
-
function normalizeSyncSubOptions(options) {
|
|
227
|
-
if (!isCompatEnv()) {
|
|
228
|
-
return options ? { ...options, async: false } : options;
|
|
229
|
-
}
|
|
230
|
-
return {
|
|
231
|
-
...(options || {}),
|
|
232
|
-
async: false,
|
|
233
|
-
// Compat sync hooks are strict by design: no deferred snapshots between route/tab switches.
|
|
234
|
-
defer: false
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
146
|
function normalizeBatchSubOptions(options) {
|
|
238
147
|
return options ? { ...options, ...BATCH_SUB_OPTIONS } : BATCH_SUB_OPTIONS;
|
|
239
148
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "teamplay",
|
|
3
|
-
"version": "0.5.0-alpha.
|
|
3
|
+
"version": "0.5.0-alpha.17",
|
|
4
4
|
"description": "Full-stack signals ORM with multiplayer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -134,5 +134,5 @@
|
|
|
134
134
|
]
|
|
135
135
|
},
|
|
136
136
|
"license": "MIT",
|
|
137
|
-
"gitHead": "
|
|
137
|
+
"gitHead": "26d5ef765255ec6a772718e50439dd3202924d3c"
|
|
138
138
|
}
|