inngest 1.9.6 → 1.9.7
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/CHANGELOG.md +6 -0
- package/helpers/errors.d.ts +8 -9
- package/helpers/errors.d.ts.map +1 -1
- package/helpers/errors.js +90 -12
- package/helpers/errors.js.map +1 -1
- package/landing.d.ts +1 -1
- package/landing.d.ts.map +1 -1
- package/landing.js +1 -1
- package/landing.js.map +1 -1
- package/package.json +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/CHANGELOG.md
CHANGED
package/helpers/errors.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
+
import { type SerializedError as CjsSerializedError } from "serialize-error-cjs";
|
|
1
2
|
declare const SERIALIZED_KEY = "__serialized";
|
|
2
3
|
declare const SERIALIZED_VALUE = true;
|
|
3
|
-
export interface SerializedError {
|
|
4
|
+
export interface SerializedError extends Readonly<CjsSerializedError> {
|
|
4
5
|
readonly [SERIALIZED_KEY]: typeof SERIALIZED_VALUE;
|
|
5
|
-
readonly name: string;
|
|
6
|
-
readonly message: string;
|
|
7
|
-
readonly stack: string;
|
|
8
6
|
}
|
|
9
7
|
/**
|
|
10
|
-
* Serialise an error to a
|
|
8
|
+
* Serialise an error to a serialized JSON string.
|
|
11
9
|
*
|
|
12
10
|
* Errors do not serialise nicely to JSON, so we use this function to convert
|
|
13
|
-
* them to a
|
|
14
|
-
* we use the `serialize-error` package to do it for us.
|
|
11
|
+
* them to a serialized JSON string. Doing this is also non-trivial for some
|
|
12
|
+
* errors, so we use the `serialize-error` package to do it for us.
|
|
15
13
|
*
|
|
16
14
|
* See {@link https://www.npmjs.com/package/serialize-error}
|
|
17
15
|
*
|
|
@@ -23,9 +21,10 @@ export interface SerializedError {
|
|
|
23
21
|
*/
|
|
24
22
|
export declare const serializeError: (subject: unknown) => SerializedError;
|
|
25
23
|
/**
|
|
26
|
-
* Check if an object is a serialised error created by
|
|
24
|
+
* Check if an object or a string is a serialised error created by
|
|
25
|
+
* {@link serializeError}.
|
|
27
26
|
*/
|
|
28
|
-
export declare const isSerializedError: (value: unknown) =>
|
|
27
|
+
export declare const isSerializedError: (value: unknown) => SerializedError | undefined;
|
|
29
28
|
/**
|
|
30
29
|
* Deserialise an error created by {@link serializeError}.
|
|
31
30
|
*
|
package/helpers/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,eAAe,IAAI,kBAAkB,EAC3C,MAAM,qBAAqB,CAAC;AAM7B,QAAA,MAAM,cAAc,iBAAiB,CAAC;AACtC,QAAA,MAAM,gBAAgB,OAAO,CAAC;AAkB9B,MAAM,WAAW,eAAgB,SAAQ,QAAQ,CAAC,kBAAkB,CAAC;IACnE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,gBAAgB,CAAC;CACpD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,YAAa,OAAO,KAAG,eAuDjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UACrB,OAAO,KACb,eAAe,GAAG,SAiCpB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAAa,QAAQ,eAAe,CAAC,KAAG,KAwBpE,CAAC;AAEF,oBAAY,OAAO;IACjB,iCAAiC,sCAAsC;IACvE,gCAAgC,qCAAqC;IACrE,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,8FAUrB,WAAW,KAAG,MAqDhB,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAAU,OAAO,WAatD,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAMnC,CAAC"}
|
package/helpers/errors.js
CHANGED
|
@@ -5,15 +5,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.fixEventKeyMissingSteps = exports.functionStoppedRunningErr = exports.prettyError = exports.ErrCode = exports.deserializeError = exports.isSerializedError = exports.serializeError = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const json_stringify_safe_1 = __importDefault(require("json-stringify-safe"));
|
|
8
9
|
const serialize_error_cjs_1 = require("serialize-error-cjs");
|
|
10
|
+
const zod_1 = require("zod");
|
|
11
|
+
const NonRetriableError_1 = require("../components/NonRetriableError");
|
|
9
12
|
const SERIALIZED_KEY = "__serialized";
|
|
10
13
|
const SERIALIZED_VALUE = true;
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
15
|
+
* Add first-class support for certain errors that we control, in addition to
|
|
16
|
+
* built-in errors such as `TypeError`.
|
|
17
|
+
*
|
|
18
|
+
* Adding these allows these non-standard errors to be correctly serialized,
|
|
19
|
+
* sent to Inngest, then deserialized back into the correct error type for users
|
|
20
|
+
* to react to correctly.
|
|
21
|
+
*
|
|
22
|
+
* Note that these errors only support `message?: string | undefined` as the
|
|
23
|
+
* input; more custom errors are not supported with this current strategy.
|
|
24
|
+
*/
|
|
25
|
+
serialize_error_cjs_1.errorConstructors.set("NonRetriableError", NonRetriableError_1.NonRetriableError);
|
|
26
|
+
/**
|
|
27
|
+
* Serialise an error to a serialized JSON string.
|
|
13
28
|
*
|
|
14
29
|
* Errors do not serialise nicely to JSON, so we use this function to convert
|
|
15
|
-
* them to a
|
|
16
|
-
* we use the `serialize-error` package to do it for us.
|
|
30
|
+
* them to a serialized JSON string. Doing this is also non-trivial for some
|
|
31
|
+
* errors, so we use the `serialize-error` package to do it for us.
|
|
17
32
|
*
|
|
18
33
|
* See {@link https://www.npmjs.com/package/serialize-error}
|
|
19
34
|
*
|
|
@@ -24,24 +39,87 @@ const SERIALIZED_VALUE = true;
|
|
|
24
39
|
* Will not reserialise existing serialised errors.
|
|
25
40
|
*/
|
|
26
41
|
const serializeError = (subject) => {
|
|
27
|
-
|
|
28
|
-
|
|
42
|
+
try {
|
|
43
|
+
// Try to understand if this is already done.
|
|
44
|
+
// Will handle stringified errors.
|
|
45
|
+
const existingSerializedError = (0, exports.isSerializedError)(subject);
|
|
46
|
+
if (existingSerializedError) {
|
|
47
|
+
return existingSerializedError;
|
|
48
|
+
}
|
|
49
|
+
if (typeof subject === "object" && subject !== null) {
|
|
50
|
+
// Is an object, so let's try and serialize it.
|
|
51
|
+
const serializedErr = (0, serialize_error_cjs_1.serializeError)(subject);
|
|
52
|
+
// Serialization can succeed but assign no name or message, so we'll
|
|
53
|
+
// map over the result here to ensure we have everything.
|
|
54
|
+
// We'll just stringify the entire subject for the message, as this at
|
|
55
|
+
// least provides some context for the user.
|
|
56
|
+
return {
|
|
57
|
+
name: serializedErr.name || "Error",
|
|
58
|
+
message: serializedErr.message ||
|
|
59
|
+
(0, json_stringify_safe_1.default)(subject) ||
|
|
60
|
+
"Unknown error; error serialization could not find a message.",
|
|
61
|
+
stack: serializedErr.stack || "",
|
|
62
|
+
[SERIALIZED_KEY]: SERIALIZED_VALUE,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// If it's not an object, it's hard to parse this as an Error. In this case,
|
|
66
|
+
// we'll throw an error to start attempting backup strategies.
|
|
67
|
+
throw new Error("Error is not an object; strange throw value.");
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
try {
|
|
71
|
+
// If serialization fails, fall back to a regular Error and use the
|
|
72
|
+
// original object as the message for an Error. We don't know what this
|
|
73
|
+
// object looks like, so we can't do anything else with it.
|
|
74
|
+
return Object.assign(Object.assign({}, (0, exports.serializeError)(new Error(typeof subject === "string" ? subject : (0, json_stringify_safe_1.default)(subject)))), { [SERIALIZED_KEY]: SERIALIZED_VALUE });
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
// If this failed, then stringifying the object also failed, so we'll just
|
|
78
|
+
// return a completely generic error.
|
|
79
|
+
// Failing to stringify the object is very unlikely.
|
|
80
|
+
return {
|
|
81
|
+
name: "Could not serialize source error",
|
|
82
|
+
message: "Serializing the source error failed.",
|
|
83
|
+
stack: "",
|
|
84
|
+
[SERIALIZED_KEY]: SERIALIZED_VALUE,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
29
87
|
}
|
|
30
|
-
return Object.assign(Object.assign({}, (0, serialize_error_cjs_1.serializeError)(subject)), { [SERIALIZED_KEY]: SERIALIZED_VALUE });
|
|
31
88
|
};
|
|
32
89
|
exports.serializeError = serializeError;
|
|
33
90
|
/**
|
|
34
|
-
* Check if an object is a serialised error created by
|
|
91
|
+
* Check if an object or a string is a serialised error created by
|
|
92
|
+
* {@link serializeError}.
|
|
35
93
|
*/
|
|
36
94
|
const isSerializedError = (value) => {
|
|
37
95
|
try {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
SERIALIZED_VALUE)
|
|
96
|
+
if (typeof value === "string") {
|
|
97
|
+
const parsed = zod_1.z
|
|
98
|
+
.object({
|
|
99
|
+
[SERIALIZED_KEY]: zod_1.z.literal(SERIALIZED_VALUE),
|
|
100
|
+
name: zod_1.z.enum([...serialize_error_cjs_1.errorConstructors.keys()]),
|
|
101
|
+
message: zod_1.z.string(),
|
|
102
|
+
stack: zod_1.z.string(),
|
|
103
|
+
})
|
|
104
|
+
.passthrough()
|
|
105
|
+
.safeParse(JSON.parse(value));
|
|
106
|
+
if (parsed.success) {
|
|
107
|
+
return parsed.data;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (typeof value === "object" && value !== null) {
|
|
111
|
+
const objIsSerializedErr = Object.prototype.hasOwnProperty.call(value, SERIALIZED_KEY) &&
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
113
|
+
value[SERIALIZED_KEY] ===
|
|
114
|
+
SERIALIZED_VALUE;
|
|
115
|
+
if (objIsSerializedErr) {
|
|
116
|
+
return value;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
42
119
|
}
|
|
43
120
|
catch (_a) {
|
|
44
|
-
return
|
|
121
|
+
// no-op; we'll return undefined if parsing failed, as it isn't a serialized
|
|
122
|
+
// error
|
|
45
123
|
}
|
|
46
124
|
};
|
|
47
125
|
exports.isSerializedError = isSerializedError;
|
package/helpers/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"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"}
|