convex-batch-processor 1.0.2 → 1.0.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.
- package/README.md +60 -2
- package/dist/client/index.d.ts +19 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -1
- package/dist/component/lib.d.ts +35 -9
- package/dist/component/lib.d.ts.map +1 -1
- package/dist/component/lib.js +169 -44
- package/dist/component/lib.js.map +1 -1
- package/dist/component/schema.d.ts +22 -3
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +14 -3
- package/dist/component/schema.js.map +1 -1
- package/package.json +1 -1
- package/src/client/index.test.ts +2 -0
- package/src/client/index.ts +29 -1
- package/src/component/lib.ts +209 -46
- package/src/component/schema.ts +15 -3
package/README.md
CHANGED
|
@@ -51,7 +51,8 @@ const analyticsEventValidator = v.object({
|
|
|
51
51
|
type AnalyticsEvent = typeof analyticsEventValidator.type;
|
|
52
52
|
|
|
53
53
|
// Create a batch processor with config
|
|
54
|
-
|
|
54
|
+
// Note: Explicit type annotation is required when the file also exports Convex functions
|
|
55
|
+
const batchProcessor: BatchProcessor<AnalyticsEvent> = new BatchProcessor(components.batchProcessor, {
|
|
55
56
|
maxBatchSize: 100,
|
|
56
57
|
flushIntervalMs: 30000,
|
|
57
58
|
processBatch: internal.analytics.processEventsBatch,
|
|
@@ -261,7 +262,7 @@ The `processBatch` **must be a Convex action** (not a mutation or plain JavaScri
|
|
|
261
262
|
Pass the function reference directly:
|
|
262
263
|
|
|
263
264
|
```typescript
|
|
264
|
-
const batchProcessor = new BatchProcessor(components.batchProcessor, {
|
|
265
|
+
const batchProcessor: BatchProcessor<MyEvent> = new BatchProcessor(components.batchProcessor, {
|
|
265
266
|
maxBatchSize: 100,
|
|
266
267
|
flushIntervalMs: 30000,
|
|
267
268
|
processBatch: internal.myModule.processBatch,
|
|
@@ -279,6 +280,41 @@ export const processBatch = internalAction({
|
|
|
279
280
|
});
|
|
280
281
|
```
|
|
281
282
|
|
|
283
|
+
#### BatchResult
|
|
284
|
+
|
|
285
|
+
Returned by `addItems()`:
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
interface BatchResult {
|
|
289
|
+
batchId: string; // Same ID you passed in
|
|
290
|
+
itemCount: number; // Total items in batch
|
|
291
|
+
flushed: boolean; // Whether batch was flushed
|
|
292
|
+
status: BatchStatus; // "accumulating" | "flushing" | "completed"
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
#### BatchStatusResult
|
|
297
|
+
|
|
298
|
+
Returned by `getBatchStatus()`:
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
interface BatchStatusResult {
|
|
302
|
+
batchId: string; // Same ID you passed in
|
|
303
|
+
batches: Array<{
|
|
304
|
+
status: "accumulating" | "flushing";
|
|
305
|
+
itemCount: number;
|
|
306
|
+
createdAt: number;
|
|
307
|
+
lastUpdatedAt: number;
|
|
308
|
+
}>;
|
|
309
|
+
config: {
|
|
310
|
+
maxBatchSize: number;
|
|
311
|
+
flushIntervalMs: number;
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The `batches` array contains all active batches. Typically there's one, but during flush there may be both a flushing batch and a new accumulating batch.
|
|
317
|
+
|
|
282
318
|
#### IteratorConfig
|
|
283
319
|
|
|
284
320
|
```typescript
|
|
@@ -311,6 +347,28 @@ interface OnCompleteArgs {
|
|
|
311
347
|
}
|
|
312
348
|
```
|
|
313
349
|
|
|
350
|
+
## TypeScript Notes
|
|
351
|
+
|
|
352
|
+
### Explicit Type Annotation Required
|
|
353
|
+
|
|
354
|
+
When creating a `BatchProcessor` with config in a file that also exports Convex functions (mutations, queries, actions), you must add an explicit type annotation:
|
|
355
|
+
|
|
356
|
+
```typescript
|
|
357
|
+
// ✅ Correct - explicit type annotation
|
|
358
|
+
const batchProcessor: BatchProcessor<MyEvent> = new BatchProcessor(components.batchProcessor, {
|
|
359
|
+
processBatch: internal.myModule.processBatch,
|
|
360
|
+
// ...
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
// ❌ Will cause error TS7022
|
|
364
|
+
const batchProcessor = new BatchProcessor<MyEvent>(components.batchProcessor, {
|
|
365
|
+
processBatch: internal.myModule.processBatch,
|
|
366
|
+
// ...
|
|
367
|
+
});
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
This is due to circular type inference: TypeScript can't infer the type because the `internal` API types are generated from your file's exports, creating a circular dependency. The explicit annotation breaks this cycle.
|
|
371
|
+
|
|
314
372
|
## Error Handling
|
|
315
373
|
|
|
316
374
|
### Batch Accumulator
|
package/dist/client/index.d.ts
CHANGED
|
@@ -52,11 +52,25 @@ export interface FlushResult {
|
|
|
52
52
|
}
|
|
53
53
|
export interface BatchStatusResult {
|
|
54
54
|
batchId: string;
|
|
55
|
+
batches: Array<{
|
|
56
|
+
status: "accumulating" | "flushing";
|
|
57
|
+
itemCount: number;
|
|
58
|
+
createdAt: number;
|
|
59
|
+
lastUpdatedAt: number;
|
|
60
|
+
}>;
|
|
61
|
+
config: {
|
|
62
|
+
maxBatchSize: number;
|
|
63
|
+
flushIntervalMs: number;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export interface BatchListItem {
|
|
67
|
+
batchId: string;
|
|
68
|
+
baseBatchId: string;
|
|
69
|
+
sequence: number;
|
|
55
70
|
itemCount: number;
|
|
56
71
|
status: BatchStatus;
|
|
57
72
|
createdAt: number;
|
|
58
73
|
lastUpdatedAt: number;
|
|
59
|
-
config: BatchConfig;
|
|
60
74
|
}
|
|
61
75
|
export interface JobResult {
|
|
62
76
|
jobId: string;
|
|
@@ -109,6 +123,9 @@ export interface BatchProcessorAPI {
|
|
|
109
123
|
batchId: string;
|
|
110
124
|
limit?: number;
|
|
111
125
|
}, FlushHistoryItem[]>;
|
|
126
|
+
getAllBatchesForBaseId: FunctionReference<"query", "internal", {
|
|
127
|
+
baseBatchId: string;
|
|
128
|
+
}, BatchListItem[]>;
|
|
112
129
|
deleteBatch: FunctionReference<"mutation", "internal", {
|
|
113
130
|
batchId: string;
|
|
114
131
|
}, {
|
|
@@ -154,6 +171,7 @@ export declare class BatchProcessor<T = unknown> {
|
|
|
154
171
|
flush(ctx: GenericMutationCtx<any>, batchId: string): Promise<FlushResult>;
|
|
155
172
|
getBatchStatus(ctx: GenericQueryCtx<any>, batchId: string): Promise<BatchStatusResult | null>;
|
|
156
173
|
getFlushHistory(ctx: GenericQueryCtx<any>, batchId: string, limit?: number): Promise<FlushHistoryItem[]>;
|
|
174
|
+
getAllBatchesForBaseId(ctx: GenericQueryCtx<any>, baseBatchId: string): Promise<BatchListItem[]>;
|
|
157
175
|
deleteBatch(ctx: GenericMutationCtx<any>, batchId: string): Promise<{
|
|
158
176
|
deleted: boolean;
|
|
159
177
|
reason?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEpB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AACpE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAGlF,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE;QAAE,KAAK,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAC9B,OAAO,EACP,UAAU,EACV;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CACjD,CAAC;IACF,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE;QAAE,KAAK,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,UAAU,mBAAmB;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,sBAAsB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -34,6 +34,9 @@ export class BatchProcessor {
|
|
|
34
34
|
async getFlushHistory(ctx, batchId, limit) {
|
|
35
35
|
return await ctx.runQuery(this.component.lib.getFlushHistory, { batchId, limit });
|
|
36
36
|
}
|
|
37
|
+
async getAllBatchesForBaseId(ctx, baseBatchId) {
|
|
38
|
+
return await ctx.runQuery(this.component.lib.getAllBatchesForBaseId, { baseBatchId });
|
|
39
|
+
}
|
|
37
40
|
async deleteBatch(ctx, batchId) {
|
|
38
41
|
return await ctx.runMutation(this.component.lib.deleteBatch, { batchId });
|
|
39
42
|
}
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,oBAAoB,GACpB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/component/lib.d.ts
CHANGED
|
@@ -31,16 +31,28 @@ export declare const getBatchStatus: import("convex/server").RegisteredQuery<"pu
|
|
|
31
31
|
batchId: string;
|
|
32
32
|
}, Promise<{
|
|
33
33
|
batchId: string;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
batches: {
|
|
35
|
+
status: "accumulating" | "flushing";
|
|
36
|
+
itemCount: number;
|
|
37
|
+
createdAt: number;
|
|
38
|
+
lastUpdatedAt: number;
|
|
39
|
+
}[];
|
|
38
40
|
config: {
|
|
39
41
|
maxBatchSize: number;
|
|
40
42
|
flushIntervalMs: number;
|
|
41
|
-
processBatchHandle: string;
|
|
42
43
|
};
|
|
43
44
|
} | null>>;
|
|
45
|
+
export declare const getAllBatchesForBaseId: import("convex/server").RegisteredQuery<"public", {
|
|
46
|
+
baseBatchId: string;
|
|
47
|
+
}, Promise<{
|
|
48
|
+
batchId: string;
|
|
49
|
+
baseBatchId: string;
|
|
50
|
+
sequence: number;
|
|
51
|
+
itemCount: number;
|
|
52
|
+
status: "accumulating" | "flushing" | "completed";
|
|
53
|
+
createdAt: number;
|
|
54
|
+
lastUpdatedAt: number;
|
|
55
|
+
}[]>>;
|
|
44
56
|
export declare const getFlushHistory: import("convex/server").RegisteredQuery<"public", {
|
|
45
57
|
limit?: number | undefined;
|
|
46
58
|
batchId: string;
|
|
@@ -69,38 +81,52 @@ export declare const getBatch: import("convex/server").RegisteredQuery<"internal
|
|
|
69
81
|
_id: import("convex/values").GenericId<"batches">;
|
|
70
82
|
_creationTime: number;
|
|
71
83
|
scheduledFlushId?: import("convex/values").GenericId<"_scheduled_functions"> | undefined;
|
|
72
|
-
|
|
84
|
+
flushStartedAt?: number | undefined;
|
|
73
85
|
batchId: string;
|
|
74
86
|
config: {
|
|
75
87
|
maxBatchSize: number;
|
|
76
88
|
flushIntervalMs: number;
|
|
77
89
|
processBatchHandle: string;
|
|
78
90
|
};
|
|
91
|
+
baseBatchId: string;
|
|
79
92
|
status: "accumulating" | "flushing" | "completed";
|
|
93
|
+
sequence: number;
|
|
80
94
|
itemCount: number;
|
|
81
95
|
createdAt: number;
|
|
82
96
|
lastUpdatedAt: number;
|
|
83
97
|
} | null>>;
|
|
98
|
+
export declare const collectBatchItems: import("convex/server").RegisteredQuery<"internal", {
|
|
99
|
+
batchDocId: import("convex/values").GenericId<"batches">;
|
|
100
|
+
}, Promise<{
|
|
101
|
+
items: never[];
|
|
102
|
+
flushStartedAt: undefined;
|
|
103
|
+
} | {
|
|
104
|
+
items: unknown[];
|
|
105
|
+
flushStartedAt: number;
|
|
106
|
+
}>>;
|
|
84
107
|
export declare const executeFlush: import("convex/server").RegisteredAction<"internal", {
|
|
85
|
-
items: any[];
|
|
86
108
|
processBatchHandle: string;
|
|
87
109
|
batchDocId: import("convex/values").GenericId<"batches">;
|
|
88
110
|
}, Promise<{
|
|
111
|
+
success: boolean;
|
|
112
|
+
durationMs: number;
|
|
113
|
+
errorMessage?: undefined;
|
|
114
|
+
} | {
|
|
89
115
|
success: boolean;
|
|
90
116
|
errorMessage: string | undefined;
|
|
91
117
|
durationMs: number;
|
|
92
118
|
}>>;
|
|
93
119
|
export declare const recordFlushResult: import("convex/server").RegisteredMutation<"internal", {
|
|
120
|
+
flushStartedAt?: number | undefined;
|
|
94
121
|
errorMessage?: string | undefined;
|
|
95
122
|
itemCount: number;
|
|
123
|
+
batchDocId: import("convex/values").GenericId<"batches">;
|
|
96
124
|
durationMs: number;
|
|
97
125
|
success: boolean;
|
|
98
|
-
batchDocId: import("convex/values").GenericId<"batches">;
|
|
99
126
|
}, Promise<void>>;
|
|
100
127
|
export declare const markBatchFlushing: import("convex/server").RegisteredMutation<"internal", {
|
|
101
128
|
batchDocId: import("convex/values").GenericId<"batches">;
|
|
102
129
|
}, Promise<{
|
|
103
|
-
items: any[];
|
|
104
130
|
processBatchHandle: string;
|
|
105
131
|
} | null>>;
|
|
106
132
|
export declare const scheduledIntervalFlush: import("convex/server").RegisteredAction<"internal", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;GAyHnB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;GA2DrB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;gBAmCC,cAAc,GAAG,UAAU;;;;;;;;;UAWrD,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;KAkBjC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;KAiB1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;GAoCtB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;UAQnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GA0B5B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;GA+CvB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;iBAyF5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;UAmB5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;aAGxB,OAAO;aACP,MAAM;cACL,OAAO;mBACF,MAAM;iBACR,MAAM;GAiBnB,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;GA8C3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;GAsB3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;GAyB5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;GAuB5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;UA2B/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;KAmC3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GAmB5B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;UAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;UAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;eAGhB,OAAO;WACX,OAAO;qBACG,MAAM;aACd,MAAM;YACP,MAAM;iBACD,MAAM;GA+FnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAY3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;iBAcxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAa9B,CAAC"}
|