@grafema/rfdb-client 0.2.5-beta → 0.2.7
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/README.md +25 -14
- package/dist/client.d.ts +113 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +364 -14
- package/dist/client.js.map +1 -1
- package/dist/client.test.js +212 -0
- package/dist/client.test.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/stream-queue.d.ts +30 -0
- package/dist/stream-queue.d.ts.map +1 -0
- package/dist/stream-queue.js +74 -0
- package/dist/stream-queue.js.map +1 -0
- package/package.json +2 -2
- package/ts/client.test.ts +635 -0
- package/ts/client.ts +420 -15
- package/ts/index.ts +10 -0
- package/ts/protocol.ts +11 -0
- package/ts/stream-queue.test.ts +114 -0
- package/ts/stream-queue.ts +83 -0
package/dist/client.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { createConnection } from 'net';
|
|
8
8
|
import { encode, decode } from '@msgpack/msgpack';
|
|
9
9
|
import { EventEmitter } from 'events';
|
|
10
|
+
import { StreamQueue } from './stream-queue.js';
|
|
10
11
|
export class RFDBClient extends EventEmitter {
|
|
11
12
|
socketPath;
|
|
12
13
|
socket;
|
|
@@ -14,6 +15,15 @@ export class RFDBClient extends EventEmitter {
|
|
|
14
15
|
pending;
|
|
15
16
|
reqId;
|
|
16
17
|
buffer;
|
|
18
|
+
// Batch state
|
|
19
|
+
_batching = false;
|
|
20
|
+
_batchNodes = [];
|
|
21
|
+
_batchEdges = [];
|
|
22
|
+
_batchFiles = new Set();
|
|
23
|
+
// Streaming state
|
|
24
|
+
_supportsStreaming = false;
|
|
25
|
+
_pendingStreams = new Map();
|
|
26
|
+
_streamTimers = new Map();
|
|
17
27
|
constructor(socketPath = '/tmp/rfdb.sock') {
|
|
18
28
|
super();
|
|
19
29
|
this.socketPath = socketPath;
|
|
@@ -23,6 +33,13 @@ export class RFDBClient extends EventEmitter {
|
|
|
23
33
|
this.reqId = 0;
|
|
24
34
|
this.buffer = Buffer.alloc(0);
|
|
25
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Whether the connected server supports streaming responses.
|
|
38
|
+
* Set after calling hello(). Defaults to false.
|
|
39
|
+
*/
|
|
40
|
+
get supportsStreaming() {
|
|
41
|
+
return this._supportsStreaming;
|
|
42
|
+
}
|
|
26
43
|
/**
|
|
27
44
|
* Connect to RFDB server
|
|
28
45
|
*/
|
|
@@ -53,6 +70,15 @@ export class RFDBClient extends EventEmitter {
|
|
|
53
70
|
reject(new Error('Connection closed'));
|
|
54
71
|
}
|
|
55
72
|
this.pending.clear();
|
|
73
|
+
// Fail all pending streams
|
|
74
|
+
for (const [, stream] of this._pendingStreams) {
|
|
75
|
+
stream.fail(new Error('Connection closed'));
|
|
76
|
+
}
|
|
77
|
+
this._pendingStreams.clear();
|
|
78
|
+
for (const [, timer] of this._streamTimers) {
|
|
79
|
+
clearTimeout(timer);
|
|
80
|
+
}
|
|
81
|
+
this._streamTimers.clear();
|
|
56
82
|
});
|
|
57
83
|
this.socket.on('data', (chunk) => {
|
|
58
84
|
this._handleData(chunk);
|
|
@@ -108,15 +134,45 @@ export class RFDBClient extends EventEmitter {
|
|
|
108
134
|
}
|
|
109
135
|
}
|
|
110
136
|
/**
|
|
111
|
-
* Handle decoded response
|
|
137
|
+
* Handle decoded response — match by requestId, route streaming chunks
|
|
138
|
+
* to StreamQueue or resolve single-response Promise.
|
|
112
139
|
*/
|
|
113
140
|
_handleResponse(response) {
|
|
114
|
-
if (this.pending.size === 0) {
|
|
141
|
+
if (this.pending.size === 0 && this._pendingStreams.size === 0) {
|
|
115
142
|
this.emit('error', new Error('Received response with no pending request'));
|
|
116
143
|
return;
|
|
117
144
|
}
|
|
118
|
-
|
|
119
|
-
|
|
145
|
+
let id;
|
|
146
|
+
if (response.requestId) {
|
|
147
|
+
const parsed = this._parseRequestId(response.requestId);
|
|
148
|
+
if (parsed === null) {
|
|
149
|
+
this.emit('error', new Error(`Received response for unknown requestId: ${response.requestId}`));
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
id = parsed;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// FIFO fallback for servers that don't echo requestId
|
|
156
|
+
if (this.pending.size > 0) {
|
|
157
|
+
id = this.pending.entries().next().value[0];
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.emit('error', new Error('Received response with no pending request'));
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Route to streaming handler if this requestId has a StreamQueue
|
|
165
|
+
const streamQueue = this._pendingStreams.get(id);
|
|
166
|
+
if (streamQueue) {
|
|
167
|
+
this._handleStreamingResponse(id, response, streamQueue);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
// Non-streaming response — existing behavior
|
|
171
|
+
if (!this.pending.has(id)) {
|
|
172
|
+
this.emit('error', new Error(`Received response for unknown requestId: ${response.requestId}`));
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const { resolve, reject } = this.pending.get(id);
|
|
120
176
|
this.pending.delete(id);
|
|
121
177
|
if (response.error) {
|
|
122
178
|
reject(new Error(response.error));
|
|
@@ -125,6 +181,76 @@ export class RFDBClient extends EventEmitter {
|
|
|
125
181
|
resolve(response);
|
|
126
182
|
}
|
|
127
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Handle a response for a streaming request.
|
|
186
|
+
* Routes chunk data to StreamQueue and manages stream lifecycle.
|
|
187
|
+
* Resets per-chunk timeout on each successful chunk arrival.
|
|
188
|
+
*/
|
|
189
|
+
_handleStreamingResponse(id, response, streamQueue) {
|
|
190
|
+
// Error response — fail the stream
|
|
191
|
+
if (response.error) {
|
|
192
|
+
this._cleanupStream(id);
|
|
193
|
+
streamQueue.fail(new Error(response.error));
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
// Streaming chunk (has `done` field)
|
|
197
|
+
if ('done' in response) {
|
|
198
|
+
const chunk = response;
|
|
199
|
+
const nodes = chunk.nodes || [];
|
|
200
|
+
for (const node of nodes) {
|
|
201
|
+
streamQueue.push(node);
|
|
202
|
+
}
|
|
203
|
+
if (chunk.done) {
|
|
204
|
+
this._cleanupStream(id);
|
|
205
|
+
streamQueue.end();
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// Reset per-chunk timeout
|
|
209
|
+
this._resetStreamTimer(id, streamQueue);
|
|
210
|
+
}
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
// Auto-fallback: server sent a non-streaming Nodes response
|
|
214
|
+
// (server doesn't support streaming or result was below threshold)
|
|
215
|
+
const nodesResponse = response;
|
|
216
|
+
const nodes = nodesResponse.nodes || [];
|
|
217
|
+
for (const node of nodes) {
|
|
218
|
+
streamQueue.push(node);
|
|
219
|
+
}
|
|
220
|
+
this._cleanupStream(id);
|
|
221
|
+
streamQueue.end();
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Reset the per-chunk timeout for a streaming request.
|
|
225
|
+
*/
|
|
226
|
+
_resetStreamTimer(id, streamQueue) {
|
|
227
|
+
const existing = this._streamTimers.get(id);
|
|
228
|
+
if (existing)
|
|
229
|
+
clearTimeout(existing);
|
|
230
|
+
const timer = setTimeout(() => {
|
|
231
|
+
this._cleanupStream(id);
|
|
232
|
+
streamQueue.fail(new Error(`RFDB queryNodesStream timed out after ${RFDBClient.DEFAULT_TIMEOUT_MS}ms (no chunk received)`));
|
|
233
|
+
}, RFDBClient.DEFAULT_TIMEOUT_MS);
|
|
234
|
+
this._streamTimers.set(id, timer);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Clean up all state for a completed/failed streaming request.
|
|
238
|
+
*/
|
|
239
|
+
_cleanupStream(id) {
|
|
240
|
+
this._pendingStreams.delete(id);
|
|
241
|
+
this.pending.delete(id);
|
|
242
|
+
const timer = this._streamTimers.get(id);
|
|
243
|
+
if (timer) {
|
|
244
|
+
clearTimeout(timer);
|
|
245
|
+
this._streamTimers.delete(id);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
_parseRequestId(requestId) {
|
|
249
|
+
if (!requestId.startsWith('r'))
|
|
250
|
+
return null;
|
|
251
|
+
const num = parseInt(requestId.slice(1), 10);
|
|
252
|
+
return Number.isNaN(num) ? null : num;
|
|
253
|
+
}
|
|
128
254
|
/**
|
|
129
255
|
* Default timeout for operations (60 seconds)
|
|
130
256
|
* Flush/compact may take time for large graphs, but should not hang indefinitely
|
|
@@ -137,10 +263,10 @@ export class RFDBClient extends EventEmitter {
|
|
|
137
263
|
if (!this.connected || !this.socket) {
|
|
138
264
|
throw new Error('Not connected to RFDB server');
|
|
139
265
|
}
|
|
140
|
-
const request = { cmd, ...payload };
|
|
141
|
-
const msgBytes = encode(request);
|
|
142
266
|
return new Promise((resolve, reject) => {
|
|
143
267
|
const id = this.reqId++;
|
|
268
|
+
const request = { requestId: `r${id}`, cmd, ...payload };
|
|
269
|
+
const msgBytes = encode(request);
|
|
144
270
|
// Setup timeout
|
|
145
271
|
const timer = setTimeout(() => {
|
|
146
272
|
this.pending.delete(id);
|
|
@@ -183,11 +309,11 @@ export class RFDBClient extends EventEmitter {
|
|
|
183
309
|
// Cast to Record to allow iteration over extra properties
|
|
184
310
|
const nodeRecord = n;
|
|
185
311
|
// Extract known wire format fields, rest goes to metadata
|
|
186
|
-
const { id, type, node_type, nodeType, name, file, exported, metadata, ...rest } = nodeRecord;
|
|
312
|
+
const { id, type, node_type, nodeType, name, file, exported, metadata, semanticId, semantic_id, ...rest } = nodeRecord;
|
|
187
313
|
// Merge explicit metadata with extra properties
|
|
188
314
|
const existingMeta = typeof metadata === 'string' ? JSON.parse(metadata) : (metadata || {});
|
|
189
315
|
const combinedMeta = { ...existingMeta, ...rest };
|
|
190
|
-
|
|
316
|
+
const wire = {
|
|
191
317
|
id: String(id),
|
|
192
318
|
nodeType: (node_type || nodeType || type || 'UNKNOWN'),
|
|
193
319
|
name: name || '',
|
|
@@ -195,7 +321,21 @@ export class RFDBClient extends EventEmitter {
|
|
|
195
321
|
exported: exported || false,
|
|
196
322
|
metadata: JSON.stringify(combinedMeta),
|
|
197
323
|
};
|
|
324
|
+
// Preserve semanticId as top-level field for v3 protocol
|
|
325
|
+
const sid = semanticId || semantic_id;
|
|
326
|
+
if (sid) {
|
|
327
|
+
wire.semanticId = String(sid);
|
|
328
|
+
}
|
|
329
|
+
return wire;
|
|
198
330
|
});
|
|
331
|
+
if (this._batching) {
|
|
332
|
+
this._batchNodes.push(...wireNodes);
|
|
333
|
+
for (const node of wireNodes) {
|
|
334
|
+
if (node.file)
|
|
335
|
+
this._batchFiles.add(node.file);
|
|
336
|
+
}
|
|
337
|
+
return { ok: true };
|
|
338
|
+
}
|
|
199
339
|
return this._send('addNodes', { nodes: wireNodes });
|
|
200
340
|
}
|
|
201
341
|
/**
|
|
@@ -218,6 +358,10 @@ export class RFDBClient extends EventEmitter {
|
|
|
218
358
|
metadata: JSON.stringify(combinedMeta),
|
|
219
359
|
};
|
|
220
360
|
});
|
|
361
|
+
if (this._batching) {
|
|
362
|
+
this._batchEdges.push(...wireEdges);
|
|
363
|
+
return { ok: true };
|
|
364
|
+
}
|
|
221
365
|
return this._send('addEdges', { edges: wireEdges, skipValidation });
|
|
222
366
|
}
|
|
223
367
|
/**
|
|
@@ -417,6 +561,23 @@ export class RFDBClient extends EventEmitter {
|
|
|
417
561
|
* Query nodes (async generator)
|
|
418
562
|
*/
|
|
419
563
|
async *queryNodes(query) {
|
|
564
|
+
// When server supports streaming (protocol v3+), delegate to streaming handler
|
|
565
|
+
// to correctly handle chunked NodesChunk responses for large result sets.
|
|
566
|
+
if (this._supportsStreaming) {
|
|
567
|
+
yield* this.queryNodesStream(query);
|
|
568
|
+
return;
|
|
569
|
+
}
|
|
570
|
+
const serverQuery = this._buildServerQuery(query);
|
|
571
|
+
const response = await this._send('queryNodes', { query: serverQuery });
|
|
572
|
+
const nodes = response.nodes || [];
|
|
573
|
+
for (const node of nodes) {
|
|
574
|
+
yield node;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Build a server query object from an AttrQuery.
|
|
579
|
+
*/
|
|
580
|
+
_buildServerQuery(query) {
|
|
420
581
|
const serverQuery = {};
|
|
421
582
|
if (query.nodeType)
|
|
422
583
|
serverQuery.nodeType = query.nodeType;
|
|
@@ -428,10 +589,54 @@ export class RFDBClient extends EventEmitter {
|
|
|
428
589
|
serverQuery.file = query.file;
|
|
429
590
|
if (query.exported !== undefined)
|
|
430
591
|
serverQuery.exported = query.exported;
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
592
|
+
return serverQuery;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Stream nodes matching query with true streaming support.
|
|
596
|
+
*
|
|
597
|
+
* Behavior depends on server capabilities:
|
|
598
|
+
* - Server supports streaming (protocol v3): receives chunked NodesChunk
|
|
599
|
+
* responses via StreamQueue. Nodes are yielded as they arrive.
|
|
600
|
+
* - Server does NOT support streaming (fallback): delegates to queryNodes()
|
|
601
|
+
* which yields nodes one by one from bulk response.
|
|
602
|
+
*
|
|
603
|
+
* The generator can be aborted by breaking out of the loop or calling .return().
|
|
604
|
+
*/
|
|
605
|
+
async *queryNodesStream(query) {
|
|
606
|
+
if (!this._supportsStreaming) {
|
|
607
|
+
yield* this.queryNodes(query);
|
|
608
|
+
return;
|
|
609
|
+
}
|
|
610
|
+
if (!this.connected || !this.socket) {
|
|
611
|
+
throw new Error('Not connected to RFDB server');
|
|
612
|
+
}
|
|
613
|
+
const serverQuery = this._buildServerQuery(query);
|
|
614
|
+
const id = this.reqId++;
|
|
615
|
+
const streamQueue = new StreamQueue();
|
|
616
|
+
this._pendingStreams.set(id, streamQueue);
|
|
617
|
+
// Build and send request manually (can't use _send which expects single response)
|
|
618
|
+
const request = { requestId: `r${id}`, cmd: 'queryNodes', query: serverQuery };
|
|
619
|
+
const msgBytes = encode(request);
|
|
620
|
+
const header = Buffer.alloc(4);
|
|
621
|
+
header.writeUInt32BE(msgBytes.length);
|
|
622
|
+
// Register in pending map for error routing
|
|
623
|
+
this.pending.set(id, {
|
|
624
|
+
resolve: () => { this._cleanupStream(id); },
|
|
625
|
+
reject: (error) => {
|
|
626
|
+
this._cleanupStream(id);
|
|
627
|
+
streamQueue.fail(error);
|
|
628
|
+
},
|
|
629
|
+
});
|
|
630
|
+
// Start per-chunk timeout (resets on each chunk in _handleStreamingResponse)
|
|
631
|
+
this._resetStreamTimer(id, streamQueue);
|
|
632
|
+
this.socket.write(Buffer.concat([header, Buffer.from(msgBytes)]));
|
|
633
|
+
try {
|
|
634
|
+
for await (const node of streamQueue) {
|
|
635
|
+
yield node;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
finally {
|
|
639
|
+
this._cleanupStream(id);
|
|
435
640
|
}
|
|
436
641
|
}
|
|
437
642
|
/**
|
|
@@ -525,6 +730,14 @@ export class RFDBClient extends EventEmitter {
|
|
|
525
730
|
const response = await this._send('checkGuarantee', { ruleSource });
|
|
526
731
|
return response.violations || [];
|
|
527
732
|
}
|
|
733
|
+
/**
|
|
734
|
+
* Execute unified Datalog — handles both direct queries and rule-based programs.
|
|
735
|
+
* Auto-detects the head predicate instead of hardcoding violation(X).
|
|
736
|
+
*/
|
|
737
|
+
async executeDatalog(source) {
|
|
738
|
+
const response = await this._send('executeDatalog', { source });
|
|
739
|
+
return response.results || [];
|
|
740
|
+
}
|
|
528
741
|
/**
|
|
529
742
|
* Ping the server
|
|
530
743
|
*/
|
|
@@ -540,9 +753,11 @@ export class RFDBClient extends EventEmitter {
|
|
|
540
753
|
* @param protocolVersion - Protocol version to negotiate (default: 2)
|
|
541
754
|
* @returns Server capabilities including protocolVersion, serverVersion, features
|
|
542
755
|
*/
|
|
543
|
-
async hello(protocolVersion =
|
|
756
|
+
async hello(protocolVersion = 3) {
|
|
544
757
|
const response = await this._send('hello', { protocolVersion });
|
|
545
|
-
|
|
758
|
+
const hello = response;
|
|
759
|
+
this._supportsStreaming = hello.features?.includes('streaming') ?? false;
|
|
760
|
+
return hello;
|
|
546
761
|
}
|
|
547
762
|
/**
|
|
548
763
|
* Create a new database
|
|
@@ -589,6 +804,141 @@ export class RFDBClient extends EventEmitter {
|
|
|
589
804
|
const response = await this._send('currentDatabase');
|
|
590
805
|
return response;
|
|
591
806
|
}
|
|
807
|
+
// ===========================================================================
|
|
808
|
+
// Snapshot Operations
|
|
809
|
+
// ===========================================================================
|
|
810
|
+
/**
|
|
811
|
+
* Convert a SnapshotRef to wire format payload fields.
|
|
812
|
+
*
|
|
813
|
+
* - number -> { version: N }
|
|
814
|
+
* - { tag, value } -> { tagKey, tagValue }
|
|
815
|
+
*/
|
|
816
|
+
_resolveSnapshotRef(ref) {
|
|
817
|
+
if (typeof ref === 'number')
|
|
818
|
+
return { version: ref };
|
|
819
|
+
return { tagKey: ref.tag, tagValue: ref.value };
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Compute diff between two snapshots.
|
|
823
|
+
* @param from - Source snapshot (version number or tag reference)
|
|
824
|
+
* @param to - Target snapshot (version number or tag reference)
|
|
825
|
+
* @returns SnapshotDiff with added/removed segments and stats
|
|
826
|
+
*/
|
|
827
|
+
async diffSnapshots(from, to) {
|
|
828
|
+
const response = await this._send('diffSnapshots', {
|
|
829
|
+
from: this._resolveSnapshotRef(from),
|
|
830
|
+
to: this._resolveSnapshotRef(to),
|
|
831
|
+
});
|
|
832
|
+
return response.diff;
|
|
833
|
+
}
|
|
834
|
+
/**
|
|
835
|
+
* Tag a snapshot with key-value metadata.
|
|
836
|
+
* @param version - Snapshot version to tag
|
|
837
|
+
* @param tags - Key-value pairs to apply (e.g. { "release": "v1.0" })
|
|
838
|
+
*/
|
|
839
|
+
async tagSnapshot(version, tags) {
|
|
840
|
+
await this._send('tagSnapshot', { version, tags });
|
|
841
|
+
}
|
|
842
|
+
/**
|
|
843
|
+
* Find a snapshot by tag key/value pair.
|
|
844
|
+
* @param tagKey - Tag key to search for
|
|
845
|
+
* @param tagValue - Tag value to match
|
|
846
|
+
* @returns Snapshot version number, or null if not found
|
|
847
|
+
*/
|
|
848
|
+
async findSnapshot(tagKey, tagValue) {
|
|
849
|
+
const response = await this._send('findSnapshot', { tagKey, tagValue });
|
|
850
|
+
return response.version;
|
|
851
|
+
}
|
|
852
|
+
/**
|
|
853
|
+
* List snapshots, optionally filtered by tag key.
|
|
854
|
+
* @param filterTag - Optional tag key to filter by (only snapshots with this tag)
|
|
855
|
+
* @returns Array of SnapshotInfo objects
|
|
856
|
+
*/
|
|
857
|
+
async listSnapshots(filterTag) {
|
|
858
|
+
const payload = {};
|
|
859
|
+
if (filterTag !== undefined)
|
|
860
|
+
payload.filterTag = filterTag;
|
|
861
|
+
const response = await this._send('listSnapshots', payload);
|
|
862
|
+
return response.snapshots;
|
|
863
|
+
}
|
|
864
|
+
// ===========================================================================
|
|
865
|
+
// Batch Operations
|
|
866
|
+
// ===========================================================================
|
|
867
|
+
/**
|
|
868
|
+
* Begin a batch operation.
|
|
869
|
+
* While batching, addNodes/addEdges buffer locally instead of sending to server.
|
|
870
|
+
* Call commitBatch() to send all buffered data atomically.
|
|
871
|
+
*/
|
|
872
|
+
beginBatch() {
|
|
873
|
+
if (this._batching)
|
|
874
|
+
throw new Error('Batch already in progress');
|
|
875
|
+
this._batching = true;
|
|
876
|
+
this._batchNodes = [];
|
|
877
|
+
this._batchEdges = [];
|
|
878
|
+
this._batchFiles = new Set();
|
|
879
|
+
}
|
|
880
|
+
/**
|
|
881
|
+
* Commit the current batch to the server.
|
|
882
|
+
* Sends all buffered nodes/edges with the list of changed files.
|
|
883
|
+
* Server atomically replaces old data for changed files with new data.
|
|
884
|
+
*/
|
|
885
|
+
async commitBatch(tags) {
|
|
886
|
+
if (!this._batching)
|
|
887
|
+
throw new Error('No batch in progress');
|
|
888
|
+
const response = await this._send('commitBatch', {
|
|
889
|
+
changedFiles: [...this._batchFiles],
|
|
890
|
+
nodes: this._batchNodes,
|
|
891
|
+
edges: this._batchEdges,
|
|
892
|
+
tags,
|
|
893
|
+
});
|
|
894
|
+
this._batching = false;
|
|
895
|
+
this._batchNodes = [];
|
|
896
|
+
this._batchEdges = [];
|
|
897
|
+
this._batchFiles = new Set();
|
|
898
|
+
return response.delta;
|
|
899
|
+
}
|
|
900
|
+
/**
|
|
901
|
+
* Abort the current batch, discarding all buffered data.
|
|
902
|
+
*/
|
|
903
|
+
abortBatch() {
|
|
904
|
+
this._batching = false;
|
|
905
|
+
this._batchNodes = [];
|
|
906
|
+
this._batchEdges = [];
|
|
907
|
+
this._batchFiles = new Set();
|
|
908
|
+
}
|
|
909
|
+
/**
|
|
910
|
+
* Check if a batch is currently in progress.
|
|
911
|
+
*/
|
|
912
|
+
isBatching() {
|
|
913
|
+
return this._batching;
|
|
914
|
+
}
|
|
915
|
+
/**
|
|
916
|
+
* Find files that depend on the given changed files.
|
|
917
|
+
* Uses backward reachability to find dependent modules.
|
|
918
|
+
*
|
|
919
|
+
* Note: For large result sets, each reachable node requires a separate
|
|
920
|
+
* getNode RPC. A future server-side optimization could return file paths
|
|
921
|
+
* directly from the reachability query.
|
|
922
|
+
*/
|
|
923
|
+
async findDependentFiles(changedFiles) {
|
|
924
|
+
const nodeIds = [];
|
|
925
|
+
for (const file of changedFiles) {
|
|
926
|
+
const ids = await this.findByAttr({ file });
|
|
927
|
+
nodeIds.push(...ids);
|
|
928
|
+
}
|
|
929
|
+
if (nodeIds.length === 0)
|
|
930
|
+
return [];
|
|
931
|
+
const reachable = await this.reachability(nodeIds, 2, ['IMPORTS_FROM', 'DEPENDS_ON', 'CALLS'], true);
|
|
932
|
+
const changedSet = new Set(changedFiles);
|
|
933
|
+
const files = new Set();
|
|
934
|
+
for (const id of reachable) {
|
|
935
|
+
const node = await this.getNode(id);
|
|
936
|
+
if (node?.file && !changedSet.has(node.file)) {
|
|
937
|
+
files.add(node.file);
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
return [...files];
|
|
941
|
+
}
|
|
592
942
|
/**
|
|
593
943
|
* Unref the socket so it doesn't keep the process alive.
|
|
594
944
|
*
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
|