@convex-dev/workpool 0.2.18-alpha.2 → 0.2.18
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 +74 -71
- package/dist/commonjs/client/index.d.ts +102 -38
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +124 -50
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/component/kick.d.ts.map +1 -1
- package/dist/commonjs/component/kick.js +2 -2
- package/dist/commonjs/component/kick.js.map +1 -1
- package/dist/commonjs/component/lib.d.ts +38 -1
- package/dist/commonjs/component/lib.d.ts.map +1 -1
- package/dist/commonjs/component/lib.js +83 -52
- package/dist/commonjs/component/lib.js.map +1 -1
- package/dist/esm/client/index.d.ts +102 -38
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +124 -50
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/component/kick.d.ts.map +1 -1
- package/dist/esm/component/kick.js +2 -2
- package/dist/esm/component/kick.js.map +1 -1
- package/dist/esm/component/lib.d.ts +38 -1
- package/dist/esm/component/lib.d.ts.map +1 -1
- package/dist/esm/component/lib.js +83 -52
- package/dist/esm/component/lib.js.map +1 -1
- package/package.json +13 -8
- package/src/client/index.ts +221 -83
- package/src/component/_generated/api.d.ts +34 -0
- package/src/component/kick.ts +3 -1
- package/src/component/lib.ts +99 -57
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Id } from "./_generated/dataModel.js";
|
|
1
2
|
export declare const enqueue: import("convex/server").RegisteredMutation<"public", {
|
|
2
3
|
onComplete?: {
|
|
3
4
|
context?: any;
|
|
@@ -18,6 +19,30 @@ export declare const enqueue: import("convex/server").RegisteredMutation<"public
|
|
|
18
19
|
logLevel: "DEBUG" | "TRACE" | "INFO" | "REPORT" | "WARN" | "ERROR";
|
|
19
20
|
};
|
|
20
21
|
}, Promise<import("convex/values").GenericId<"work">>>;
|
|
22
|
+
export declare const enqueueBatch: import("convex/server").RegisteredMutation<"public", {
|
|
23
|
+
config: {
|
|
24
|
+
maxParallelism: number;
|
|
25
|
+
logLevel: "DEBUG" | "TRACE" | "INFO" | "REPORT" | "WARN" | "ERROR";
|
|
26
|
+
};
|
|
27
|
+
items: {
|
|
28
|
+
onComplete?: {
|
|
29
|
+
context?: any;
|
|
30
|
+
fnHandle: string;
|
|
31
|
+
} | undefined;
|
|
32
|
+
retryBehavior?: {
|
|
33
|
+
maxAttempts: number;
|
|
34
|
+
initialBackoffMs: number;
|
|
35
|
+
base: number;
|
|
36
|
+
} | undefined;
|
|
37
|
+
fnHandle: string;
|
|
38
|
+
fnType: "action" | "mutation" | "query";
|
|
39
|
+
fnName: string;
|
|
40
|
+
fnArgs: any;
|
|
41
|
+
runAt: number;
|
|
42
|
+
}[];
|
|
43
|
+
}, Promise<(string & {
|
|
44
|
+
__tableName: "work";
|
|
45
|
+
})[]>>;
|
|
21
46
|
export declare const cancel: import("convex/server").RegisteredMutation<"public", {
|
|
22
47
|
id: import("convex/values").GenericId<"work">;
|
|
23
48
|
logLevel: "DEBUG" | "TRACE" | "INFO" | "REPORT" | "WARN" | "ERROR";
|
|
@@ -27,7 +52,7 @@ export declare const cancelAll: import("convex/server").RegisteredMutation<"publ
|
|
|
27
52
|
logLevel: "DEBUG" | "TRACE" | "INFO" | "REPORT" | "WARN" | "ERROR";
|
|
28
53
|
}, Promise<void>>;
|
|
29
54
|
export declare const status: import("convex/server").RegisteredQuery<"public", {
|
|
30
|
-
id:
|
|
55
|
+
id: Id<"work">;
|
|
31
56
|
}, Promise<{
|
|
32
57
|
readonly state: "finished";
|
|
33
58
|
readonly previousAttempts?: undefined;
|
|
@@ -38,4 +63,16 @@ export declare const status: import("convex/server").RegisteredQuery<"public", {
|
|
|
38
63
|
readonly state: "running";
|
|
39
64
|
readonly previousAttempts: number;
|
|
40
65
|
}>>;
|
|
66
|
+
export declare const statusBatch: import("convex/server").RegisteredQuery<"public", {
|
|
67
|
+
ids: import("convex/values").GenericId<"work">[];
|
|
68
|
+
}, Promise<({
|
|
69
|
+
readonly state: "finished";
|
|
70
|
+
readonly previousAttempts?: undefined;
|
|
71
|
+
} | {
|
|
72
|
+
readonly state: "pending";
|
|
73
|
+
readonly previousAttempts: number;
|
|
74
|
+
} | {
|
|
75
|
+
readonly state: "running";
|
|
76
|
+
readonly previousAttempts: number;
|
|
77
|
+
})[]>>;
|
|
41
78
|
//# sourceMappingURL=lib.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/component/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/component/lib.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAiC/C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;sDASlB,CAAC;AAiCH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;MAcvB,CAAC;AAEH,eAAO,MAAM,MAAM;;;iBAejB,CAAC;AAGH,eAAO,MAAM,SAAS;;;iBAmCpB,CAAC;AAEH,eAAO,MAAM,MAAM;QAKuC,EAAE,CAAC,MAAM,CAAC;;;;;;;;;;GADlE,CAAC;AAwBH,eAAO,MAAM,WAAW;;;;;;;;;;;MAQtB,CAAC"}
|
|
@@ -8,42 +8,65 @@ import { boundScheduledTime, config, getNextSegment, max, onComplete, retryBehav
|
|
|
8
8
|
import { recordEnqueued } from "./stats.js";
|
|
9
9
|
const MAX_POSSIBLE_PARALLELISM = 100;
|
|
10
10
|
const MAX_PARALLELISM_SOFT_LIMIT = 50;
|
|
11
|
+
const itemArgs = {
|
|
12
|
+
fnHandle: v.string(),
|
|
13
|
+
fnName: v.string(),
|
|
14
|
+
fnArgs: v.any(),
|
|
15
|
+
fnType,
|
|
16
|
+
runAt: v.number(),
|
|
17
|
+
// TODO: annotation?
|
|
18
|
+
onComplete: v.optional(onComplete),
|
|
19
|
+
retryBehavior: v.optional(retryBehavior),
|
|
20
|
+
};
|
|
21
|
+
const enqueueArgs = {
|
|
22
|
+
...itemArgs,
|
|
23
|
+
config,
|
|
24
|
+
};
|
|
11
25
|
export const enqueue = mutation({
|
|
26
|
+
args: enqueueArgs,
|
|
27
|
+
returns: v.id("work"),
|
|
28
|
+
handler: async (ctx, { config, ...itemArgs }) => {
|
|
29
|
+
validateConfig(config);
|
|
30
|
+
const console = createLogger(config.logLevel);
|
|
31
|
+
const kickSegment = await kickMainLoop(ctx, "enqueue", config);
|
|
32
|
+
return await enqueueHandler(ctx, console, kickSegment, itemArgs);
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
async function enqueueHandler(ctx, console, kickSegment, { runAt, ...workArgs }) {
|
|
36
|
+
runAt = boundScheduledTime(runAt, console);
|
|
37
|
+
const workId = await ctx.db.insert("work", {
|
|
38
|
+
...workArgs,
|
|
39
|
+
attempts: 0,
|
|
40
|
+
});
|
|
41
|
+
await ctx.db.insert("pendingStart", {
|
|
42
|
+
workId,
|
|
43
|
+
segment: max(toSegment(runAt), kickSegment),
|
|
44
|
+
});
|
|
45
|
+
recordEnqueued(console, { workId, fnName: workArgs.fnName, runAt });
|
|
46
|
+
return workId;
|
|
47
|
+
}
|
|
48
|
+
function validateConfig(config) {
|
|
49
|
+
if (config.maxParallelism > MAX_POSSIBLE_PARALLELISM) {
|
|
50
|
+
throw new Error(`maxParallelism must be <= ${MAX_PARALLELISM_SOFT_LIMIT}`);
|
|
51
|
+
}
|
|
52
|
+
else if (config.maxParallelism > MAX_PARALLELISM_SOFT_LIMIT) {
|
|
53
|
+
createLogger(config.logLevel).warn(`maxParallelism should be <= ${MAX_PARALLELISM_SOFT_LIMIT}, but is set to ${config.maxParallelism}. This will be an error in a future version.`);
|
|
54
|
+
}
|
|
55
|
+
else if (config.maxParallelism < 1) {
|
|
56
|
+
throw new Error("maxParallelism must be >= 1");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export const enqueueBatch = mutation({
|
|
12
60
|
args: {
|
|
13
|
-
|
|
14
|
-
fnName: v.string(),
|
|
15
|
-
fnArgs: v.any(),
|
|
16
|
-
fnType,
|
|
17
|
-
runAt: v.number(),
|
|
18
|
-
// TODO: annotation?
|
|
19
|
-
onComplete: v.optional(onComplete),
|
|
20
|
-
retryBehavior: v.optional(retryBehavior),
|
|
61
|
+
items: v.array(v.object(itemArgs)),
|
|
21
62
|
config,
|
|
22
63
|
},
|
|
23
|
-
returns: v.id("work"),
|
|
24
|
-
handler: async (ctx, { config,
|
|
64
|
+
returns: v.array(v.id("work")),
|
|
65
|
+
handler: async (ctx, { config, items }) => {
|
|
66
|
+
validateConfig(config);
|
|
25
67
|
const console = createLogger(config.logLevel);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
else if (config.maxParallelism > MAX_PARALLELISM_SOFT_LIMIT) {
|
|
30
|
-
console.warn(`maxParallelism should be <= ${MAX_PARALLELISM_SOFT_LIMIT}, but is set to ${config.maxParallelism}. This will be an error in a future version.`);
|
|
31
|
-
}
|
|
32
|
-
else if (config.maxParallelism < 1) {
|
|
33
|
-
throw new Error("maxParallelism must be >= 1");
|
|
34
|
-
}
|
|
35
|
-
runAt = boundScheduledTime(runAt, console);
|
|
36
|
-
const workId = await ctx.db.insert("work", {
|
|
37
|
-
...workArgs,
|
|
38
|
-
attempts: 0,
|
|
39
|
-
});
|
|
40
|
-
const limit = await kickMainLoop(ctx, "enqueue", config);
|
|
41
|
-
await ctx.db.insert("pendingStart", {
|
|
42
|
-
workId,
|
|
43
|
-
segment: max(toSegment(runAt), limit),
|
|
44
|
-
});
|
|
45
|
-
recordEnqueued(console, { workId, fnName: workArgs.fnName, runAt });
|
|
46
|
-
return workId;
|
|
68
|
+
const kickSegment = await kickMainLoop(ctx, "enqueue", config);
|
|
69
|
+
return Promise.all(items.map((item) => enqueueHandler(ctx, console, kickSegment, item)));
|
|
47
70
|
},
|
|
48
71
|
});
|
|
49
72
|
export const cancel = mutation({
|
|
@@ -96,27 +119,35 @@ export const cancelAll = mutation({
|
|
|
96
119
|
export const status = query({
|
|
97
120
|
args: { id: v.id("work") },
|
|
98
121
|
returns: statusValidator,
|
|
99
|
-
handler:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
122
|
+
handler: statusHandler,
|
|
123
|
+
});
|
|
124
|
+
async function statusHandler(ctx, { id }) {
|
|
125
|
+
const work = await ctx.db.get(id);
|
|
126
|
+
if (!work) {
|
|
127
|
+
return { state: "finished" };
|
|
128
|
+
}
|
|
129
|
+
const pendingStart = await ctx.db
|
|
130
|
+
.query("pendingStart")
|
|
131
|
+
.withIndex("workId", (q) => q.eq("workId", id))
|
|
132
|
+
.unique();
|
|
133
|
+
if (pendingStart) {
|
|
134
|
+
return { state: "pending", previousAttempts: work.attempts };
|
|
135
|
+
}
|
|
136
|
+
const pendingCompletion = await ctx.db
|
|
137
|
+
.query("pendingCompletion")
|
|
138
|
+
.withIndex("workId", (q) => q.eq("workId", id))
|
|
139
|
+
.unique();
|
|
140
|
+
if (pendingCompletion?.retry) {
|
|
141
|
+
return { state: "pending", previousAttempts: work.attempts };
|
|
142
|
+
}
|
|
143
|
+
// Assume it's in progress. It could be pending cancelation
|
|
144
|
+
return { state: "running", previousAttempts: work.attempts };
|
|
145
|
+
}
|
|
146
|
+
export const statusBatch = query({
|
|
147
|
+
args: { ids: v.array(v.id("work")) },
|
|
148
|
+
returns: v.array(statusValidator),
|
|
149
|
+
handler: async (ctx, { ids }) => {
|
|
150
|
+
return await Promise.all(ids.map(async (id) => await statusHandler(ctx, { id })));
|
|
120
151
|
},
|
|
121
152
|
});
|
|
122
153
|
async function shouldCancelWorkItem(ctx, workId, logLevel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/component/lib.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/component/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,CAAC,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAe,KAAK,EAAY,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,GAAG,EACH,UAAU,EACV,aAAa,EACb,MAAM,IAAI,eAAe,EACzB,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE;IACf,MAAM;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,oBAAoB;IACpB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;CACzC,CAAC;AACF,MAAM,WAAW,GAAG;IAClB,GAAG,QAAQ;IACX,MAAM;CACP,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE;QAC9C,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;CACF,CAAC,CAAC;AACH,KAAK,UAAU,cAAc,CAC3B,GAAgB,EAChB,OAAe,EACf,WAAmB,EACnB,EAAE,KAAK,EAAE,GAAG,QAAQ,EAA+B;IAEnD,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;QACzC,GAAG,QAAQ;QACX,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;QAClC,MAAM;QACN,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;KAC5C,CAAC,CAAC;IACH,cAAc,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,MAAM,CAAC,cAAc,GAAG,wBAAwB,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,6BAA6B,0BAA0B,EAAE,CAAC,CAAC;IAC7E,CAAC;SAAM,IAAI,MAAM,CAAC,cAAc,GAAG,0BAA0B,EAAE,CAAC;QAC9D,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAChC,+BAA+B,0BAA0B,mBAAmB,MAAM,CAAC,cAAc,8CAA8C,CAChJ,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM;KACP;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACxC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE;QACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;QAChB,QAAQ;KACT;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvC,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChE,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE;gBACxC,MAAM,EAAE,EAAE;gBACV,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;IAClD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE;aAC5B,KAAK,CAAC,MAAM,CAAC;aACb,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;aACxE,KAAK,CAAC,MAAM,CAAC;aACb,IAAI,CAAC,SAAS,CAAC,CAAC;QACnB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAC/B,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CACzC,CACF,CAAC;QACF,IAAI,OAAO,GAAG,cAAc,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE;oBACzC,MAAM,EAAE,GAAG;oBACX,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjD,QAAQ;gBACR,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC;IAC1B,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;IAC1B,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AACH,KAAK,UAAU,aAAa,CAAC,GAAa,EAAE,EAAE,EAAE,EAAsB;IACpE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,UAAU,EAAW,CAAC;IACxC,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,EAAE;SAC9B,KAAK,CAAC,cAAc,CAAC;SACrB,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC9C,MAAM,EAAE,CAAC;IACZ,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAW,CAAC;IACxE,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,EAAE;SACnC,KAAK,CAAC,mBAAmB,CAAC;SAC1B,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC9C,MAAM,EAAE,CAAC;IACZ,IAAI,iBAAiB,EAAE,KAAK,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAW,CAAC;IACxE,CAAC;IACD,2DAA2D;IAC3D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAW,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;IAC/B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACjC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC9B,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,KAAK,UAAU,oBAAoB,CACjC,GAAgB,EAChB,MAAkB,EAClB,QAAkB;IAElB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,oDAAoD;IACpD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,iBAAiB,MAAM,gBAAgB,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,EAAE;SACpC,KAAK,CAAC,oBAAoB,CAAC;SAC3B,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAClD,MAAM,EAAE,CAAC;IACZ,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,iBAAiB,MAAM,4BAA4B,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6DAA6D;AAC7D,MAAM,OAAO,GAAG,wCAAwC,CAAC"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"email": "support@convex.dev",
|
|
8
8
|
"url": "https://github.com/get-convex/workpool/issues"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.2.18
|
|
10
|
+
"version": "0.2.18",
|
|
11
11
|
"license": "Apache-2.0",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"convex",
|
|
@@ -19,12 +19,17 @@
|
|
|
19
19
|
],
|
|
20
20
|
"type": "module",
|
|
21
21
|
"scripts": {
|
|
22
|
+
"example": "cd example && npm run dev",
|
|
23
|
+
"dev": "run-p -r 'example' 'build:watch'",
|
|
24
|
+
"dashboard": "cd example && npx convex dashboard",
|
|
25
|
+
"all": "run-p -r 'example' 'build:watch' 'test:watch' 'typecheck:watch'",
|
|
26
|
+
"setup": "npm i && npm run build && cd example && npm i && npx convex dev --once",
|
|
27
|
+
"build:watch": "cd src && npx chokidar -d 1000 '../tsconfig.json' '**/*.ts' -c 'npm run build' --initial",
|
|
22
28
|
"build": "npm run build:esm && npm run build:cjs",
|
|
23
29
|
"build:esm": "tsc --project ./esm.json && echo '{\\n \"type\": \"module\"\\n}' > dist/esm/package.json",
|
|
24
30
|
"build:cjs": "tsc --project ./commonjs.json && echo '{\\n \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json",
|
|
25
|
-
"dev": "cd example; npx convex dashboard; npm run dev",
|
|
26
|
-
"dashboard": "cd example; npx convex dashboard",
|
|
27
31
|
"typecheck": "tsc --noEmit",
|
|
32
|
+
"typecheck:watch": "tsc --noEmit --watch",
|
|
28
33
|
"lint": "tsc --noEmit && eslint . && prettier --check .",
|
|
29
34
|
"format": "prettier --write .",
|
|
30
35
|
"test": "vitest run",
|
|
@@ -70,16 +75,16 @@
|
|
|
70
75
|
},
|
|
71
76
|
"devDependencies": {
|
|
72
77
|
"@edge-runtime/vm": "5.0.0",
|
|
73
|
-
"@eslint/js": "9.
|
|
74
|
-
"@types/node": "22.
|
|
78
|
+
"@eslint/js": "9.33.0",
|
|
79
|
+
"@types/node": "22.17.2",
|
|
75
80
|
"@vitest/coverage-v8": "3.2.4",
|
|
76
81
|
"convex-test": "0.0.38",
|
|
77
|
-
"eslint": "9.
|
|
82
|
+
"eslint": "9.33.0",
|
|
78
83
|
"globals": "16.3.0",
|
|
79
84
|
"pkg-pr-new": "0.0.54",
|
|
80
85
|
"prettier": "3.6.2",
|
|
81
|
-
"typescript": "5.
|
|
82
|
-
"typescript-eslint": "8.
|
|
86
|
+
"typescript": "5.9.2",
|
|
87
|
+
"typescript-eslint": "8.39.1",
|
|
83
88
|
"vitest": "3.2.4"
|
|
84
89
|
},
|
|
85
90
|
"main": "./dist/commonjs/client/index.js",
|