@milaboratories/pframes-rs-node 1.1.3 → 1.1.5

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.
Files changed (47) hide show
  1. package/README.md +3 -3
  2. package/export/addon-def.ts +27 -34
  3. package/export/addon.ts +6 -8
  4. package/export/dump.ts +37 -48
  5. package/export/export.ts +4 -6
  6. package/export/index.ts +2 -2
  7. package/export/node-pre-gyp.d.ts +1 -1
  8. package/export/tests/pframes.test.ts +247 -315
  9. package/export/tests/setup.ts +6 -15
  10. package/export/wrapper.ts +147 -212
  11. package/package.json +44 -42
  12. package/export_dist/addon-def.d.ts +0 -40
  13. package/export_dist/addon-def.d.ts.map +0 -1
  14. package/export_dist/addon.cjs +0 -24
  15. package/export_dist/addon.cjs.map +0 -1
  16. package/export_dist/addon.d.ts +0 -4
  17. package/export_dist/addon.d.ts.map +0 -1
  18. package/export_dist/addon.js +0 -21
  19. package/export_dist/addon.js.map +0 -1
  20. package/export_dist/dump.cjs +0 -115
  21. package/export_dist/dump.cjs.map +0 -1
  22. package/export_dist/dump.d.ts +0 -12
  23. package/export_dist/dump.d.ts.map +0 -1
  24. package/export_dist/dump.js +0 -107
  25. package/export_dist/dump.js.map +0 -1
  26. package/export_dist/export.cjs +0 -15
  27. package/export_dist/export.cjs.map +0 -1
  28. package/export_dist/export.d.ts +0 -3
  29. package/export_dist/export.d.ts.map +0 -1
  30. package/export_dist/export.js +0 -13
  31. package/export_dist/export.js.map +0 -1
  32. package/export_dist/index.cjs +0 -13
  33. package/export_dist/index.cjs.map +0 -1
  34. package/export_dist/index.d.ts +0 -3
  35. package/export_dist/index.d.ts.map +0 -1
  36. package/export_dist/index.js +0 -3
  37. package/export_dist/index.js.map +0 -1
  38. package/export_dist/tests/pframes.test.d.ts +0 -2
  39. package/export_dist/tests/pframes.test.d.ts.map +0 -1
  40. package/export_dist/tests/setup.d.ts +0 -2
  41. package/export_dist/tests/setup.d.ts.map +0 -1
  42. package/export_dist/wrapper.cjs +0 -542
  43. package/export_dist/wrapper.cjs.map +0 -1
  44. package/export_dist/wrapper.d.ts +0 -51
  45. package/export_dist/wrapper.d.ts.map +0 -1
  46. package/export_dist/wrapper.js +0 -539
  47. package/export_dist/wrapper.js.map +0 -1
package/export/wrapper.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ulid } from 'ulid';
1
+ import { ulid } from "ulid";
2
2
  import {
3
3
  AbortError,
4
4
  type PColumnInfo,
@@ -14,14 +14,14 @@ import {
14
14
  type TableRange,
15
15
  type UniqueValuesRequest,
16
16
  type UniqueValuesResponse,
17
- type QueryData,
17
+ type DataQuery,
18
18
  ensureError,
19
- isAbortError
20
- } from '@milaboratories/pl-model-common';
21
- import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
22
- import { PerfTimer } from '@milaboratories/helpers';
23
- import type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';
24
- import { AddonSymbol } from './addon';
19
+ isAbortError,
20
+ } from "@milaboratories/pl-model-common";
21
+ import type { PFrameInternal } from "@milaboratories/pl-model-middle-layer";
22
+ import { PerfTimer } from "@milaboratories/helpers";
23
+ import type { NodeFrameSymbol, NodeTableSymbol } from "./addon-def";
24
+ import { AddonSymbol } from "./addon";
25
25
  import {
26
26
  dump,
27
27
  hashColumnId,
@@ -29,8 +29,8 @@ import {
29
29
  hashFilterColumnId,
30
30
  hashUniqueValuesRequestColumnId,
31
31
  hashSortingColumnId,
32
- hashCreateTableRequestColumnId
33
- } from './dump';
32
+ hashCreateTableRequestColumnId,
33
+ } from "./dump";
34
34
 
35
35
  export async function pprofDump(): Promise<Uint8Array> {
36
36
  try {
@@ -61,21 +61,21 @@ export class PFrame implements PFrameInternal.PFrameV13 {
61
61
  [`${this.id}`, `${this.id}.json`],
62
62
  {
63
63
  timeStamp: Date.now(),
64
- requestType: 'create'
64
+ requestType: "create",
65
65
  },
66
- this.#logger
66
+ this.#logger,
67
67
  );
68
68
 
69
69
  try {
70
70
  this.#frame = AddonSymbol.pFrameCreate(options.spillPath, options.logger);
71
- this.#logger('info', `PFrame ${this.id} created`);
71
+ this.#logger("info", `PFrame ${this.id} created`);
72
72
  } catch (err: unknown) {
73
73
  const error = new PFrameError(`PFrame creation failed`);
74
74
  error.cause = new Error(
75
75
  `PFrame ${this.id} creation failed, ` +
76
76
  `logger: ${this.#logger?.toString()}, ` +
77
77
  `error:\n` +
78
- `${ensureError(err)}`
78
+ `${ensureError(err)}`,
79
79
  );
80
80
  throw error;
81
81
  }
@@ -87,21 +87,21 @@ export class PFrame implements PFrameInternal.PFrameV13 {
87
87
  [`${this.id}`, `${requestId}.json`],
88
88
  {
89
89
  timeStamp: Date.now(),
90
- requestType: 'addColumnSpec',
90
+ requestType: "addColumnSpec",
91
91
  requestData: {
92
92
  columnId: hashColumnId(columnId),
93
- columnSpec
94
- }
93
+ columnSpec,
94
+ },
95
95
  },
96
- this.#logger
96
+ this.#logger,
97
97
  );
98
98
 
99
99
  dump(
100
100
  [`${this.id}`, `data`, `${hashColumnId(columnId)}.spec`],
101
101
  {
102
- ...columnSpec
102
+ ...columnSpec,
103
103
  },
104
- this.#logger
104
+ this.#logger,
105
105
  );
106
106
 
107
107
  try {
@@ -113,7 +113,7 @@ export class PFrame implements PFrameInternal.PFrameV13 {
113
113
  `columnId: ${JSON.stringify(columnId)}, ` +
114
114
  `columnSpec: ${JSON.stringify(columnSpec)}, ` +
115
115
  `error:\n` +
116
- `${ensureError(err)}`
116
+ `${ensureError(err)}`,
117
117
  );
118
118
  throw error;
119
119
  }
@@ -125,65 +125,61 @@ export class PFrame implements PFrameInternal.PFrameV13 {
125
125
  [`${this.id}`, `${requestId}.json`],
126
126
  {
127
127
  timeStamp: Date.now(),
128
- requestType: 'setDataSource'
128
+ requestType: "setDataSource",
129
129
  },
130
- this.#logger
130
+ this.#logger,
131
131
  );
132
132
 
133
133
  const wrappedDataSource = {
134
- preloadBlob: async (
135
- blobIds: PFrameInternal.PFrameBlobId[]
136
- ): Promise<void> => {
134
+ preloadBlob: async (blobIds: PFrameInternal.PFrameBlobId[]): Promise<void> => {
137
135
  const requestId = ulid();
138
136
  dump(
139
137
  [`${this.id}`, `${requestId}.json`],
140
138
  {
141
139
  timeStamp: Date.now(),
142
- requestType: 'preloadBlob',
140
+ requestType: "preloadBlob",
143
141
  requestData: {
144
- blobIds
145
- }
142
+ blobIds,
143
+ },
146
144
  },
147
- this.#logger
145
+ this.#logger,
148
146
  );
149
147
 
150
148
  this.#logger(
151
- 'info',
152
- `PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(blobIds)}`
149
+ "info",
150
+ `PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(blobIds)}`,
153
151
  );
154
152
  const timer = PerfTimer.start();
155
153
  try {
156
154
  return await dataSource.preloadBlob(blobIds);
157
155
  } finally {
158
156
  this.#logger(
159
- 'info',
160
- `PFrame ${this.id} preloadBlob finished, took ${timer.elapsed()} (${blobIds.length} blobs)`
157
+ "info",
158
+ `PFrame ${this.id} preloadBlob finished, took ${timer.elapsed()} (${blobIds.length} blobs)`,
161
159
  );
162
160
  }
163
161
  },
164
- resolveBlobContent: async (
165
- blobId: PFrameInternal.PFrameBlobId
166
- ): Promise<Uint8Array> => {
162
+ resolveBlobContent: async (blobId: PFrameInternal.PFrameBlobId): Promise<Uint8Array> => {
167
163
  const requestId = ulid();
168
164
  dump(
169
165
  [`${this.id}`, `${requestId}.json`],
170
166
  {
171
167
  timeStamp: Date.now(),
172
- requestType: 'resolveBlobContent',
168
+ requestType: "resolveBlobContent",
173
169
  requestData: {
174
- blobId
175
- }
170
+ blobId,
171
+ },
176
172
  },
177
- this.#logger
173
+ this.#logger,
178
174
  );
179
175
 
180
176
  const blob = await dataSource.resolveBlobContent(blobId);
181
- this.#logger('info', `PFrame ${this.id} resolved blob ${blobId}`);
177
+ this.#logger("info", `PFrame ${this.id} resolved blob ${blobId}`);
182
178
  dump([`${this.id}`, `data`, `${blobId}`], blob, this.#logger);
183
179
 
184
180
  return blob;
185
181
  },
186
- parquetServer: dataSource.parquetServer
182
+ parquetServer: dataSource.parquetServer,
187
183
  };
188
184
 
189
185
  try {
@@ -194,7 +190,7 @@ export class PFrame implements PFrameInternal.PFrameV13 {
194
190
  `PFrame ${this.id} setDataSource request ${requestId} failed, ` +
195
191
  `dataSource: ${dataSource.toString()}, ` +
196
192
  `error:\n` +
197
- `${ensureError(err)}`
193
+ `${ensureError(err)}`,
198
194
  );
199
195
  throw error;
200
196
  }
@@ -205,38 +201,33 @@ export class PFrame implements PFrameInternal.PFrameV13 {
205
201
  dataInfo: PFrameInternal.DataInfo<PFrameInternal.PFrameBlobId>,
206
202
  ops?: {
207
203
  signal?: AbortSignal;
208
- }
204
+ },
209
205
  ): Promise<void> {
210
206
  const requestId = ulid();
211
207
  dump(
212
208
  [`${this.id}`, `${requestId}.json`],
213
209
  {
214
210
  timeStamp: Date.now(),
215
- requestType: 'setColumnData',
211
+ requestType: "setColumnData",
216
212
  requestData: {
217
213
  columnId: hashColumnId(columnId),
218
- dataInfo
219
- }
214
+ dataInfo,
215
+ },
220
216
  },
221
- this.#logger
217
+ this.#logger,
222
218
  );
223
219
 
224
220
  dump(
225
221
  [`${this.id}`, `data`, `${hashColumnId(columnId)}.datainfo`],
226
222
  {
227
- ...dataInfo
223
+ ...dataInfo,
228
224
  },
229
- this.#logger
225
+ this.#logger,
230
226
  );
231
227
 
232
228
  try {
233
229
  ops?.signal?.throwIfAborted();
234
- return AddonSymbol.pFrameSetColumnData(
235
- this.#frame,
236
- columnId,
237
- dataInfo,
238
- ops?.signal
239
- );
230
+ return AddonSymbol.pFrameSetColumnData(this.#frame, columnId, dataInfo, ops?.signal);
240
231
  } catch (err: unknown) {
241
232
  const error = new PFrameError(`PFrame setColumnData request failed`);
242
233
  error.cause = new Error(
@@ -244,7 +235,7 @@ export class PFrame implements PFrameInternal.PFrameV13 {
244
235
  `columnId: ${JSON.stringify(columnId)}, ` +
245
236
  `dataInfo: ${JSON.stringify(dataInfo)}, ` +
246
237
  `error:\n` +
247
- `${ensureError(err)}`
238
+ `${ensureError(err)}`,
248
239
  );
249
240
  throw error;
250
241
  }
@@ -256,20 +247,20 @@ export class PFrame implements PFrameInternal.PFrameV13 {
256
247
  [`${this.id}`, `${requestId}.json`],
257
248
  {
258
249
  timeStamp: Date.now(),
259
- requestType: 'dispose'
250
+ requestType: "dispose",
260
251
  },
261
- this.#logger
252
+ this.#logger,
262
253
  );
263
254
 
264
255
  try {
265
256
  AddonSymbol.pFrameDispose(this.#frame);
266
- this.#logger('info', `PFrame ${this.id} disposed`);
257
+ this.#logger("info", `PFrame ${this.id} disposed`);
267
258
  } catch (err: unknown) {
268
259
  const error = new PFrameError(`PFrame dispose request failed`);
269
260
  error.cause = new Error(
270
261
  `PFrame ${this.id} dispose request ${requestId} failed, ` +
271
262
  `error:\n` +
272
- `${ensureError(err)}`
263
+ `${ensureError(err)}`,
273
264
  );
274
265
  throw error;
275
266
  }
@@ -280,17 +271,17 @@ export class PFrame implements PFrameInternal.PFrameV13 {
280
271
  }
281
272
 
282
273
  async findColumns(
283
- request: PFrameInternal.FindColumnsRequest
274
+ request: PFrameInternal.FindColumnsRequest,
284
275
  ): Promise<PFrameInternal.FindColumnsResponse> {
285
276
  const requestId = ulid();
286
277
  dump(
287
278
  [`${this.id}`, `${requestId}.json`],
288
279
  {
289
280
  timeStamp: Date.now(),
290
- requestType: 'findColumns',
291
- requestData: request
281
+ requestType: "findColumns",
282
+ requestData: request,
292
283
  },
293
- this.#logger
284
+ this.#logger,
294
285
  );
295
286
 
296
287
  const timer = PerfTimer.start();
@@ -302,29 +293,29 @@ export class PFrame implements PFrameInternal.PFrameV13 {
302
293
  `PFrame ${this.id} findColumns request ${requestId} failed, ` +
303
294
  `request: ${JSON.stringify(request)}, ` +
304
295
  `error:\n` +
305
- `${ensureError(err)}`
296
+ `${ensureError(err)}`,
306
297
  );
307
298
  throw error;
308
299
  } finally {
309
300
  this.#logger(
310
- 'info',
311
- `PFrame ${this.id} findColumns request ${requestId} took ${timer.elapsed()}`
301
+ "info",
302
+ `PFrame ${this.id} findColumns request ${requestId} took ${timer.elapsed()}`,
312
303
  );
313
304
  }
314
305
  }
315
306
 
316
307
  async deleteColumn(
317
- request: PFrameInternal.DeleteColumnFromColumnsRequest
308
+ request: PFrameInternal.DeleteColumnFromColumnsRequest,
318
309
  ): Promise<PFrameInternal.DeleteColumnFromColumnsResponse> {
319
310
  const requestId = ulid();
320
311
  dump(
321
312
  [`${this.id}`, `${requestId}.json`],
322
313
  {
323
314
  timeStamp: Date.now(),
324
- requestType: 'deleteColumn',
325
- requestData: request
315
+ requestType: "deleteColumn",
316
+ requestData: request,
326
317
  },
327
- this.#logger
318
+ this.#logger,
328
319
  );
329
320
 
330
321
  const timer = PerfTimer.start();
@@ -336,13 +327,13 @@ export class PFrame implements PFrameInternal.PFrameV13 {
336
327
  `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +
337
328
  `request: ${JSON.stringify(request)}, ` +
338
329
  `error:\n` +
339
- `${ensureError(err)}`
330
+ `${ensureError(err)}`,
340
331
  );
341
332
  throw error;
342
333
  } finally {
343
334
  this.#logger(
344
- 'info',
345
- `PFrame ${this.id} deleteColumn request ${requestId} took ${timer.elapsed()}`
335
+ "info",
336
+ `PFrame ${this.id} deleteColumn request ${requestId} took ${timer.elapsed()}`,
346
337
  );
347
338
  }
348
339
  }
@@ -353,12 +344,12 @@ export class PFrame implements PFrameInternal.PFrameV13 {
353
344
  [`${this.id}`, `${requestId}.json`],
354
345
  {
355
346
  timeStamp: Date.now(),
356
- requestType: 'getColumnSpec',
347
+ requestType: "getColumnSpec",
357
348
  requestData: {
358
- columnId: hashColumnId(columnId)
359
- }
349
+ columnId: hashColumnId(columnId),
350
+ },
360
351
  },
361
- this.#logger
352
+ this.#logger,
362
353
  );
363
354
 
364
355
  try {
@@ -369,7 +360,7 @@ export class PFrame implements PFrameInternal.PFrameV13 {
369
360
  `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +
370
361
  `columnId: ${JSON.stringify(columnId)}, ` +
371
362
  `error:\n` +
372
- `${ensureError(err)}`
363
+ `${ensureError(err)}`,
373
364
  );
374
365
  throw error;
375
366
  }
@@ -381,9 +372,9 @@ export class PFrame implements PFrameInternal.PFrameV13 {
381
372
  [`${this.id}`, `${requestId}.json`],
382
373
  {
383
374
  timeStamp: Date.now(),
384
- requestType: 'listColumns'
375
+ requestType: "listColumns",
385
376
  },
386
- this.#logger
377
+ this.#logger,
387
378
  );
388
379
 
389
380
  try {
@@ -393,7 +384,7 @@ export class PFrame implements PFrameInternal.PFrameV13 {
393
384
  error.cause = new Error(
394
385
  `PFrame ${this.id} listColumns request ${requestId} failed, ` +
395
386
  `error:\n` +
396
- `${ensureError(err)}`
387
+ `${ensureError(err)}`,
397
388
  );
398
389
  throw error;
399
390
  }
@@ -401,27 +392,19 @@ export class PFrame implements PFrameInternal.PFrameV13 {
401
392
 
402
393
  createTable(
403
394
  requestId: PFrameInternal.PTableId,
404
- request: PFrameInternal.CreateTableRequestV4
395
+ request: PFrameInternal.CreateTableRequestV4,
405
396
  ): PTable {
406
397
  const dumpData = {
407
398
  timeStamp: Date.now(),
408
- requestType: 'createTable',
409
- requestData: hashCreateTableRequestColumnId(request)
399
+ requestType: "createTable",
400
+ requestData: hashCreateTableRequestColumnId(request),
410
401
  };
411
402
  dump([`${this.id}`, `${requestId}.json`], dumpData, this.#logger);
412
- dump(
413
- [`${this.id}`, `${requestId}`, `${requestId}.json`],
414
- dumpData,
415
- this.#logger
416
- );
403
+ dump([`${this.id}`, `${requestId}`, `${requestId}.json`], dumpData, this.#logger);
417
404
 
418
405
  const timer = PerfTimer.start();
419
406
  try {
420
- const boxed = AddonSymbol.pFrameCreateTable(
421
- this.#frame,
422
- requestId,
423
- request
424
- );
407
+ const boxed = AddonSymbol.pFrameCreateTable(this.#frame, requestId, request);
425
408
  return new PTable(this, requestId, boxed, this.#logger);
426
409
  } catch (err: unknown) {
427
410
  const error = new PFrameError(`PFrame createTable request failed`);
@@ -429,13 +412,13 @@ export class PFrame implements PFrameInternal.PFrameV13 {
429
412
  `PFrame ${this.id} createTable request ${requestId} failed, ` +
430
413
  `request: ${JSON.stringify(request)}, ` +
431
414
  `error:\n` +
432
- `${ensureError(err)}`
415
+ `${ensureError(err)}`,
433
416
  );
434
417
  throw error;
435
418
  } finally {
436
419
  this.#logger(
437
- 'info',
438
- `PFrame ${this.id} createTable request ${requestId} took ${timer.elapsed()}`
420
+ "info",
421
+ `PFrame ${this.id} createTable request ${requestId} took ${timer.elapsed()}`,
439
422
  );
440
423
  }
441
424
  }
@@ -444,29 +427,25 @@ export class PFrame implements PFrameInternal.PFrameV13 {
444
427
  requestId: PFrameInternal.PTableId,
445
428
  request: {
446
429
  tableSpec: PTableColumnSpec[];
447
- dataQuery: QueryData;
448
- }
430
+ dataQuery: DataQuery;
431
+ },
449
432
  ): PTable {
450
433
  const timer = PerfTimer.start();
451
434
  try {
452
- const boxed = AddonSymbol.pFrameCreateTableV2(
453
- this.#frame,
454
- requestId,
455
- request
456
- );
435
+ const boxed = AddonSymbol.pFrameCreateTableV2(this.#frame, requestId, request);
457
436
  return new PTable(this, requestId, boxed, this.#logger);
458
437
  } catch (err: unknown) {
459
438
  const error = new PFrameError(`PFrame createTableV2 request failed`);
460
439
  error.cause = new Error(
461
440
  `PFrame ${this.id} createTableV2 request ${requestId} failed, ` +
462
441
  `error:\n` +
463
- `${ensureError(err)}`
442
+ `${ensureError(err)}`,
464
443
  );
465
444
  throw error;
466
445
  } finally {
467
446
  this.#logger(
468
- 'info',
469
- `PFrame ${this.id} createTableV2 request ${requestId} took ${timer.elapsed()}`
447
+ "info",
448
+ `PFrame ${this.id} createTableV2 request ${requestId} took ${timer.elapsed()}`,
470
449
  );
471
450
  }
472
451
  }
@@ -475,50 +454,40 @@ export class PFrame implements PFrameInternal.PFrameV13 {
475
454
  request: UniqueValuesRequest,
476
455
  ops?: {
477
456
  signal?: AbortSignal;
478
- }
457
+ },
479
458
  ): Promise<UniqueValuesResponse> {
480
459
  const requestId = ulid() as PFrameInternal.PTableId;
481
460
  dump(
482
461
  [`${this.id}`, `${requestId}.json`],
483
462
  {
484
463
  timeStamp: Date.now(),
485
- requestType: 'getUniqueValues',
486
- requestData: hashUniqueValuesRequestColumnId(request)
464
+ requestType: "getUniqueValues",
465
+ requestData: hashUniqueValuesRequestColumnId(request),
487
466
  },
488
- this.#logger
467
+ this.#logger,
489
468
  );
490
469
 
491
- this.#logger(
492
- 'info',
493
- `PFrame ${this.id} getUniqueValues request ${requestId} started`
494
- );
470
+ this.#logger("info", `PFrame ${this.id} getUniqueValues request ${requestId} started`);
495
471
  const timer = PerfTimer.start();
496
472
  try {
497
473
  ops?.signal?.throwIfAborted();
498
- return await AddonSymbol.pFrameGetUniqueValues(
499
- this.#frame,
500
- requestId,
501
- request,
502
- ops?.signal
503
- );
474
+ return await AddonSymbol.pFrameGetUniqueValues(this.#frame, requestId, request, ops?.signal);
504
475
  } catch (err: unknown) {
505
476
  if (isAbortError(err)) {
506
- throw new AbortError(
507
- `PFrame ${this.id} getUniqueValues request ${requestId} cancelled`
508
- );
477
+ throw new AbortError(`PFrame ${this.id} getUniqueValues request ${requestId} cancelled`);
509
478
  }
510
479
  const error = new PFrameError(`PFrame getUniqueValues request failed`);
511
480
  error.cause = new Error(
512
481
  `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +
513
482
  `request: ${JSON.stringify(request)}, ` +
514
483
  `error:\n` +
515
- `${ensureError(err)}`
484
+ `${ensureError(err)}`,
516
485
  );
517
486
  throw error;
518
487
  } finally {
519
488
  this.#logger(
520
- 'info',
521
- `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${timer.elapsed()}`
489
+ "info",
490
+ `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${timer.elapsed()}`,
522
491
  );
523
492
  }
524
493
  }
@@ -536,17 +505,12 @@ class PTable implements PFrameInternal.PTableV8 {
536
505
 
537
506
  readonly #logger: PFrameInternal.Logger;
538
507
 
539
- constructor(
540
- frame: PFrame,
541
- id: string,
542
- table: NodeTableSymbol,
543
- logger: PFrameInternal.Logger
544
- ) {
508
+ constructor(frame: PFrame, id: string, table: NodeTableSymbol, logger: PFrameInternal.Logger) {
545
509
  this.#frame = frame;
546
510
  this.#table = table;
547
511
  this.#id = id;
548
512
  this.#logger = logger;
549
- this.#logger('info', `PTable ${this.id} created`);
513
+ this.#logger("info", `PTable ${this.id} created`);
550
514
  }
551
515
 
552
516
  getSpec(): PTableColumnSpec[] {
@@ -555,9 +519,9 @@ class PTable implements PFrameInternal.PTableV8 {
555
519
  [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
556
520
  {
557
521
  timeStamp: Date.now(),
558
- requestType: 'getSpec'
522
+ requestType: "getSpec",
559
523
  },
560
- this.#logger
524
+ this.#logger,
561
525
  );
562
526
 
563
527
  try {
@@ -567,7 +531,7 @@ class PTable implements PFrameInternal.PTableV8 {
567
531
  error.cause = new Error(
568
532
  `PTable ${this.id} getSpec request ${requestId} failed, ` +
569
533
  `error:\n` +
570
- `${ensureError(err)}`
534
+ `${ensureError(err)}`,
571
535
  );
572
536
  throw error;
573
537
  }
@@ -579,12 +543,12 @@ class PTable implements PFrameInternal.PTableV8 {
579
543
  [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
580
544
  {
581
545
  timeStamp: Date.now(),
582
- requestType: 'getColumnIndices',
546
+ requestType: "getColumnIndices",
583
547
  requestData: {
584
- columnIds: columnIds.map(hashTableColumnId)
585
- }
548
+ columnIds: columnIds.map(hashTableColumnId),
549
+ },
586
550
  },
587
- this.#logger
551
+ this.#logger,
588
552
  );
589
553
 
590
554
  try {
@@ -595,7 +559,7 @@ class PTable implements PFrameInternal.PTableV8 {
595
559
  `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +
596
560
  `columnIds: ${JSON.stringify(columnIds)}, ` +
597
561
  `error:\n` +
598
- `${ensureError(err)}`
562
+ `${ensureError(err)}`,
599
563
  );
600
564
  throw error;
601
565
  }
@@ -607,9 +571,9 @@ class PTable implements PFrameInternal.PTableV8 {
607
571
  [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
608
572
  {
609
573
  timeStamp: Date.now(),
610
- requestType: 'getFootprint'
574
+ requestType: "getFootprint",
611
575
  },
612
- this.#logger
576
+ this.#logger,
613
577
  );
614
578
 
615
579
  try {
@@ -617,15 +581,13 @@ class PTable implements PFrameInternal.PTableV8 {
617
581
  return await AddonSymbol.pTableGetFootprint(this.#table, ops?.signal);
618
582
  } catch (err: unknown) {
619
583
  if (!isAbortError(err)) {
620
- throw new AbortError(
621
- `PTable ${this.id} getFootprint request ${requestId} cancelled`
622
- );
584
+ throw new AbortError(`PTable ${this.id} getFootprint request ${requestId} cancelled`);
623
585
  }
624
586
  const error = new PFrameError(`PTable getFootprint request failed`);
625
587
  error.cause = new Error(
626
588
  `PTable ${this.id} getFootprint request ${requestId} failed, ` +
627
589
  `error:\n` +
628
- `${ensureError(err)}`
590
+ `${ensureError(err)}`,
629
591
  );
630
592
  throw error;
631
593
  }
@@ -637,36 +599,31 @@ class PTable implements PFrameInternal.PTableV8 {
637
599
  [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
638
600
  {
639
601
  timeStamp: Date.now(),
640
- requestType: 'getShape'
602
+ requestType: "getShape",
641
603
  },
642
- this.#logger
604
+ this.#logger,
643
605
  );
644
606
 
645
- this.#logger(
646
- 'info',
647
- `PTable ${this.id} getShape request ${requestId} started`
648
- );
607
+ this.#logger("info", `PTable ${this.id} getShape request ${requestId} started`);
649
608
  const timer = PerfTimer.start();
650
609
  try {
651
610
  ops?.signal?.throwIfAborted();
652
611
  return await AddonSymbol.pTableGetShape(this.#table, ops?.signal);
653
612
  } catch (err: unknown) {
654
613
  if (isAbortError(err)) {
655
- throw new AbortError(
656
- `PTable ${this.id} getShape request ${requestId} cancelled`
657
- );
614
+ throw new AbortError(`PTable ${this.id} getShape request ${requestId} cancelled`);
658
615
  }
659
616
  const error = new PFrameError(`PTable getShape request failed`);
660
617
  error.cause = new Error(
661
618
  `PTable ${this.id} getShape request ${requestId} failed, ` +
662
619
  `error:\n` +
663
- `${ensureError(err)}`
620
+ `${ensureError(err)}`,
664
621
  );
665
622
  throw error;
666
623
  } finally {
667
624
  this.#logger(
668
- 'info',
669
- `PTable ${this.id} getShape request ${requestId} finished, took ${timer.elapsed()}`
625
+ "info",
626
+ `PTable ${this.id} getShape request ${requestId} finished, took ${timer.elapsed()}`,
670
627
  );
671
628
  }
672
629
  }
@@ -676,26 +633,23 @@ class PTable implements PFrameInternal.PTableV8 {
676
633
  ops?: {
677
634
  range?: TableRange | undefined;
678
635
  signal?: AbortSignal | undefined;
679
- }
636
+ },
680
637
  ): Promise<PTableVector[]> {
681
638
  const requestId = ulid() as PFrameInternal.PTableId;
682
639
  dump(
683
640
  [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
684
641
  {
685
642
  timeStamp: Date.now(),
686
- requestType: 'getData',
643
+ requestType: "getData",
687
644
  requestData: {
688
645
  columnIndices,
689
- range: ops?.range ?? null
690
- }
646
+ range: ops?.range ?? null,
647
+ },
691
648
  },
692
- this.#logger
649
+ this.#logger,
693
650
  );
694
651
 
695
- this.#logger(
696
- 'info',
697
- `PTable ${this.id} getData request ${requestId} started`
698
- );
652
+ this.#logger("info", `PTable ${this.id} getData request ${requestId} started`);
699
653
  let rowCount = 0;
700
654
  const timer = PerfTimer.start();
701
655
  try {
@@ -705,15 +659,13 @@ class PTable implements PFrameInternal.PTableV8 {
705
659
  requestId,
706
660
  columnIndices,
707
661
  ops?.range,
708
- ops?.signal
662
+ ops?.signal,
709
663
  );
710
664
  rowCount = result[0].data.length;
711
665
  return result;
712
666
  } catch (err: unknown) {
713
667
  if (isAbortError(err)) {
714
- throw new AbortError(
715
- `PTable ${this.id} getData request ${requestId} cancelled`
716
- );
668
+ throw new AbortError(`PTable ${this.id} getData request ${requestId} cancelled`);
717
669
  }
718
670
  const error = new PFrameError(`PTable getData request failed`);
719
671
  error.cause = new Error(
@@ -721,35 +673,28 @@ class PTable implements PFrameInternal.PTableV8 {
721
673
  `columnIndices: ${JSON.stringify(columnIndices)}, ` +
722
674
  `range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +
723
675
  `error:\n` +
724
- `${ensureError(err)}`
676
+ `${ensureError(err)}`,
725
677
  );
726
678
  throw error;
727
679
  } finally {
728
680
  this.#logger(
729
- 'info',
730
- `PTable ${this.id} getData request ${requestId} finished, took ${timer.elapsed()} (${rowCount} rows)`
681
+ "info",
682
+ `PTable ${this.id} getData request ${requestId} finished, took ${timer.elapsed()} (${rowCount} rows)`,
731
683
  );
732
684
  }
733
685
  }
734
686
 
735
- filter(
736
- requestId: PFrameInternal.PTableId,
737
- request: PTableRecordFilter[]
738
- ): PTable {
687
+ filter(requestId: PFrameInternal.PTableId, request: PTableRecordFilter[]): PTable {
739
688
  const dumpData = {
740
689
  timeStamp: Date.now(),
741
690
  table: this.id,
742
- requestType: 'filter',
691
+ requestType: "filter",
743
692
  requestData: {
744
- filters: request.map(hashFilterColumnId)
745
- }
693
+ filters: request.map(hashFilterColumnId),
694
+ },
746
695
  };
747
696
  dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);
748
- dump(
749
- [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],
750
- dumpData,
751
- this.#logger
752
- );
697
+ dump([`${this.#frame.id}`, `${requestId}`, `${requestId}.json`], dumpData, this.#logger);
753
698
 
754
699
  const timer = PerfTimer.start();
755
700
  try {
@@ -761,14 +706,11 @@ class PTable implements PFrameInternal.PTableV8 {
761
706
  `PTable ${this.id} filter request ${requestId} failed, ` +
762
707
  `request: ${JSON.stringify(request)}, ` +
763
708
  `error:\n` +
764
- `${ensureError(err)}`
709
+ `${ensureError(err)}`,
765
710
  );
766
711
  throw error;
767
712
  } finally {
768
- this.#logger(
769
- 'info',
770
- `PTable ${this.id} filter request ${requestId} took ${timer.elapsed()}`
771
- );
713
+ this.#logger("info", `PTable ${this.id} filter request ${requestId} took ${timer.elapsed()}`);
772
714
  }
773
715
  }
774
716
 
@@ -776,15 +718,11 @@ class PTable implements PFrameInternal.PTableV8 {
776
718
  const dumpData = {
777
719
  timeStamp: Date.now(),
778
720
  table: this.id,
779
- requestType: 'sort',
780
- requestData: request.map(hashSortingColumnId)
721
+ requestType: "sort",
722
+ requestData: request.map(hashSortingColumnId),
781
723
  };
782
724
  dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);
783
- dump(
784
- [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],
785
- dumpData,
786
- this.#logger
787
- );
725
+ dump([`${this.#frame.id}`, `${requestId}`, `${requestId}.json`], dumpData, this.#logger);
788
726
 
789
727
  const timer = PerfTimer.start();
790
728
  try {
@@ -796,14 +734,11 @@ class PTable implements PFrameInternal.PTableV8 {
796
734
  `PTable ${this.id} sort request ${requestId} failed, ` +
797
735
  `request: ${JSON.stringify(request)}, ` +
798
736
  `error:\n` +
799
- `${ensureError(err)}`
737
+ `${ensureError(err)}`,
800
738
  );
801
739
  throw error;
802
740
  } finally {
803
- this.#logger(
804
- 'info',
805
- `PTable ${this.id} sort request ${requestId} took ${timer.elapsed()}`
806
- );
741
+ this.#logger("info", `PTable ${this.id} sort request ${requestId} took ${timer.elapsed()}`);
807
742
  }
808
743
  }
809
744
 
@@ -813,20 +748,20 @@ class PTable implements PFrameInternal.PTableV8 {
813
748
  [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
814
749
  {
815
750
  timeStamp: Date.now(),
816
- requestType: 'dispose'
751
+ requestType: "dispose",
817
752
  },
818
- this.#logger
753
+ this.#logger,
819
754
  );
820
755
 
821
756
  try {
822
757
  AddonSymbol.pTableDispose(this.#table);
823
- this.#logger('info', `PTable ${this.id} disposed`);
758
+ this.#logger("info", `PTable ${this.id} disposed`);
824
759
  } catch (err: unknown) {
825
760
  const error = new PFrameError(`PTable dispose request failed`);
826
761
  error.cause = new Error(
827
762
  `PTable ${this.id} dispose request ${requestId} failed, ` +
828
763
  `error:\n` +
829
- `${ensureError(err)}`
764
+ `${ensureError(err)}`,
830
765
  );
831
766
  throw error;
832
767
  }