@milaboratories/pframes-rs-node 1.0.57 → 1.0.63
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 +17 -5
- package/export/addon-def.ts +0 -1
- package/export/dump.ts +13 -14
- package/export/export.ts +10 -10
- package/export/index.ts +2 -1
- package/export/wrapper.ts +143 -132
- package/export_dist/addon-def.d.ts +1 -1
- package/export_dist/addon-def.d.ts.map +1 -1
- package/export_dist/addon.cjs +24 -0
- package/export_dist/addon.cjs.map +1 -0
- package/export_dist/addon.d.ts +1 -1
- package/export_dist/addon.js +21 -0
- package/export_dist/addon.js.map +1 -0
- package/export_dist/dump.cjs +133 -0
- package/export_dist/dump.cjs.map +1 -0
- package/export_dist/dump.d.ts +1 -1
- package/export_dist/dump.d.ts.map +1 -1
- package/export_dist/dump.js +125 -0
- package/export_dist/dump.js.map +1 -0
- package/export_dist/export.cjs +15 -0
- package/export_dist/export.cjs.map +1 -0
- package/export_dist/export.d.ts +2 -6
- package/export_dist/export.d.ts.map +1 -1
- package/export_dist/export.js +13 -0
- package/export_dist/export.js.map +1 -0
- package/export_dist/index.cjs +13 -0
- package/export_dist/index.cjs.map +1 -0
- package/export_dist/index.d.ts +2 -1
- package/export_dist/index.d.ts.map +1 -1
- package/export_dist/index.js +2 -21
- package/export_dist/index.js.map +1 -1
- package/export_dist/wrapper.cjs +511 -0
- package/export_dist/wrapper.cjs.map +1 -0
- package/export_dist/wrapper.d.ts +32 -10
- package/export_dist/wrapper.d.ts.map +1 -1
- package/export_dist/wrapper.js +508 -0
- package/export_dist/wrapper.js.map +1 -0
- package/package.json +34 -33
- package/export_dist/index.mjs +0 -765
- package/export_dist/index.mjs.map +0 -1
package/export/wrapper.ts
CHANGED
|
@@ -2,7 +2,6 @@ import humanizeDuration from 'humanize-duration';
|
|
|
2
2
|
import { ulid } from 'ulid';
|
|
3
3
|
import {
|
|
4
4
|
AbortError,
|
|
5
|
-
DataInfo,
|
|
6
5
|
PColumnInfo,
|
|
7
6
|
PColumnSpec,
|
|
8
7
|
PFrameError,
|
|
@@ -37,42 +36,48 @@ import {
|
|
|
37
36
|
hashCreateTableRequestColumnId
|
|
38
37
|
} from './dump';
|
|
39
38
|
|
|
40
|
-
export
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
export async function pprofDump(): Promise<Uint8Array> {
|
|
40
|
+
try {
|
|
41
|
+
return await AddonSymbol.pprofDump();
|
|
42
|
+
} catch (err: unknown) {
|
|
43
|
+
throw new PFrameError(
|
|
44
|
+
`PFrame pprofDump failed, ` + `error:\n` + `${ensureError(err)}`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
49
|
+
export class PFrame implements PFrameInternal.PFrameV10 {
|
|
50
|
+
readonly #frame: NodeFrameSymbol;
|
|
51
|
+
|
|
52
|
+
readonly #id: FrameId = ulid() as FrameId;
|
|
53
|
+
|
|
54
|
+
get id(): FrameId {
|
|
55
|
+
return this.#id;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
readonly #logger: PFrameInternal.Logger;
|
|
59
|
+
|
|
60
|
+
constructor(options: PFrameInternal.PFrameOptions) {
|
|
61
|
+
this.#logger = options.logger ?? (() => {});
|
|
62
|
+
|
|
58
63
|
dump(
|
|
59
64
|
[`${this.id}`, `${this.id}.json`],
|
|
60
65
|
{
|
|
61
66
|
timeStamp: Date.now(),
|
|
62
67
|
requestType: 'create'
|
|
63
68
|
},
|
|
64
|
-
this
|
|
69
|
+
this.#logger
|
|
65
70
|
);
|
|
66
71
|
|
|
67
72
|
try {
|
|
68
|
-
this
|
|
69
|
-
this
|
|
73
|
+
this.#frame = AddonSymbol.pFrameCreate(options.spillPath, options.logger);
|
|
74
|
+
this.#logger('info', `PFrame ${this.id} created`);
|
|
70
75
|
} catch (err: unknown) {
|
|
71
76
|
throw new PFrameError(
|
|
72
77
|
`PFrame ${this.id} creation failed, ` +
|
|
73
|
-
`logger: ${logger?.toString()}, ` +
|
|
78
|
+
`logger: ${this.#logger?.toString()}, ` +
|
|
74
79
|
`error:\n` +
|
|
75
|
-
`${ensureError(err)
|
|
80
|
+
`${ensureError(err)}`
|
|
76
81
|
);
|
|
77
82
|
}
|
|
78
83
|
}
|
|
@@ -89,7 +94,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
89
94
|
columnSpec
|
|
90
95
|
}
|
|
91
96
|
},
|
|
92
|
-
this
|
|
97
|
+
this.#logger
|
|
93
98
|
);
|
|
94
99
|
|
|
95
100
|
dump(
|
|
@@ -97,18 +102,18 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
97
102
|
{
|
|
98
103
|
...columnSpec
|
|
99
104
|
},
|
|
100
|
-
this
|
|
105
|
+
this.#logger
|
|
101
106
|
);
|
|
102
107
|
|
|
103
108
|
try {
|
|
104
|
-
return AddonSymbol.pFrameAddColumnSpec(this
|
|
109
|
+
return AddonSymbol.pFrameAddColumnSpec(this.#frame, columnId, columnSpec);
|
|
105
110
|
} catch (err: unknown) {
|
|
106
111
|
throw new PFrameError(
|
|
107
112
|
`PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +
|
|
108
113
|
`columnId: ${JSON.stringify(columnId)}, ` +
|
|
109
114
|
`columnSpec: ${JSON.stringify(columnSpec)}, ` +
|
|
110
115
|
`error:\n` +
|
|
111
|
-
`${ensureError(err)
|
|
116
|
+
`${ensureError(err)}`
|
|
112
117
|
);
|
|
113
118
|
}
|
|
114
119
|
}
|
|
@@ -121,7 +126,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
121
126
|
timeStamp: Date.now(),
|
|
122
127
|
requestType: 'setDataSource'
|
|
123
128
|
},
|
|
124
|
-
this
|
|
129
|
+
this.#logger
|
|
125
130
|
);
|
|
126
131
|
|
|
127
132
|
const wrappedDataSource = {
|
|
@@ -138,10 +143,10 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
138
143
|
blobIds
|
|
139
144
|
}
|
|
140
145
|
},
|
|
141
|
-
this
|
|
146
|
+
this.#logger
|
|
142
147
|
);
|
|
143
148
|
|
|
144
|
-
this
|
|
149
|
+
this.#logger(
|
|
145
150
|
'info',
|
|
146
151
|
`PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(blobIds)}`
|
|
147
152
|
);
|
|
@@ -150,7 +155,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
150
155
|
return await dataSource.preloadBlob(blobIds);
|
|
151
156
|
} finally {
|
|
152
157
|
const t1 = performance.now();
|
|
153
|
-
this
|
|
158
|
+
this.#logger(
|
|
154
159
|
'info',
|
|
155
160
|
`PFrame ${this.id} preloadBlob finished, took ${humanizeDuration(Math.round(t1 - t0))} (${blobIds.length} blobs)`
|
|
156
161
|
);
|
|
@@ -169,25 +174,25 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
169
174
|
blobId
|
|
170
175
|
}
|
|
171
176
|
},
|
|
172
|
-
this
|
|
177
|
+
this.#logger
|
|
173
178
|
);
|
|
174
179
|
|
|
175
180
|
const blob = await dataSource.resolveBlobContent(blobId);
|
|
176
|
-
this
|
|
177
|
-
dump([`${this.id}`, `data`, `${blobId}`], blob, this
|
|
181
|
+
this.#logger('info', `PFrame ${this.id} resolved blob ${blobId}`);
|
|
182
|
+
dump([`${this.id}`, `data`, `${blobId}`], blob, this.#logger);
|
|
178
183
|
|
|
179
184
|
return blob;
|
|
180
185
|
}
|
|
181
186
|
};
|
|
182
187
|
|
|
183
188
|
try {
|
|
184
|
-
return AddonSymbol.pFrameSetDataSource(this
|
|
189
|
+
return AddonSymbol.pFrameSetDataSource(this.#frame, wrappedDataSource);
|
|
185
190
|
} catch (err: unknown) {
|
|
186
191
|
throw new PFrameError(
|
|
187
192
|
`PFrame ${this.id} setDataSource request ${requestId} failed, ` +
|
|
188
193
|
`dataSource: ${dataSource.toString()}, ` +
|
|
189
194
|
`error:\n` +
|
|
190
|
-
`${ensureError(err)
|
|
195
|
+
`${ensureError(err)}`
|
|
191
196
|
);
|
|
192
197
|
}
|
|
193
198
|
}
|
|
@@ -210,7 +215,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
210
215
|
dataInfo
|
|
211
216
|
}
|
|
212
217
|
},
|
|
213
|
-
this
|
|
218
|
+
this.#logger
|
|
214
219
|
);
|
|
215
220
|
|
|
216
221
|
dump(
|
|
@@ -218,13 +223,13 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
218
223
|
{
|
|
219
224
|
...dataInfo
|
|
220
225
|
},
|
|
221
|
-
this
|
|
226
|
+
this.#logger
|
|
222
227
|
);
|
|
223
228
|
|
|
224
229
|
try {
|
|
225
230
|
ops?.signal?.throwIfAborted();
|
|
226
231
|
return AddonSymbol.pFrameSetColumnData(
|
|
227
|
-
this
|
|
232
|
+
this.#frame,
|
|
228
233
|
columnId,
|
|
229
234
|
dataInfo,
|
|
230
235
|
ops?.signal
|
|
@@ -235,7 +240,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
235
240
|
`columnId: ${JSON.stringify(columnId)}, ` +
|
|
236
241
|
`dataInfo: ${JSON.stringify(dataInfo)}, ` +
|
|
237
242
|
`error:\n` +
|
|
238
|
-
`${ensureError(err)
|
|
243
|
+
`${ensureError(err)}`
|
|
239
244
|
);
|
|
240
245
|
}
|
|
241
246
|
}
|
|
@@ -248,17 +253,17 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
248
253
|
timeStamp: Date.now(),
|
|
249
254
|
requestType: 'dispose'
|
|
250
255
|
},
|
|
251
|
-
this
|
|
256
|
+
this.#logger
|
|
252
257
|
);
|
|
253
258
|
|
|
254
259
|
try {
|
|
255
|
-
AddonSymbol.pFrameDispose(this
|
|
256
|
-
this
|
|
260
|
+
AddonSymbol.pFrameDispose(this.#frame);
|
|
261
|
+
this.#logger('info', `PFrame ${this.id} disposed`);
|
|
257
262
|
} catch (err: unknown) {
|
|
258
263
|
throw new PFrameError(
|
|
259
264
|
`PFrame ${this.id} dispose request ${requestId} failed, ` +
|
|
260
265
|
`error:\n` +
|
|
261
|
-
`${ensureError(err)
|
|
266
|
+
`${ensureError(err)}`
|
|
262
267
|
);
|
|
263
268
|
}
|
|
264
269
|
}
|
|
@@ -278,22 +283,22 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
278
283
|
requestType: 'findColumns',
|
|
279
284
|
requestData: request
|
|
280
285
|
},
|
|
281
|
-
this
|
|
286
|
+
this.#logger
|
|
282
287
|
);
|
|
283
288
|
|
|
284
289
|
const t0 = performance.now();
|
|
285
290
|
try {
|
|
286
|
-
return await AddonSymbol.pFrameFindColumns(this
|
|
291
|
+
return await AddonSymbol.pFrameFindColumns(this.#frame, request);
|
|
287
292
|
} catch (err: unknown) {
|
|
288
293
|
throw new PFrameError(
|
|
289
294
|
`PFrame ${this.id} findColumns request ${requestId} failed, ` +
|
|
290
295
|
`request: ${JSON.stringify(request)}, ` +
|
|
291
296
|
`error:\n` +
|
|
292
|
-
`${ensureError(err)
|
|
297
|
+
`${ensureError(err)}`
|
|
293
298
|
);
|
|
294
299
|
} finally {
|
|
295
300
|
const t1 = performance.now();
|
|
296
|
-
this
|
|
301
|
+
this.#logger(
|
|
297
302
|
'info',
|
|
298
303
|
`PFrame ${this.id} findColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
299
304
|
);
|
|
@@ -311,22 +316,22 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
311
316
|
requestType: 'deleteColumn',
|
|
312
317
|
requestData: request
|
|
313
318
|
},
|
|
314
|
-
this
|
|
319
|
+
this.#logger
|
|
315
320
|
);
|
|
316
321
|
|
|
317
322
|
const t0 = performance.now();
|
|
318
323
|
try {
|
|
319
|
-
return await AddonSymbol.pFrameDeleteColumn(this
|
|
324
|
+
return await AddonSymbol.pFrameDeleteColumn(this.#frame, request);
|
|
320
325
|
} catch (err: unknown) {
|
|
321
326
|
throw new PFrameError(
|
|
322
327
|
`PFrame ${this.id} deleteColumn request ${requestId} failed, ` +
|
|
323
328
|
`request: ${JSON.stringify(request)}, ` +
|
|
324
329
|
`error:\n` +
|
|
325
|
-
`${ensureError(err)
|
|
330
|
+
`${ensureError(err)}`
|
|
326
331
|
);
|
|
327
332
|
} finally {
|
|
328
333
|
const t1 = performance.now();
|
|
329
|
-
this
|
|
334
|
+
this.#logger(
|
|
330
335
|
'info',
|
|
331
336
|
`PFrame ${this.id} deleteColumn request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
332
337
|
);
|
|
@@ -344,22 +349,22 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
344
349
|
columnId: hashColumnId(columnId)
|
|
345
350
|
}
|
|
346
351
|
},
|
|
347
|
-
this
|
|
352
|
+
this.#logger
|
|
348
353
|
);
|
|
349
354
|
|
|
350
355
|
const t0 = performance.now();
|
|
351
356
|
try {
|
|
352
|
-
return await AddonSymbol.pFrameGetColumnSpec(this
|
|
357
|
+
return await AddonSymbol.pFrameGetColumnSpec(this.#frame, columnId);
|
|
353
358
|
} catch (err: unknown) {
|
|
354
359
|
throw new PFrameError(
|
|
355
360
|
`PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +
|
|
356
361
|
`columnId: ${JSON.stringify(columnId)}, ` +
|
|
357
362
|
`error:\n` +
|
|
358
|
-
`${ensureError(err)
|
|
363
|
+
`${ensureError(err)}`
|
|
359
364
|
);
|
|
360
365
|
} finally {
|
|
361
366
|
const t1 = performance.now();
|
|
362
|
-
this
|
|
367
|
+
this.#logger(
|
|
363
368
|
'info',
|
|
364
369
|
`PFrame ${this.id} getColumnSpec request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
365
370
|
);
|
|
@@ -374,61 +379,59 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
374
379
|
timeStamp: Date.now(),
|
|
375
380
|
requestType: 'listColumns'
|
|
376
381
|
},
|
|
377
|
-
this
|
|
382
|
+
this.#logger
|
|
378
383
|
);
|
|
379
384
|
|
|
380
385
|
const t0 = performance.now();
|
|
381
386
|
try {
|
|
382
|
-
return await AddonSymbol.pFrameListColumns(this
|
|
387
|
+
return await AddonSymbol.pFrameListColumns(this.#frame);
|
|
383
388
|
} catch (err: unknown) {
|
|
384
389
|
throw new PFrameError(
|
|
385
390
|
`PFrame ${this.id} listColumns request ${requestId} failed, ` +
|
|
386
391
|
`error:\n` +
|
|
387
|
-
`${ensureError(err)
|
|
392
|
+
`${ensureError(err)}`
|
|
388
393
|
);
|
|
389
394
|
} finally {
|
|
390
395
|
const t1 = performance.now();
|
|
391
|
-
this
|
|
396
|
+
this.#logger(
|
|
392
397
|
'info',
|
|
393
398
|
`PFrame ${this.id} listColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
394
399
|
);
|
|
395
400
|
}
|
|
396
401
|
}
|
|
397
402
|
|
|
398
|
-
createTable(
|
|
399
|
-
request: PFrameInternal.CreateTableRequestV3
|
|
400
|
-
): PFrameInternal.PTableV6 {
|
|
403
|
+
createTable(request: PFrameInternal.CreateTableRequestV3): PTable {
|
|
401
404
|
const requestId = ulid() as TableId;
|
|
402
405
|
const dumpData = {
|
|
403
406
|
timeStamp: Date.now(),
|
|
404
407
|
requestType: 'createTable',
|
|
405
408
|
requestData: hashCreateTableRequestColumnId(request)
|
|
406
409
|
};
|
|
407
|
-
dump([`${this.id}`, `${requestId}.json`], dumpData, this
|
|
410
|
+
dump([`${this.id}`, `${requestId}.json`], dumpData, this.#logger);
|
|
408
411
|
dump(
|
|
409
412
|
[`${this.id}`, `${requestId}`, `${requestId}.json`],
|
|
410
413
|
dumpData,
|
|
411
|
-
this
|
|
414
|
+
this.#logger
|
|
412
415
|
);
|
|
413
416
|
|
|
414
417
|
const t0 = performance.now();
|
|
415
418
|
try {
|
|
416
419
|
const boxed = AddonSymbol.pFrameCreateTable(
|
|
417
|
-
this
|
|
420
|
+
this.#frame,
|
|
418
421
|
requestId,
|
|
419
422
|
request
|
|
420
423
|
);
|
|
421
|
-
return new PTable(this, requestId, boxed);
|
|
424
|
+
return new PTable(this, requestId, boxed, this.#logger);
|
|
422
425
|
} catch (err: unknown) {
|
|
423
426
|
throw new PFrameError(
|
|
424
427
|
`PFrame ${this.id} createTable request ${requestId} failed, ` +
|
|
425
428
|
`request: ${JSON.stringify(request)}, ` +
|
|
426
429
|
`error:\n` +
|
|
427
|
-
`${ensureError(err)
|
|
430
|
+
`${ensureError(err)}`
|
|
428
431
|
);
|
|
429
432
|
} finally {
|
|
430
433
|
const t1 = performance.now();
|
|
431
|
-
this
|
|
434
|
+
this.#logger(
|
|
432
435
|
'info',
|
|
433
436
|
`PFrame ${this.id} createTable request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
434
437
|
);
|
|
@@ -449,10 +452,10 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
449
452
|
requestType: 'getUniqueValues',
|
|
450
453
|
requestData: hashUniqueValuesRequestColumnId(request)
|
|
451
454
|
},
|
|
452
|
-
this
|
|
455
|
+
this.#logger
|
|
453
456
|
);
|
|
454
457
|
|
|
455
|
-
this
|
|
458
|
+
this.#logger(
|
|
456
459
|
'info',
|
|
457
460
|
`PFrame ${this.id} getUniqueValues request ${requestId} started`
|
|
458
461
|
);
|
|
@@ -460,7 +463,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
460
463
|
try {
|
|
461
464
|
ops?.signal?.throwIfAborted();
|
|
462
465
|
return await AddonSymbol.pFrameGetUniqueValues(
|
|
463
|
-
this
|
|
466
|
+
this.#frame,
|
|
464
467
|
requestId,
|
|
465
468
|
request,
|
|
466
469
|
ops?.signal
|
|
@@ -475,11 +478,11 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
475
478
|
`PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +
|
|
476
479
|
`request: ${JSON.stringify(request)}, ` +
|
|
477
480
|
`error:\n` +
|
|
478
|
-
`${ensureError(err)
|
|
481
|
+
`${ensureError(err)}`
|
|
479
482
|
);
|
|
480
483
|
} finally {
|
|
481
484
|
const t1 = performance.now();
|
|
482
|
-
this
|
|
485
|
+
this.#logger(
|
|
483
486
|
'info',
|
|
484
487
|
`PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
485
488
|
);
|
|
@@ -487,33 +490,49 @@ export class PFrame implements PFrameInternal.PFrameV9 {
|
|
|
487
490
|
}
|
|
488
491
|
}
|
|
489
492
|
|
|
490
|
-
class PTable implements PFrameInternal.
|
|
493
|
+
class PTable implements PFrameInternal.PTableV7 {
|
|
494
|
+
readonly #frame: PFrame;
|
|
495
|
+
readonly #table: NodeTableSymbol;
|
|
496
|
+
|
|
497
|
+
readonly #id: string;
|
|
498
|
+
|
|
499
|
+
get id(): string {
|
|
500
|
+
return this.#id;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
readonly #logger: PFrameInternal.Logger;
|
|
504
|
+
|
|
491
505
|
constructor(
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
506
|
+
frame: PFrame,
|
|
507
|
+
id: string,
|
|
508
|
+
table: NodeTableSymbol,
|
|
509
|
+
logger: PFrameInternal.Logger
|
|
495
510
|
) {
|
|
496
|
-
this
|
|
511
|
+
this.#frame = frame;
|
|
512
|
+
this.#table = table;
|
|
513
|
+
this.#id = id;
|
|
514
|
+
this.#logger = logger;
|
|
515
|
+
this.#logger('info', `PTable ${this.id} created`);
|
|
497
516
|
}
|
|
498
517
|
|
|
499
518
|
getSpec(): PTableColumnSpec[] {
|
|
500
519
|
const requestId = ulid();
|
|
501
520
|
dump(
|
|
502
|
-
[`${this
|
|
521
|
+
[`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
|
|
503
522
|
{
|
|
504
523
|
timeStamp: Date.now(),
|
|
505
524
|
requestType: 'getSpec'
|
|
506
525
|
},
|
|
507
|
-
this
|
|
526
|
+
this.#logger
|
|
508
527
|
);
|
|
509
528
|
|
|
510
529
|
try {
|
|
511
|
-
return AddonSymbol.pTableGetSpec(this
|
|
530
|
+
return AddonSymbol.pTableGetSpec(this.#table);
|
|
512
531
|
} catch (err: unknown) {
|
|
513
532
|
throw new PFrameError(
|
|
514
533
|
`PTable ${this.id} getSpec request ${requestId} failed, ` +
|
|
515
534
|
`error:\n` +
|
|
516
|
-
`${ensureError(err)
|
|
535
|
+
`${ensureError(err)}`
|
|
517
536
|
);
|
|
518
537
|
}
|
|
519
538
|
}
|
|
@@ -521,7 +540,7 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
521
540
|
getColumnIndices(columnIds: PTableColumnId[]): number[] {
|
|
522
541
|
const requestId = ulid();
|
|
523
542
|
dump(
|
|
524
|
-
[`${this
|
|
543
|
+
[`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
|
|
525
544
|
{
|
|
526
545
|
timeStamp: Date.now(),
|
|
527
546
|
requestType: 'getColumnIndices',
|
|
@@ -529,17 +548,17 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
529
548
|
columnIds: columnIds.map(hashTableColumnId)
|
|
530
549
|
}
|
|
531
550
|
},
|
|
532
|
-
this
|
|
551
|
+
this.#logger
|
|
533
552
|
);
|
|
534
553
|
|
|
535
554
|
try {
|
|
536
|
-
return AddonSymbol.pTableGetColumnIndices(this
|
|
555
|
+
return AddonSymbol.pTableGetColumnIndices(this.#table, columnIds);
|
|
537
556
|
} catch (err: unknown) {
|
|
538
557
|
throw new PFrameError(
|
|
539
558
|
`PTable ${this.id} getColumnIndices request ${requestId} failed, ` +
|
|
540
559
|
`columnIds: ${JSON.stringify(columnIds)}, ` +
|
|
541
560
|
`error:\n` +
|
|
542
|
-
`${ensureError(err)
|
|
561
|
+
`${ensureError(err)}`
|
|
543
562
|
);
|
|
544
563
|
}
|
|
545
564
|
}
|
|
@@ -550,15 +569,15 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
550
569
|
}): Promise<number> {
|
|
551
570
|
const requestId = ulid();
|
|
552
571
|
dump(
|
|
553
|
-
[`${this
|
|
572
|
+
[`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
|
|
554
573
|
{
|
|
555
574
|
timeStamp: Date.now(),
|
|
556
575
|
requestType: 'getFootprint'
|
|
557
576
|
},
|
|
558
|
-
this
|
|
577
|
+
this.#logger
|
|
559
578
|
);
|
|
560
579
|
|
|
561
|
-
this
|
|
580
|
+
this.#logger(
|
|
562
581
|
'info',
|
|
563
582
|
`PTable ${this.id} getFootprint request ${requestId} started`
|
|
564
583
|
);
|
|
@@ -566,7 +585,7 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
566
585
|
try {
|
|
567
586
|
ops?.signal?.throwIfAborted();
|
|
568
587
|
return await AddonSymbol.pTableGetFootprint(
|
|
569
|
-
this
|
|
588
|
+
this.#table,
|
|
570
589
|
ops?.withPredecessors ?? false,
|
|
571
590
|
ops?.signal
|
|
572
591
|
);
|
|
@@ -579,11 +598,11 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
579
598
|
throw new PFrameError(
|
|
580
599
|
`PTable ${this.id} getFootprint request ${requestId} failed, ` +
|
|
581
600
|
`error:\n` +
|
|
582
|
-
`${ensureError(err)
|
|
601
|
+
`${ensureError(err)}`
|
|
583
602
|
);
|
|
584
603
|
} finally {
|
|
585
604
|
const t1 = performance.now();
|
|
586
|
-
this
|
|
605
|
+
this.#logger(
|
|
587
606
|
'info',
|
|
588
607
|
`PTable ${this.id} getFootprint request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
589
608
|
);
|
|
@@ -593,22 +612,22 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
593
612
|
async getShape(ops?: { signal?: AbortSignal }): Promise<PTableShape> {
|
|
594
613
|
const requestId = ulid();
|
|
595
614
|
dump(
|
|
596
|
-
[`${this
|
|
615
|
+
[`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
|
|
597
616
|
{
|
|
598
617
|
timeStamp: Date.now(),
|
|
599
618
|
requestType: 'getShape'
|
|
600
619
|
},
|
|
601
|
-
this
|
|
620
|
+
this.#logger
|
|
602
621
|
);
|
|
603
622
|
|
|
604
|
-
this
|
|
623
|
+
this.#logger(
|
|
605
624
|
'info',
|
|
606
625
|
`PTable ${this.id} getShape request ${requestId} started`
|
|
607
626
|
);
|
|
608
627
|
const t0 = performance.now();
|
|
609
628
|
try {
|
|
610
629
|
ops?.signal?.throwIfAborted();
|
|
611
|
-
return await AddonSymbol.pTableGetShape(this
|
|
630
|
+
return await AddonSymbol.pTableGetShape(this.#table, ops?.signal);
|
|
612
631
|
} catch (err: unknown) {
|
|
613
632
|
if (isAbortError(err)) {
|
|
614
633
|
throw new AbortError(
|
|
@@ -618,11 +637,11 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
618
637
|
throw new PFrameError(
|
|
619
638
|
`PTable ${this.id} getShape request ${requestId} failed, ` +
|
|
620
639
|
`error:\n` +
|
|
621
|
-
`${ensureError(err)
|
|
640
|
+
`${ensureError(err)}`
|
|
622
641
|
);
|
|
623
642
|
} finally {
|
|
624
643
|
const t1 = performance.now();
|
|
625
|
-
this
|
|
644
|
+
this.#logger(
|
|
626
645
|
'info',
|
|
627
646
|
`PTable ${this.id} getShape request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
628
647
|
);
|
|
@@ -638,7 +657,7 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
638
657
|
): Promise<PTableVector[]> {
|
|
639
658
|
const requestId = ulid() as TableId;
|
|
640
659
|
dump(
|
|
641
|
-
[`${this
|
|
660
|
+
[`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
|
|
642
661
|
{
|
|
643
662
|
timeStamp: Date.now(),
|
|
644
663
|
requestType: 'getData',
|
|
@@ -647,10 +666,10 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
647
666
|
range: ops?.range ?? null
|
|
648
667
|
}
|
|
649
668
|
},
|
|
650
|
-
this
|
|
669
|
+
this.#logger
|
|
651
670
|
);
|
|
652
671
|
|
|
653
|
-
this
|
|
672
|
+
this.#logger(
|
|
654
673
|
'info',
|
|
655
674
|
`PTable ${this.id} getData request ${requestId} started`
|
|
656
675
|
);
|
|
@@ -659,7 +678,7 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
659
678
|
try {
|
|
660
679
|
ops?.signal?.throwIfAborted();
|
|
661
680
|
const result = await AddonSymbol.pTableGetData(
|
|
662
|
-
this
|
|
681
|
+
this.#table,
|
|
663
682
|
requestId,
|
|
664
683
|
columnIndices,
|
|
665
684
|
ops?.range,
|
|
@@ -678,18 +697,18 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
678
697
|
`columnIndices: ${JSON.stringify(columnIndices)}, ` +
|
|
679
698
|
`range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +
|
|
680
699
|
`error:\n` +
|
|
681
|
-
`${ensureError(err)
|
|
700
|
+
`${ensureError(err)}`
|
|
682
701
|
);
|
|
683
702
|
} finally {
|
|
684
703
|
const t1 = performance.now();
|
|
685
|
-
this
|
|
704
|
+
this.#logger(
|
|
686
705
|
'info',
|
|
687
706
|
`PTable ${this.id} getData request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))} (${rowCount} rows)`
|
|
688
707
|
);
|
|
689
708
|
}
|
|
690
709
|
}
|
|
691
710
|
|
|
692
|
-
filter(request: PTableRecordFilter[]):
|
|
711
|
+
filter(request: PTableRecordFilter[]): PTable {
|
|
693
712
|
const requestId = ulid() as TableId;
|
|
694
713
|
const dumpData = {
|
|
695
714
|
timeStamp: Date.now(),
|
|
@@ -699,38 +718,34 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
699
718
|
filters: request.map(hashFilterColumnId)
|
|
700
719
|
}
|
|
701
720
|
};
|
|
721
|
+
dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);
|
|
702
722
|
dump(
|
|
703
|
-
[`${this
|
|
723
|
+
[`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],
|
|
704
724
|
dumpData,
|
|
705
|
-
this
|
|
706
|
-
);
|
|
707
|
-
dump(
|
|
708
|
-
[`${this.frame.id}`, `${requestId}`, `${requestId}.json`],
|
|
709
|
-
dumpData,
|
|
710
|
-
this.frame.logger
|
|
725
|
+
this.#logger
|
|
711
726
|
);
|
|
712
727
|
|
|
713
728
|
const t0 = performance.now();
|
|
714
729
|
try {
|
|
715
|
-
const boxed = AddonSymbol.pTableFilter(this
|
|
716
|
-
return new PTable(this
|
|
730
|
+
const boxed = AddonSymbol.pTableFilter(this.#table, requestId, request);
|
|
731
|
+
return new PTable(this.#frame, requestId, boxed, this.#logger);
|
|
717
732
|
} catch (err: unknown) {
|
|
718
733
|
throw new PFrameError(
|
|
719
734
|
`PTable ${this.id} filter request ${requestId} failed, ` +
|
|
720
735
|
`request: ${JSON.stringify(request)}, ` +
|
|
721
736
|
`error:\n` +
|
|
722
|
-
`${ensureError(err)
|
|
737
|
+
`${ensureError(err)}`
|
|
723
738
|
);
|
|
724
739
|
} finally {
|
|
725
740
|
const t1 = performance.now();
|
|
726
|
-
this
|
|
741
|
+
this.#logger(
|
|
727
742
|
'info',
|
|
728
743
|
`PTable ${this.id} filter request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
729
744
|
);
|
|
730
745
|
}
|
|
731
746
|
}
|
|
732
747
|
|
|
733
|
-
sort(request: PTableSorting[]):
|
|
748
|
+
sort(request: PTableSorting[]): PTable {
|
|
734
749
|
const requestId = ulid() as TableId;
|
|
735
750
|
const dumpData = {
|
|
736
751
|
timeStamp: Date.now(),
|
|
@@ -738,31 +753,27 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
738
753
|
requestType: 'sort',
|
|
739
754
|
requestData: request.map(hashSortingColumnId)
|
|
740
755
|
};
|
|
756
|
+
dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);
|
|
741
757
|
dump(
|
|
742
|
-
[`${this
|
|
743
|
-
dumpData,
|
|
744
|
-
this.frame.logger
|
|
745
|
-
);
|
|
746
|
-
dump(
|
|
747
|
-
[`${this.frame.id}`, `${requestId}`, `${requestId}.json`],
|
|
758
|
+
[`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],
|
|
748
759
|
dumpData,
|
|
749
|
-
this
|
|
760
|
+
this.#logger
|
|
750
761
|
);
|
|
751
762
|
|
|
752
763
|
const t0 = performance.now();
|
|
753
764
|
try {
|
|
754
|
-
const boxed = AddonSymbol.pTableSort(this
|
|
755
|
-
return new PTable(this
|
|
765
|
+
const boxed = AddonSymbol.pTableSort(this.#table, requestId, request);
|
|
766
|
+
return new PTable(this.#frame, requestId, boxed, this.#logger);
|
|
756
767
|
} catch (err: unknown) {
|
|
757
768
|
throw new PFrameError(
|
|
758
769
|
`PTable ${this.id} sort request ${requestId} failed, ` +
|
|
759
770
|
`request: ${JSON.stringify(request)}, ` +
|
|
760
771
|
`error:\n` +
|
|
761
|
-
`${ensureError(err)
|
|
772
|
+
`${ensureError(err)}`
|
|
762
773
|
);
|
|
763
774
|
} finally {
|
|
764
775
|
const t1 = performance.now();
|
|
765
|
-
this
|
|
776
|
+
this.#logger(
|
|
766
777
|
'info',
|
|
767
778
|
`PTable ${this.id} sort request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
|
|
768
779
|
);
|
|
@@ -772,22 +783,22 @@ class PTable implements PFrameInternal.PTableV6 {
|
|
|
772
783
|
dispose() {
|
|
773
784
|
const requestId = ulid();
|
|
774
785
|
dump(
|
|
775
|
-
[`${this
|
|
786
|
+
[`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
|
|
776
787
|
{
|
|
777
788
|
timeStamp: Date.now(),
|
|
778
789
|
requestType: 'dispose'
|
|
779
790
|
},
|
|
780
|
-
this
|
|
791
|
+
this.#logger
|
|
781
792
|
);
|
|
782
793
|
|
|
783
794
|
try {
|
|
784
|
-
AddonSymbol.pTableDispose(this
|
|
785
|
-
this
|
|
795
|
+
AddonSymbol.pTableDispose(this.#table);
|
|
796
|
+
this.#logger('info', `PTable ${this.id} disposed`);
|
|
786
797
|
} catch (err: unknown) {
|
|
787
798
|
throw new PFrameError(
|
|
788
799
|
`PTable ${this.id} dispose request ${requestId} failed, ` +
|
|
789
800
|
`error:\n` +
|
|
790
|
-
`${ensureError(err)
|
|
801
|
+
`${ensureError(err)}`
|
|
791
802
|
);
|
|
792
803
|
}
|
|
793
804
|
}
|