@effect-app/infra 1.1.11 → 1.1.13
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 +18 -0
- package/_cjs/errorReporter.cjs +4 -3
- package/_cjs/errorReporter.cjs.map +1 -1
- package/dist/errorReporter.d.ts +2 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +6 -5
- package/dist/services/QueueMaker/errors.d.ts +2 -2
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/errorReporter.ts +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 1.1.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- feat: improve error reported state.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- effect-app@1.0.11
|
|
10
|
+
- @effect-app/infra-adapters@1.0.15
|
|
11
|
+
|
|
12
|
+
## 1.1.12
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [f202812]
|
|
17
|
+
- @effect-app/schema@1.0.9
|
|
18
|
+
- @effect-app/infra-adapters@1.0.14
|
|
19
|
+
- effect-app@1.0.10
|
|
20
|
+
|
|
3
21
|
## 1.1.11
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/_cjs/errorReporter.cjs
CHANGED
|
@@ -27,22 +27,23 @@ function reportError(name) {
|
|
|
27
27
|
yield* $(_effectApp.Effect.logDebug("Interrupted").pipe(_effectApp.Effect.annotateLogs("extras", JSON.stringify(extras ?? {}))));
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
yield* $(reportSentry(cause, name, extras));
|
|
31
30
|
const error = new _errors.CauseException(cause, name);
|
|
31
|
+
yield* $(reportSentry(error, extras));
|
|
32
32
|
yield* $(_effectApp.Effect.logError("Reporting error", cause).pipe(_effectApp.Effect.annotateLogs((0, _utils.dropUndefined)({
|
|
33
33
|
extras,
|
|
34
34
|
__cause__: error.toJSON(),
|
|
35
35
|
__error_name__: name
|
|
36
36
|
}))));
|
|
37
|
+
error[_errors.ErrorReported] = true;
|
|
38
|
+
return error;
|
|
37
39
|
});
|
|
38
40
|
}
|
|
39
|
-
function reportSentry(
|
|
41
|
+
function reportSentry(error, extras) {
|
|
40
42
|
return _RequestContextContainer.RequestContextContainer.getOption.pipe(_effectApp.Effect.map(ctx => {
|
|
41
43
|
const context = _effectApp.Option.getOrUndefined(ctx);
|
|
42
44
|
const scope = new Sentry.Scope();
|
|
43
45
|
if (context) scope.setContext("context", context);
|
|
44
46
|
if (extras) scope.setContext("extras", extras);
|
|
45
|
-
const error = new _errors.CauseException(cause, name);
|
|
46
47
|
scope.setContext("error", error.toJSON());
|
|
47
48
|
Sentry.captureException(error, scope);
|
|
48
49
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.cjs","names":["_utils","require","Sentry","_interopRequireWildcard","_effectApp","_errors","_RequestContextContainer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportError","name","cause","extras","Effect","gen","$","annotateCurrentSpan","Cause","pretty","squashWith","_","Predicate","hasProperty","_tag","isInterrupted","logDebug","pipe","annotateLogs","JSON","stringify","
|
|
1
|
+
{"version":3,"file":"errorReporter.cjs","names":["_utils","require","Sentry","_interopRequireWildcard","_effectApp","_errors","_RequestContextContainer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportError","name","cause","extras","Effect","gen","$","annotateCurrentSpan","Cause","pretty","squashWith","_","Predicate","hasProperty","_tag","isInterrupted","logDebug","pipe","annotateLogs","JSON","stringify","error","CauseException","reportSentry","logError","dropUndefined","__cause__","toJSON","__error_name__","ErrorReported","RequestContextContainer","getOption","map","ctx","context","Option","getOrUndefined","scope","Scope","setContext","captureException","logWarning","console","reportMessage","message","captureMessage","warn"],"sources":["../src/errorReporter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/errorReporter.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Cause, Effect } from "effect-app";
|
|
2
|
-
|
|
2
|
+
import { CauseException } from "./errors.js";
|
|
3
|
+
export declare function reportError(name: string): (cause: Cause<unknown>, extras?: Record<string, unknown>) => Effect.Effect<CauseException<unknown> | undefined, never, never>;
|
|
3
4
|
export declare function logError<E>(name: string): (cause: Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<void, never, never>;
|
|
4
5
|
export declare function captureException(error: unknown): void;
|
|
5
6
|
export declare function reportMessage(message: string, extras?: Record<string, unknown> | undefined): Effect.Effect<void, never, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAqB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAqB,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAA;AAG3D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,WAEG,MAAM,OAAO,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,sEA+BhE;AAgBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,WAEG,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,uCAiB1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,qCAU1F"}
|
package/dist/errorReporter.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dropUndefined } from "@effect-app/core/utils";
|
|
2
2
|
import * as Sentry from "@sentry/node";
|
|
3
3
|
import { Cause, Effect, Option, Predicate } from "effect-app";
|
|
4
|
-
import { CauseException } from "./errors.js";
|
|
4
|
+
import { CauseException, ErrorReported } from "./errors.js";
|
|
5
5
|
import { RequestContextContainer } from "./services/RequestContextContainer.js";
|
|
6
6
|
export function reportError(name) {
|
|
7
7
|
return (cause, extras) => Effect.gen(function* ($) {
|
|
@@ -16,8 +16,8 @@ export function reportError(name) {
|
|
|
16
16
|
yield* $(Effect.logDebug("Interrupted").pipe(Effect.annotateLogs("extras", JSON.stringify(extras ?? {}))));
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
yield* $(reportSentry(cause, name, extras));
|
|
20
19
|
const error = new CauseException(cause, name);
|
|
20
|
+
yield* $(reportSentry(error, extras));
|
|
21
21
|
yield* $(Effect
|
|
22
22
|
.logError("Reporting error", cause)
|
|
23
23
|
.pipe(Effect.annotateLogs(dropUndefined({
|
|
@@ -25,9 +25,11 @@ export function reportError(name) {
|
|
|
25
25
|
__cause__: error.toJSON(),
|
|
26
26
|
__error_name__: name
|
|
27
27
|
}))));
|
|
28
|
+
error[ErrorReported] = true;
|
|
29
|
+
return error;
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
|
-
function reportSentry(
|
|
32
|
+
function reportSentry(error, extras) {
|
|
31
33
|
return RequestContextContainer.getOption.pipe(Effect.map((ctx) => {
|
|
32
34
|
const context = Option.getOrUndefined(ctx);
|
|
33
35
|
const scope = new Sentry.Scope();
|
|
@@ -35,7 +37,6 @@ function reportSentry(cause, name, extras) {
|
|
|
35
37
|
scope.setContext("context", context);
|
|
36
38
|
if (extras)
|
|
37
39
|
scope.setContext("extras", extras);
|
|
38
|
-
const error = new CauseException(cause, name);
|
|
39
40
|
scope.setContext("error", error.toJSON());
|
|
40
41
|
Sentry.captureException(error, scope);
|
|
41
42
|
}));
|
|
@@ -72,4 +73,4 @@ export function reportMessage(message, extras) {
|
|
|
72
73
|
console.warn(message);
|
|
73
74
|
}));
|
|
74
75
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBRS9FLE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQVk7SUFFWixPQUFPLENBQUMsS0FBcUIsRUFBRSxNQUFnQyxFQUFFLEVBQUUsQ0FDakUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7WUFDbEMsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1lBQ2pELHNCQUFzQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQ2hDLEtBQUssRUFDTCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxD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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cause, Effect, Exit } from "effect-app";
|
|
2
|
-
export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown> | undefined) => Effect.Effect<
|
|
2
|
+
export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown> | undefined) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
|
|
3
3
|
/**
|
|
4
4
|
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
5
5
|
* new fiber is attached to the global scope, when the fiber executing the
|
|
@@ -10,7 +10,7 @@ export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<stri
|
|
|
10
10
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
11
11
|
*/
|
|
12
12
|
export declare function forkDaemonReportQueue<R, E, A>(self: Effect<A, E, R>): Effect.Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, Exclude<R, import("effect/Tracer").ParentSpan>>;
|
|
13
|
-
export declare const reportFatalQueueError: (cause: Cause<unknown>, extras?: Record<string, unknown> | undefined) => Effect.Effect<
|
|
13
|
+
export declare const reportFatalQueueError: (cause: Cause<unknown>, extras?: Record<string, unknown> | undefined) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
|
|
14
14
|
export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <R, E, A>(inp: Effect<A, E, R>) => Effect<Exit<A, E>, never, R>;
|
|
15
15
|
export declare function reportNonInterruptedFailureCause(context?: Record<string, unknown>): <E>(cause: Cause<E>) => Effect<void>;
|
|
16
16
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,wGAC/D,CAAA;AAElC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,mHAMnE;AAED,eAAO,MAAM,qBAAqB,8KAEjC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAErD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAYrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAC9D,MAAM,CAAC,CAAC,KAAG,OAAO,IAAI,CAAC,CAM1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"proper-lockfile": "^4.1.2",
|
|
19
19
|
"pure-rand": "6.1.0",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
|
-
"@effect-app/infra-adapters": "1.0.13",
|
|
22
|
-
"effect-app": "1.0.9",
|
|
23
21
|
"@effect-app/core": "1.0.5",
|
|
24
|
-
"
|
|
22
|
+
"effect-app": "1.0.11",
|
|
23
|
+
"@effect-app/infra-adapters": "1.0.15",
|
|
24
|
+
"@effect-app/schema": "1.0.9"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/cli": "^7.24.1",
|
package/src/errorReporter.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dropUndefined } from "@effect-app/core/utils"
|
|
2
2
|
import * as Sentry from "@sentry/node"
|
|
3
3
|
import { Cause, Effect, Option, Predicate } from "effect-app"
|
|
4
|
-
import { CauseException } from "./errors.js"
|
|
4
|
+
import { CauseException, ErrorReported } from "./errors.js"
|
|
5
5
|
import { RequestContextContainer } from "./services/RequestContextContainer.js"
|
|
6
6
|
|
|
7
7
|
export function reportError(
|
|
@@ -23,8 +23,9 @@ export function reportError(
|
|
|
23
23
|
yield* $(Effect.logDebug("Interrupted").pipe(Effect.annotateLogs("extras", JSON.stringify(extras ?? {}))))
|
|
24
24
|
return
|
|
25
25
|
}
|
|
26
|
-
yield* $(reportSentry(cause, name, extras))
|
|
27
26
|
const error = new CauseException(cause, name)
|
|
27
|
+
|
|
28
|
+
yield* $(reportSentry(error, extras))
|
|
28
29
|
yield* $(
|
|
29
30
|
Effect
|
|
30
31
|
.logError("Reporting error", cause)
|
|
@@ -34,12 +35,13 @@ export function reportError(
|
|
|
34
35
|
__error_name__: name
|
|
35
36
|
})))
|
|
36
37
|
)
|
|
38
|
+
error[ErrorReported] = true
|
|
39
|
+
return error
|
|
37
40
|
})
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
function reportSentry(
|
|
41
|
-
|
|
42
|
-
name: string,
|
|
44
|
+
error: CauseException<unknown>,
|
|
43
45
|
extras: Record<string, unknown> | undefined
|
|
44
46
|
) {
|
|
45
47
|
return RequestContextContainer.getOption.pipe(Effect.map((ctx) => {
|
|
@@ -47,7 +49,6 @@ function reportSentry(
|
|
|
47
49
|
const scope = new Sentry.Scope()
|
|
48
50
|
if (context) scope.setContext("context", context as unknown as Record<string, unknown>)
|
|
49
51
|
if (extras) scope.setContext("extras", extras)
|
|
50
|
-
const error = new CauseException(cause, name)
|
|
51
52
|
scope.setContext("error", error.toJSON() as any)
|
|
52
53
|
Sentry.captureException(error, scope)
|
|
53
54
|
}))
|