@effect-app/vue 2.28.1 → 2.29.0
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 +11 -0
- package/dist/errorReporter.d.ts +2 -2
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +8 -7
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +6 -6
- package/package.json +2 -2
- package/src/errorReporter.ts +12 -6
- package/src/lib.ts +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @effect-app/vue
|
|
2
2
|
|
|
3
|
+
## 2.29.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 7a4d393: report errors anyway to Sentry but with lower severity. add log namespace annotations.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [7a4d393]
|
|
12
|
+
- effect-app@2.29.0
|
|
13
|
+
|
|
3
14
|
## 2.28.1
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/errorReporter.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Cause, Effect } from "effect-app";
|
|
1
|
+
import { Cause, Effect, LogLevel } from "effect-app";
|
|
2
2
|
import { CauseException } from "effect-app/client/errors";
|
|
3
3
|
export declare const tryCauseException: <E>(cause: Cause<E>, name: string) => CauseException<E>;
|
|
4
|
-
export declare function reportError(name: string): (cause: Cause.Cause<unknown>, extras?: Record<string, unknown
|
|
4
|
+
export declare function reportError(name: string): (cause: Cause.Cause<unknown>, extras?: Record<string, unknown>, level?: LogLevel.LogLevel) => Effect.Effect<unknown, never, never>;
|
|
5
5
|
export declare function logError<E>(name: string): (cause: Cause.Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<void, never, never>;
|
|
6
6
|
export declare function captureException(error: unknown, extras?: Record<string, unknown>): void;
|
|
7
7
|
export declare function reportMessage(message: string, extras?: Record<string, unknown>): Effect.Effect<void, never, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,cAAc,EAAyC,MAAM,0BAA0B,CAAA;AAGhG,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,QAAQ,MAAM,KAAG,cAAc,CAAC,CAAC,CAMpF,CAAA;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,WAGH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACzB,QAAQ,CAAC,QAAQ,KACvB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAiCxC;AAiBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,WAEG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,uCAwBhE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAKhF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qCAQ9E"}
|
package/dist/errorReporter.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
3
|
import * as Sentry from "@sentry/browser";
|
|
4
|
-
import { Cause, Effect } from "effect-app";
|
|
4
|
+
import { Cause, Effect, LogLevel } from "effect-app";
|
|
5
5
|
import { CauseException, ErrorReported, tryToJson, tryToReport } from "effect-app/client/errors";
|
|
6
|
-
import { dropUndefined } from "effect-app/utils";
|
|
6
|
+
import { dropUndefined, LogLevelToSentry } from "effect-app/utils";
|
|
7
7
|
export const tryCauseException = (cause, name) => {
|
|
8
8
|
try {
|
|
9
9
|
return new CauseException(cause, name);
|
|
@@ -13,16 +13,16 @@ export const tryCauseException = (cause, name) => {
|
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
export function reportError(name) {
|
|
16
|
-
return (cause, extras) => Effect
|
|
16
|
+
return (cause, extras, level = LogLevel.Error) => Effect
|
|
17
17
|
.gen(function* () {
|
|
18
18
|
if (Cause.isInterruptedOnly(cause)) {
|
|
19
19
|
yield* Effect.logDebug("Interrupted").pipe(Effect.annotateLogs("extras", JSON.stringify(extras ?? {})));
|
|
20
20
|
return Cause.squash(cause);
|
|
21
21
|
}
|
|
22
22
|
const error = tryCauseException(cause, name);
|
|
23
|
-
yield* reportSentry(error, extras);
|
|
23
|
+
yield* reportSentry(error, extras, LogLevelToSentry(level));
|
|
24
24
|
yield* Effect
|
|
25
|
-
.
|
|
25
|
+
.logWithLevel(level, "Reporting error", cause)
|
|
26
26
|
.pipe(Effect.annotateLogs(dropUndefined({
|
|
27
27
|
extras,
|
|
28
28
|
error: tryToReport(error),
|
|
@@ -34,9 +34,10 @@ export function reportError(name) {
|
|
|
34
34
|
})
|
|
35
35
|
.pipe(Effect.tapErrorCause((cause) => Effect.logError("Failed to report error", cause).pipe(Effect.tapErrorCause(() => Effect.logFatal("Failed to log error cause")))));
|
|
36
36
|
}
|
|
37
|
-
function reportSentry(error, extras) {
|
|
37
|
+
function reportSentry(error, extras, level = "error") {
|
|
38
38
|
return Effect.sync(() => {
|
|
39
39
|
const scope = new Sentry.Scope();
|
|
40
|
+
scope.setLevel(level);
|
|
40
41
|
if (extras)
|
|
41
42
|
scope.setContext("extras", extras);
|
|
42
43
|
scope.setContext("error", tryToReport(error));
|
|
@@ -77,4 +78,4 @@ export function reportMessage(message, extras) {
|
|
|
77
78
|
console.warn(message, extras);
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCwwREFBMEQ7QUFDMUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ2hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFJLEtBQWUsRUFBRSxJQUFZLEVBQXFCLEVBQUU7SUFDdkYsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQVk7SUFFWixPQUFPLENBQ0wsS0FBMkIsRUFDM0IsTUFBZ0MsRUFDaEMsUUFBMkIsUUFBUSxDQUFDLEtBQUssRUFDSCxFQUFFLENBQ3hDLE1BQU07U0FDSCxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ1osSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FB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
|
package/dist/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAiB,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAiB,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACjH,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAGvD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAG9C,eAAO,MAAM,kBAAkB,UAAW,KAAK,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,yCA6BtF,CAAA;AAIJ,eAAO,MAAM,YAAY,aAAc;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,0BAGxC,CAAA;AAEf,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,oBAM5B;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,EACnC,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;;EAU1D;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,WAAW,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,uBAGhF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,SAAS,qBAAqB,EAC5D,IAAI,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAClD,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACxE,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,SAAS,qBAAqB,EACzD,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EACtC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACpD,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;CAMtC,CAAA"}
|
package/dist/lib.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isHttpClientError } from "@effect/platform/HttpClientError";
|
|
2
2
|
import { useIntervalFn } from "@vueuse/core";
|
|
3
|
-
import { Cause, Effect, pipe } from "effect-app";
|
|
4
|
-
import { reportError
|
|
3
|
+
import { Cause, Effect, LogLevel, pipe } from "effect-app";
|
|
4
|
+
import { reportError } from "./errorReporter.js";
|
|
5
5
|
export * as Result from "@effect-rx/rx/Result";
|
|
6
6
|
const reportRuntimeError_ = reportError("Runtime");
|
|
7
7
|
export const reportRuntimeError = (cause, extras) => Effect.gen(function* () {
|
|
@@ -9,14 +9,14 @@ export const reportRuntimeError = (cause, extras) => Effect.gen(function* () {
|
|
|
9
9
|
if (!isHttpClientError(sq)) {
|
|
10
10
|
// TODO: we should only skip this on Configurator/Magento...
|
|
11
11
|
if (String(sq).includes("@effect/rpc: handler must return an array of responses with the same length as the requests.")) {
|
|
12
|
-
yield*
|
|
12
|
+
yield* reportRuntimeError_(cause, extras, LogLevel.Warning);
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
return yield* reportRuntimeError_(cause, extras);
|
|
16
16
|
}
|
|
17
17
|
if (sq._tag === "RequestError") {
|
|
18
18
|
if (sq.reason === "Transport") {
|
|
19
|
-
yield*
|
|
19
|
+
yield* reportRuntimeError_(cause, extras, LogLevel.Info);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -24,7 +24,7 @@ export const reportRuntimeError = (cause, extras) => Effect.gen(function* () {
|
|
|
24
24
|
if (sq.reason === "Decode") {
|
|
25
25
|
// we get this incase of Magento Proxy error :/
|
|
26
26
|
// TODO: we should only skip this on Configurator/Magento...
|
|
27
|
-
yield*
|
|
27
|
+
yield* reportRuntimeError_(cause, extras, LogLevel.Warning);
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -62,4 +62,4 @@ export const mapHandler = (self, map) => ({
|
|
|
62
62
|
? (i) => map(self.handler)(i)
|
|
63
63
|
: map(self.handler)
|
|
64
64
|
});
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNwRSxPQUFPLEVBQWlCLGFBQWEsRUFBNkIsTUFBTSxjQUFjLENBQUE7QUFFdEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUcxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxzQkFBc0IsQ0FBQTtBQUU5QyxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQXFCLEVBQUUsTUFBZ0MsRUFBRSxFQUFFLENBQzVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDM0IsNERBQTREO1FBQzVELElBQ0UsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FDakIsOEZBQThGLENBQy9GLEVBQ0QsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzNELE9BQU07UUFDUixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUNELElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUMvQixJQUFJLEVB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.29.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"@tanstack/vue-query": "^5.66.4",
|
|
10
10
|
"@vueuse/core": "^12.7.0",
|
|
11
11
|
"query-string": "^9.1.1",
|
|
12
|
-
"effect-app": "2.
|
|
12
|
+
"effect-app": "2.29.0"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"@effect/platform": "^0.77.2",
|
package/src/errorReporter.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
3
|
import * as Sentry from "@sentry/browser"
|
|
4
|
-
import { Cause, Effect } from "effect-app"
|
|
4
|
+
import { Cause, Effect, LogLevel } from "effect-app"
|
|
5
5
|
import { CauseException, ErrorReported, tryToJson, tryToReport } from "effect-app/client/errors"
|
|
6
|
-
import { dropUndefined } from "effect-app/utils"
|
|
6
|
+
import { dropUndefined, LogLevelToSentry } from "effect-app/utils"
|
|
7
7
|
|
|
8
8
|
export const tryCauseException = <E>(cause: Cause<E>, name: string): CauseException<E> => {
|
|
9
9
|
try {
|
|
@@ -16,7 +16,11 @@ export const tryCauseException = <E>(cause: Cause<E>, name: string): CauseExcept
|
|
|
16
16
|
export function reportError(
|
|
17
17
|
name: string
|
|
18
18
|
) {
|
|
19
|
-
return (
|
|
19
|
+
return (
|
|
20
|
+
cause: Cause.Cause<unknown>,
|
|
21
|
+
extras?: Record<string, unknown>,
|
|
22
|
+
level: LogLevel.LogLevel = LogLevel.Error
|
|
23
|
+
): Effect.Effect<unknown, never, never> =>
|
|
20
24
|
Effect
|
|
21
25
|
.gen(function*() {
|
|
22
26
|
if (Cause.isInterruptedOnly(cause)) {
|
|
@@ -25,9 +29,9 @@ export function reportError(
|
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
const error = tryCauseException(cause, name)
|
|
28
|
-
yield* reportSentry(error, extras)
|
|
32
|
+
yield* reportSentry(error, extras, LogLevelToSentry(level))
|
|
29
33
|
yield* Effect
|
|
30
|
-
.
|
|
34
|
+
.logWithLevel(level, "Reporting error", cause)
|
|
31
35
|
.pipe(
|
|
32
36
|
Effect.annotateLogs(dropUndefined({
|
|
33
37
|
extras,
|
|
@@ -53,10 +57,12 @@ export function reportError(
|
|
|
53
57
|
|
|
54
58
|
function reportSentry(
|
|
55
59
|
error: CauseException<unknown>,
|
|
56
|
-
extras: Record<string, unknown> | undefined
|
|
60
|
+
extras: Record<string, unknown> | undefined,
|
|
61
|
+
level: Sentry.SeverityLevel = "error"
|
|
57
62
|
) {
|
|
58
63
|
return Effect.sync(() => {
|
|
59
64
|
const scope = new Sentry.Scope()
|
|
65
|
+
scope.setLevel(level)
|
|
60
66
|
if (extras) scope.setContext("extras", extras)
|
|
61
67
|
scope.setContext("error", tryToReport(error) as any)
|
|
62
68
|
scope.setContext("cause", tryToJson(error.originalCause) as any)
|
package/src/lib.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isHttpClientError } from "@effect/platform/HttpClientError"
|
|
2
2
|
import { type Pausable, useIntervalFn, type UseIntervalFnOptions } from "@vueuse/core"
|
|
3
3
|
import type { Runtime } from "effect-app"
|
|
4
|
-
import { Cause, Effect, pipe } from "effect-app"
|
|
4
|
+
import { Cause, Effect, LogLevel, pipe } from "effect-app"
|
|
5
5
|
import type { RequestHandler, RequestHandlerWithInput, TaggedRequestClassAny } from "effect-app/client/clientFor"
|
|
6
6
|
import type { MaybeRefOrGetter, ShallowRef } from "vue"
|
|
7
|
-
import { reportError
|
|
7
|
+
import { reportError } from "./errorReporter.js"
|
|
8
8
|
|
|
9
9
|
export * as Result from "@effect-rx/rx/Result"
|
|
10
10
|
|
|
@@ -19,21 +19,21 @@ export const reportRuntimeError = (cause: Cause<unknown>, extras?: Record<string
|
|
|
19
19
|
"@effect/rpc: handler must return an array of responses with the same length as the requests."
|
|
20
20
|
)
|
|
21
21
|
) {
|
|
22
|
-
yield*
|
|
22
|
+
yield* reportRuntimeError_(cause, extras, LogLevel.Warning)
|
|
23
23
|
return
|
|
24
24
|
}
|
|
25
25
|
return yield* reportRuntimeError_(cause, extras)
|
|
26
26
|
}
|
|
27
27
|
if (sq._tag === "RequestError") {
|
|
28
28
|
if (sq.reason === "Transport") {
|
|
29
|
-
yield*
|
|
29
|
+
yield* reportRuntimeError_(cause, extras, LogLevel.Info)
|
|
30
30
|
return
|
|
31
31
|
}
|
|
32
32
|
} else if (sq._tag === "ResponseError") {
|
|
33
33
|
if (sq.reason === "Decode") {
|
|
34
34
|
// we get this incase of Magento Proxy error :/
|
|
35
35
|
// TODO: we should only skip this on Configurator/Magento...
|
|
36
|
-
yield*
|
|
36
|
+
yield* reportRuntimeError_(cause, extras, LogLevel.Warning)
|
|
37
37
|
return
|
|
38
38
|
}
|
|
39
39
|
}
|