@convex-dev/workpool 0.2.0-beta.0 → 0.2.1
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 +87 -18
- package/dist/commonjs/client/index.d.ts +33 -8
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +37 -7
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/component/complete.d.ts +89 -0
- package/dist/commonjs/component/complete.d.ts.map +1 -0
- package/dist/commonjs/component/complete.js +82 -0
- package/dist/commonjs/component/complete.js.map +1 -0
- package/dist/commonjs/component/kick.d.ts +3 -3
- package/dist/commonjs/component/kick.d.ts.map +1 -1
- package/dist/commonjs/component/kick.js +17 -12
- package/dist/commonjs/component/kick.js.map +1 -1
- package/dist/commonjs/component/lib.d.ts +6 -6
- package/dist/commonjs/component/lib.d.ts.map +1 -1
- package/dist/commonjs/component/lib.js +53 -24
- package/dist/commonjs/component/lib.js.map +1 -1
- package/dist/commonjs/component/logging.d.ts +3 -2
- package/dist/commonjs/component/logging.d.ts.map +1 -1
- package/dist/commonjs/component/logging.js +34 -16
- package/dist/commonjs/component/logging.js.map +1 -1
- package/dist/commonjs/component/loop.d.ts +1 -14
- package/dist/commonjs/component/loop.d.ts.map +1 -1
- package/dist/commonjs/component/loop.js +216 -179
- package/dist/commonjs/component/loop.js.map +1 -1
- package/dist/commonjs/component/recovery.d.ts +45 -0
- package/dist/commonjs/component/recovery.d.ts.map +1 -1
- package/dist/commonjs/component/recovery.js +88 -65
- package/dist/commonjs/component/recovery.js.map +1 -1
- package/dist/commonjs/component/schema.d.ts +17 -13
- package/dist/commonjs/component/schema.d.ts.map +1 -1
- package/dist/commonjs/component/schema.js +5 -3
- package/dist/commonjs/component/schema.js.map +1 -1
- package/dist/commonjs/component/shared.d.ts +24 -15
- package/dist/commonjs/component/shared.d.ts.map +1 -1
- package/dist/commonjs/component/shared.js +20 -7
- package/dist/commonjs/component/shared.js.map +1 -1
- package/dist/commonjs/component/stats.d.ts +36 -29
- package/dist/commonjs/component/stats.d.ts.map +1 -1
- package/dist/commonjs/component/stats.js +110 -52
- package/dist/commonjs/component/stats.js.map +1 -1
- package/dist/commonjs/component/worker.d.ts +4 -14
- package/dist/commonjs/component/worker.d.ts.map +1 -1
- package/dist/commonjs/component/worker.js +23 -36
- package/dist/commonjs/component/worker.js.map +1 -1
- package/dist/esm/client/index.d.ts +33 -8
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +37 -7
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/component/complete.d.ts +89 -0
- package/dist/esm/component/complete.d.ts.map +1 -0
- package/dist/esm/component/complete.js +82 -0
- package/dist/esm/component/complete.js.map +1 -0
- package/dist/esm/component/kick.d.ts +3 -3
- package/dist/esm/component/kick.d.ts.map +1 -1
- package/dist/esm/component/kick.js +17 -12
- package/dist/esm/component/kick.js.map +1 -1
- package/dist/esm/component/lib.d.ts +6 -6
- package/dist/esm/component/lib.d.ts.map +1 -1
- package/dist/esm/component/lib.js +53 -24
- package/dist/esm/component/lib.js.map +1 -1
- package/dist/esm/component/logging.d.ts +3 -2
- package/dist/esm/component/logging.d.ts.map +1 -1
- package/dist/esm/component/logging.js +34 -16
- package/dist/esm/component/logging.js.map +1 -1
- package/dist/esm/component/loop.d.ts +1 -14
- package/dist/esm/component/loop.d.ts.map +1 -1
- package/dist/esm/component/loop.js +216 -179
- package/dist/esm/component/loop.js.map +1 -1
- package/dist/esm/component/recovery.d.ts +45 -0
- package/dist/esm/component/recovery.d.ts.map +1 -1
- package/dist/esm/component/recovery.js +88 -65
- package/dist/esm/component/recovery.js.map +1 -1
- package/dist/esm/component/schema.d.ts +17 -13
- package/dist/esm/component/schema.d.ts.map +1 -1
- package/dist/esm/component/schema.js +5 -3
- package/dist/esm/component/schema.js.map +1 -1
- package/dist/esm/component/shared.d.ts +24 -15
- package/dist/esm/component/shared.d.ts.map +1 -1
- package/dist/esm/component/shared.js +20 -7
- package/dist/esm/component/shared.js.map +1 -1
- package/dist/esm/component/stats.d.ts +36 -29
- package/dist/esm/component/stats.d.ts.map +1 -1
- package/dist/esm/component/stats.js +110 -52
- package/dist/esm/component/stats.js.map +1 -1
- package/dist/esm/component/worker.d.ts +4 -14
- package/dist/esm/component/worker.d.ts.map +1 -1
- package/dist/esm/component/worker.js +23 -36
- package/dist/esm/component/worker.js.map +1 -1
- package/package.json +12 -12
- package/src/client/index.ts +82 -43
- package/src/component/README.md +15 -15
- package/src/component/_generated/api.d.ts +10 -5
- package/src/component/complete.test.ts +508 -0
- package/src/component/complete.ts +109 -0
- package/src/component/kick.test.ts +29 -19
- package/src/component/kick.ts +25 -17
- package/src/component/lib.test.ts +262 -17
- package/src/component/lib.ts +68 -30
- package/src/component/logging.test.ts +16 -0
- package/src/component/logging.ts +45 -24
- package/src/component/loop.test.ts +1158 -0
- package/src/component/loop.ts +292 -224
- package/src/component/recovery.test.ts +536 -0
- package/src/component/recovery.ts +100 -75
- package/src/component/schema.ts +6 -4
- package/src/component/shared.ts +23 -8
- package/src/component/stats.test.ts +345 -0
- package/src/component/stats.ts +149 -56
- package/src/component/worker.ts +25 -38
|
@@ -1,52 +1,70 @@
|
|
|
1
1
|
import { v } from "convex/values";
|
|
2
|
-
export const DEFAULT_LOG_LEVEL = "
|
|
2
|
+
export const DEFAULT_LOG_LEVEL = "REPORT";
|
|
3
|
+
// NOTE: the ordering here is important! A config level of "INFO" will log
|
|
4
|
+
// "INFO", "REPORT", "WARN",and "ERROR" events.
|
|
5
|
+
export const logLevel = v.union(v.literal("DEBUG"), v.literal("INFO"), v.literal("REPORT"), v.literal("WARN"), v.literal("ERROR"));
|
|
6
|
+
const logLevelOrder = logLevel.members.map((l) => l.value);
|
|
7
|
+
const logLevelByName = logLevelOrder.reduce((acc, l, i) => {
|
|
8
|
+
acc[l] = i;
|
|
9
|
+
return acc;
|
|
10
|
+
}, {});
|
|
11
|
+
export function shouldLog(config, level) {
|
|
12
|
+
return logLevelByName[config] <= logLevelByName[level];
|
|
13
|
+
}
|
|
14
|
+
const DEBUG = logLevelByName["DEBUG"];
|
|
15
|
+
const INFO = logLevelByName["INFO"];
|
|
16
|
+
const REPORT = logLevelByName["REPORT"];
|
|
17
|
+
const WARN = logLevelByName["WARN"];
|
|
18
|
+
const ERROR = logLevelByName["ERROR"];
|
|
3
19
|
export function createLogger(level) {
|
|
4
|
-
const levelIndex = [
|
|
5
|
-
if (levelIndex ===
|
|
20
|
+
const levelIndex = logLevelByName[level ?? DEFAULT_LOG_LEVEL];
|
|
21
|
+
if (levelIndex === undefined) {
|
|
6
22
|
throw new Error(`Invalid log level: ${level}`);
|
|
7
23
|
}
|
|
8
24
|
return {
|
|
9
25
|
debug: (...args) => {
|
|
10
|
-
if (levelIndex <=
|
|
26
|
+
if (levelIndex <= DEBUG) {
|
|
11
27
|
console.debug(...args);
|
|
12
28
|
}
|
|
13
29
|
},
|
|
14
30
|
info: (...args) => {
|
|
15
|
-
if (levelIndex <=
|
|
31
|
+
if (levelIndex <= INFO) {
|
|
16
32
|
console.info(...args);
|
|
17
33
|
}
|
|
18
34
|
},
|
|
19
35
|
warn: (...args) => {
|
|
20
|
-
if (levelIndex <=
|
|
36
|
+
if (levelIndex <= WARN) {
|
|
21
37
|
console.warn(...args);
|
|
22
38
|
}
|
|
23
39
|
},
|
|
24
40
|
error: (...args) => {
|
|
25
|
-
if (levelIndex <=
|
|
41
|
+
if (levelIndex <= ERROR) {
|
|
26
42
|
console.error(...args);
|
|
27
43
|
}
|
|
28
44
|
},
|
|
29
45
|
time: (label) => {
|
|
30
|
-
if (levelIndex <=
|
|
46
|
+
if (levelIndex <= DEBUG) {
|
|
31
47
|
console.time(label);
|
|
32
48
|
}
|
|
33
49
|
},
|
|
34
50
|
timeEnd: (label) => {
|
|
35
|
-
if (levelIndex <=
|
|
51
|
+
if (levelIndex <= DEBUG) {
|
|
36
52
|
console.timeEnd(label);
|
|
37
53
|
}
|
|
38
54
|
},
|
|
39
55
|
event: (event, payload) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
56
|
+
const fullPayload = {
|
|
57
|
+
component: "workpool",
|
|
58
|
+
event,
|
|
59
|
+
...payload,
|
|
60
|
+
};
|
|
61
|
+
if (levelIndex === REPORT && event === "report") {
|
|
62
|
+
console.info(JSON.stringify(fullPayload));
|
|
63
|
+
}
|
|
64
|
+
else if (levelIndex <= INFO) {
|
|
46
65
|
console.info(JSON.stringify(fullPayload));
|
|
47
66
|
}
|
|
48
67
|
},
|
|
49
68
|
};
|
|
50
69
|
}
|
|
51
|
-
export const logLevel = v.union(v.literal("DEBUG"), v.literal("INFO"), v.literal("WARN"), v.literal("ERROR"));
|
|
52
70
|
//# sourceMappingURL=logging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/component/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAa,
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/component/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,22 +5,9 @@ export declare const main: import("convex/server").RegisteredMutation<"internal"
|
|
|
5
5
|
generation: bigint;
|
|
6
6
|
segment: bigint;
|
|
7
7
|
}, Promise<void>>;
|
|
8
|
-
export declare const complete: import("convex/server").RegisteredMutation<"internal", {
|
|
9
|
-
done: {
|
|
10
|
-
workId: import("convex/values").GenericId<"work">;
|
|
11
|
-
runResult: {
|
|
12
|
-
kind: "success";
|
|
13
|
-
returnValue: any;
|
|
14
|
-
} | {
|
|
15
|
-
kind: "failed";
|
|
16
|
-
error: string;
|
|
17
|
-
} | {
|
|
18
|
-
kind: "canceled";
|
|
19
|
-
};
|
|
20
|
-
}[];
|
|
21
|
-
}, Promise<void>>;
|
|
22
8
|
export declare const updateRunStatus: import("convex/server").RegisteredMutation<"internal", {
|
|
23
9
|
generation: bigint;
|
|
10
|
+
segment: bigint;
|
|
24
11
|
}, Promise<void>>;
|
|
25
12
|
export declare function withJitter(delay: number): number;
|
|
26
13
|
//# sourceMappingURL=loop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/component/loop.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/component/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,GAAG,EAAM,MAAM,2BAA2B,CAAC;AA4BpD,eAAO,MAAM,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAanE,CAAC;AAGF,eAAO,MAAM,IAAI;;;iBAyEf,CAAC;AAEH,eAAO,MAAM,eAAe;;;iBA6H1B,CAAC;AA0WH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,UAEvC"}
|