@iebh/tera-fy 2.3.8 → 2.3.10

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.
@@ -0,0 +1,287 @@
1
+ import { chunk } from 'lodash-es';
2
+ import { doc as FirestoreDocRef, getDoc as FirestoreGetDoc } from 'firebase/firestore';
3
+ import Syncro from './syncro.js';
4
+ import SyncroEntities from './entities.js';
5
+ /**
6
+ * @class SyncroKeyed
7
+ * TERA Isomorphic SyncroKeyed class
8
+ * Collate a single (potentially very large) single Syncro object by splitting it across multiple Syncros
9
+ * This makes the assumption that the Syncro content is a large object collection of objects - a keyed map collection
10
+ * The original impetus is to allow TERA citation libraries to be held in a Syncro object and flushed back to Supabase when editing has completed
11
+ */
12
+ export default class SyncroKeyed extends Syncro {
13
+ /**
14
+ * Config used by this instance to configure behaviour
15
+ *
16
+ * @type {Object}
17
+ * @property {Number} maxKeys The maximum number of keys a member can contain before needing to add a member
18
+ */
19
+ keyedConfig = {
20
+ maxKeys: 2,
21
+ };
22
+ /**
23
+ * Various storage about keyed path
24
+ */
25
+ keyedPath = {
26
+ getKey(path, index) {
27
+ return path + '_' + index;
28
+ },
29
+ };
30
+ /**
31
+ * Member Syncros which form part of this meta Syncro
32
+ *
33
+ * @type {Array<Syncro>}
34
+ */
35
+ members = [];
36
+ /**
37
+ * Instance constructor
38
+ *
39
+ * @param {String} path Mount path for the Syncro. Should be in the form `${ENTITY}::${ID}(::${RELATION})?_*` (must contain a '*' operator)
40
+ * @param {Object} [options] Additional instance setters (mutates instance directly)
41
+ */
42
+ constructor(path, options) {
43
+ super(path, options);
44
+ if (!/\*/.test(path))
45
+ throw new Error('SyncroKeyed paths must contain at least one asterisk as an object pagination indicator');
46
+ const { prefix, suffix } = /^(?<prefix>.+)\*(?<suffix>.*)$/.exec(path).groups;
47
+ this.keyedPath.getKey = (path, index) => `${prefix}${index}${suffix}`;
48
+ }
49
+ /**
50
+ * Destroy all Syncro members
51
+ *
52
+ * @returns {Promise} A promise which resolves when the operation has completed
53
+ */
54
+ async destroy() {
55
+ this.debug('Destroy!');
56
+ await Promise.all(this.members.map(member => member.destroy()));
57
+ this.members = [];
58
+ return []; // Return empty array cast to never[] to satisfy signature
59
+ }
60
+ /**
61
+ * Mount this SyncroKeyed instance
62
+ * i.e. Fetch all members and mount them locally creating a Proxy
63
+ *
64
+ * @returns {Promise<Syncro>} A promise which resolves as this SyncroKeyed instance when completed
65
+ */
66
+ mount() {
67
+ // Cast the result to the expected interface
68
+ const { entity, id, relation, fsCollection, fsId } = Syncro.pathSplit(this.path, { allowAsterisk: true });
69
+ return Promise.resolve()
70
+ .then(() => new Promise(resolve => {
71
+ this.members = []; // Reset member list
72
+ const seekMember = async (index) => {
73
+ const memberId = fsId.replace('*', '' + index);
74
+ this.debug('Seek keyedMember', fsCollection, '#', memberId);
75
+ const docRef = FirestoreDocRef(Syncro.firestore, fsCollection, memberId);
76
+ const doc = await FirestoreGetDoc(docRef);
77
+ if (doc.exists()) { // Found a matching entry
78
+ // Expand member lookup with the new member by its numeric index
79
+ await this.keyedMembersExpand(index);
80
+ // Queue up next member fetcher
81
+ setTimeout(() => seekMember(index + 1));
82
+ }
83
+ else { // Likely reached end of possible members
84
+ resolve();
85
+ }
86
+ };
87
+ seekMember(0); // Look for first member
88
+ }))
89
+ .then(async () => {
90
+ if (this.members.length > 0)
91
+ return;
92
+ // Create at least one member in the registry
93
+ await this.keyedMembersExpand(0);
94
+ this.debug('Populate initial SyncroKeyed state');
95
+ // Extract base data + add document and return new hook
96
+ const entityKey = entity;
97
+ if (!SyncroEntities[entityKey])
98
+ throw new Error(`Unknown Sync entity "${entity}"`);
99
+ // Go fetch the initial state object
100
+ const state = await SyncroEntities[entityKey].initState({
101
+ supabasey: Syncro.supabasey,
102
+ id, relation,
103
+ });
104
+ await this.keyedAssign(state);
105
+ })
106
+ .then(() => {
107
+ const reactive = this.getReactive(this.proxy());
108
+ // Assuming this.value should hold the reactive proxy
109
+ // If this.value is inherited and has a specific type, this might need adjustment
110
+ this.value = reactive.doc;
111
+ })
112
+ .then(() => this);
113
+ }
114
+ /**
115
+ * Return a Proxy which will map setter/getter actions to their correct member
116
+ *
117
+ * @returns {Proxy} A proxy of all combined members
118
+ */
119
+ proxy() {
120
+ return new Proxy(this, {
121
+ // Return the full list of keys
122
+ ownKeys(target) {
123
+ return target.members.flatMap(m => Object.keys(m.value || {}));
124
+ },
125
+ // Return if we have a lookup key
126
+ has(target, prop) {
127
+ // Ensure m.value exists before checking property
128
+ return target.members.some(m => m.value && prop in m.value);
129
+ },
130
+ // Scope through members until we get a hit on the key
131
+ get(target, prop) {
132
+ const targetMember = target.members.find(m => m.value && prop in m.value);
133
+ // Access value via targetMember.value if found
134
+ return targetMember ? targetMember.value[prop] : undefined;
135
+ },
136
+ // Set the member key if one already exists, otherwise overflow onto the next member
137
+ set(target, prop, value) {
138
+ const targetMember = target.members.find(m => m.value && prop in m.value);
139
+ if (targetMember && targetMember.value) {
140
+ targetMember.value[prop] = value;
141
+ }
142
+ else {
143
+ // Assuming keyedSet handles adding the value appropriately
144
+ target.keyedSet(prop, value); // Cast prop to string if keyedSet expects string
145
+ }
146
+ return true; // Proxy set must return boolean
147
+ },
148
+ // Remove a key
149
+ deleteProperty(target, prop) {
150
+ const targetMember = target.members.find(m => m.value && prop in m.value);
151
+ if (targetMember && targetMember.value) {
152
+ delete targetMember.value[prop];
153
+ return true; // Indicate success
154
+ }
155
+ return false; // Indicate key not found or failure
156
+ },
157
+ });
158
+ }
159
+ /**
160
+ * Flush all member states
161
+ *
162
+ * @param {Object} [options] Additional options to mutate behaviour
163
+ * @param {Boolean} [options.destroy=false] Instruct the server to also dispose of the Syncro state
164
+ *
165
+ * @returns {Promise} A promise which resolves when the operation has completed
166
+ */
167
+ async flush(options) {
168
+ const settings = {
169
+ destroy: false,
170
+ ...options,
171
+ };
172
+ await Promise.all(this.members.map(member => member.flush({
173
+ destroy: settings.destroy,
174
+ })));
175
+ if (settings.destroy)
176
+ await this.destroy();
177
+ return; // Return void to match signature
178
+ }
179
+ /**
180
+ * Set a given key against the next available member
181
+ * This will either pick the next available member with keys below `config.maxKeys` or extend the member array and append to it
182
+ *
183
+ * @param {String} key The key to set
184
+ * @param {*} value The value to set
185
+ *
186
+ * @returns {Promise<*>} A promise which resolves when the operation has completed with the set value
187
+ */
188
+ async keyedSet(key, value) {
189
+ const candidateMember = this.members.find(m => m.value && Object.keys(m.value).length < this.keyedConfig.maxKeys);
190
+ if (candidateMember?.value) {
191
+ candidateMember.value[key] = value;
192
+ return value;
193
+ }
194
+ else { // No candidate - need to expand then set
195
+ // Extend members
196
+ await this.keyedMembersExpand(); // Call without index to append
197
+ // Get the newly added member
198
+ // eslint-disable-next-line unicorn/prefer-at
199
+ const newMember = this.members[this.members.length - 1];
200
+ if (!newMember || !newMember.value) {
201
+ throw new Error('Failed to expand members or new member has no value object');
202
+ }
203
+ // Sanity check (check the new member's value)
204
+ if (Object.keys(newMember.value).length >= this.keyedConfig.maxKeys) {
205
+ throw new Error(`Need to append key "${key}" but newly added member (offset #${this.members.length - 1}) has size of ${Object.keys(newMember.value).length}, exceeding maxKeys ${this.keyedConfig.maxKeys}`);
206
+ }
207
+ newMember.value[key] = value;
208
+ return value;
209
+ }
210
+ }
211
+ /**
212
+ * Assign an entire in-memory object to members
213
+ * This can be thought of as the optimized equivalent of Object.assign()
214
+ * Use this when merging large objects as it can make optimizations
215
+ *
216
+ * @param {Object} state The value to merge
217
+ */
218
+ async keyedAssign(state) {
219
+ // Can we assume we have a blank state - this speeds up existing key checks significantly
220
+ // Ensure members[0] and its value exist
221
+ const isBlank = this.members.length === 1 && this.members[0]?.value && Object.keys(this.members[0].value).length === 0;
222
+ if (isBlank) {
223
+ const chunks = chunk(Object.entries(state), this.keyedConfig.maxKeys)
224
+ .map(chunk => Object.fromEntries(chunk));
225
+ await Promise.all(chunks.map(async (chunk, chunkIndex) => {
226
+ this.debug(`Assign chunk #${chunkIndex} content`, { chunk });
227
+ // Create chunk document if its missing
228
+ if (!this.members[chunkIndex])
229
+ await this.keyedMembersExpand(chunkIndex);
230
+ // Ensure the member exists and has setFirestoreState method
231
+ const member = this.members[chunkIndex];
232
+ if (member && typeof member.setFirestoreState === 'function') {
233
+ // Populate its state - Cast to any temporarily if setFirestoreState is not public/recognized
234
+ await member.setFirestoreState(chunk, { method: 'set' });
235
+ }
236
+ else {
237
+ console.warn(`Member at index ${chunkIndex} is missing or does not have setFirestoreState`);
238
+ }
239
+ }));
240
+ }
241
+ else { // Non-blank - call keyedSet() on each key of state, merging slowly
242
+ // Replace Array.fromAsync with a standard loop
243
+ for (const [key, val] of Object.entries(state)) {
244
+ await this.keyedSet(key, val);
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * Extend the member pool by one member
250
+ *
251
+ * @param {Number} [index] The index to use when expanding, if omitted the next index offset is used
252
+ * @returns {Promise} A promise which resolves when the operation has completed
253
+ */
254
+ async keyedMembersExpand(index) {
255
+ index = index ?? this.members.length; // Use provided index or next available slot
256
+ if (this.members[index]) {
257
+ // If member already exists (e.g., during initial seek), just ensure it's mounted.
258
+ // If it was called intentionally with an existing index, maybe log a warning or skip.
259
+ this.debug(`keyedMembersExpand called for existing index ${index}, ensuring mounted.`);
260
+ if (!this.members[index].value) { // If it exists but isn't mounted somehow
261
+ await this.members[index].mount({ initialState: {} });
262
+ }
263
+ return; // Exit if member already exists
264
+ }
265
+ const syncroPath = this.keyedPath.getKey(this.path, index);
266
+ // Pass empty options object {} or specify allowAsterisk: false if needed
267
+ const { fsCollection, fsId } = Syncro.pathSplit(syncroPath, {});
268
+ this.debug('Expand SyncroKeyed size to index=', index);
269
+ // Create a new Syncro member, inheriteing some details from this parent item
270
+ const syncro = new Syncro(`${fsCollection}::${fsId}`, {
271
+ debug: this.debug,
272
+ getReactive: this.getReactive,
273
+ });
274
+ // Wait for mount to complete
275
+ await syncro.mount({
276
+ initialState: {}, // Force initial state to empty object so we don't get stuck in a loop
277
+ });
278
+ // Insert at the correct index if specified, otherwise push
279
+ if (index < this.members.length) {
280
+ this.members.splice(index, 0, syncro);
281
+ }
282
+ else {
283
+ this.members.push(syncro);
284
+ }
285
+ }
286
+ }
287
+ //# sourceMappingURL=keyed.js.map
@@ -98,6 +98,7 @@ export default class SyncroKeyed extends Syncro {
98
98
  throw new Error(`Unknown Sync entity "${entity}"`);
99
99
  // Go fetch the initial state object
100
100
  const state = await SyncroEntities[entityKey].initState({
101
+ HYPERDRIVE: Syncro.db,
101
102
  supabasey: Syncro.supabasey,
102
103
  id, relation,
103
104
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyed.js","sourceRoot":"","sources":["../../../lib/syncro/keyed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyed.js","sourceRoot":"","sources":["../../../lib/syncro/keyed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyed.js","sourceRoot":"","sources":["../../../lib/syncro/keyed.ts"],"names":[],"mappings":"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"}