convex-batch-processor 1.0.2

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 (44) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +337 -0
  3. package/dist/client/index.d.ts +194 -0
  4. package/dist/client/index.d.ts.map +1 -0
  5. package/dist/client/index.js +75 -0
  6. package/dist/client/index.js.map +1 -0
  7. package/dist/component/_generated/api.d.ts +34 -0
  8. package/dist/component/_generated/api.d.ts.map +1 -0
  9. package/dist/component/_generated/api.js +31 -0
  10. package/dist/component/_generated/api.js.map +1 -0
  11. package/dist/component/_generated/component.d.ts +77 -0
  12. package/dist/component/_generated/component.d.ts.map +1 -0
  13. package/dist/component/_generated/component.js +11 -0
  14. package/dist/component/_generated/component.js.map +1 -0
  15. package/dist/component/_generated/dataModel.d.ts +46 -0
  16. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  17. package/dist/component/_generated/dataModel.js +11 -0
  18. package/dist/component/_generated/dataModel.js.map +1 -0
  19. package/dist/component/_generated/server.d.ts +121 -0
  20. package/dist/component/_generated/server.d.ts.map +1 -0
  21. package/dist/component/_generated/server.js +78 -0
  22. package/dist/component/_generated/server.js.map +1 -0
  23. package/dist/component/convex.config.d.ts +3 -0
  24. package/dist/component/convex.config.d.ts.map +1 -0
  25. package/dist/component/convex.config.js +3 -0
  26. package/dist/component/convex.config.js.map +1 -0
  27. package/dist/component/lib.d.ts +261 -0
  28. package/dist/component/lib.d.ts.map +1 -0
  29. package/dist/component/lib.js +629 -0
  30. package/dist/component/lib.js.map +1 -0
  31. package/dist/component/schema.d.ts +100 -0
  32. package/dist/component/schema.d.ts.map +1 -0
  33. package/dist/component/schema.js +49 -0
  34. package/dist/component/schema.js.map +1 -0
  35. package/package.json +63 -0
  36. package/src/client/index.test.ts +121 -0
  37. package/src/client/index.ts +308 -0
  38. package/src/component/_generated/api.ts +50 -0
  39. package/src/component/_generated/component.ts +133 -0
  40. package/src/component/_generated/dataModel.ts +60 -0
  41. package/src/component/_generated/server.ts +156 -0
  42. package/src/component/convex.config.ts +3 -0
  43. package/src/component/lib.ts +792 -0
  44. package/src/component/schema.ts +57 -0
@@ -0,0 +1,57 @@
1
+ import { defineSchema, defineTable } from "convex/server";
2
+ import { v } from "convex/values";
3
+
4
+ export default defineSchema({
5
+ batches: defineTable({
6
+ batchId: v.string(),
7
+ items: v.array(v.any()),
8
+ itemCount: v.number(),
9
+ createdAt: v.number(),
10
+ lastUpdatedAt: v.number(),
11
+ status: v.union(v.literal("accumulating"), v.literal("flushing"), v.literal("completed")),
12
+ config: v.object({
13
+ maxBatchSize: v.number(),
14
+ flushIntervalMs: v.number(),
15
+ processBatchHandle: v.string(),
16
+ }),
17
+ scheduledFlushId: v.optional(v.id("_scheduled_functions")),
18
+ })
19
+ .index("by_batchId", ["batchId"])
20
+ .index("by_status", ["status"]),
21
+
22
+ iteratorJobs: defineTable({
23
+ jobId: v.string(),
24
+ cursor: v.optional(v.string()),
25
+ processedCount: v.number(),
26
+ status: v.union(
27
+ v.literal("pending"),
28
+ v.literal("running"),
29
+ v.literal("paused"),
30
+ v.literal("completed"),
31
+ v.literal("failed")
32
+ ),
33
+ config: v.object({
34
+ batchSize: v.number(),
35
+ delayBetweenBatchesMs: v.number(),
36
+ getNextBatchHandle: v.string(),
37
+ processBatchHandle: v.string(),
38
+ onCompleteHandle: v.optional(v.string()),
39
+ maxRetries: v.optional(v.number()),
40
+ }),
41
+ retryCount: v.number(),
42
+ errorMessage: v.optional(v.string()),
43
+ createdAt: v.number(),
44
+ lastRunAt: v.optional(v.number()),
45
+ })
46
+ .index("by_jobId", ["jobId"])
47
+ .index("by_status", ["status"]),
48
+
49
+ flushHistory: defineTable({
50
+ batchId: v.string(),
51
+ itemCount: v.number(),
52
+ flushedAt: v.number(),
53
+ durationMs: v.number(),
54
+ success: v.boolean(),
55
+ errorMessage: v.optional(v.string()),
56
+ }).index("by_batchId", ["batchId"]),
57
+ });