@milaboratories/pframes-rs-node 1.1.2 → 1.1.4

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