@effect-app/infra 1.5.1 → 1.6.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/CHANGELOG.md +25 -0
- package/_cjs/api/reportError.cjs +31 -11
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +11 -8
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/dist/api/reportError.d.ts +11 -11
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +36 -14
- package/dist/services/QueueMaker/errors.d.ts +8 -5
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +12 -11
- package/dist/services/QueueMaker/memQueue.d.ts +1 -1
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +1 -1
- package/dist/services/QueueMaker/service.d.ts +2 -2
- package/package.json +9 -9
- package/src/api/reportError.ts +40 -19
- package/src/services/QueueMaker/errors.ts +18 -16
- package/src/services/QueueMaker/memQueue.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 1.6.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @effect-app/schema@1.2.3
|
|
9
|
+
- @effect-app/infra-adapters@1.2.3
|
|
10
|
+
- effect-app@1.4.1
|
|
11
|
+
|
|
12
|
+
## 1.6.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- c10818c: improve forking
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 2c661c1: update packages
|
|
21
|
+
- Updated dependencies [2c661c1]
|
|
22
|
+
- Updated dependencies [c10818c]
|
|
23
|
+
- @effect-app/infra-adapters@1.2.2
|
|
24
|
+
- effect-app@1.4.0
|
|
25
|
+
- @effect-app/schema@1.2.2
|
|
26
|
+
- @effect-app/core@1.2.1
|
|
27
|
+
|
|
3
28
|
## 1.5.1
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
package/_cjs/api/reportError.cjs
CHANGED
|
@@ -8,28 +8,48 @@ exports.forkDaemonReportRequestUnexpected = forkDaemonReportRequestUnexpected;
|
|
|
8
8
|
var _RequestFiberSet = require("@effect-app/infra-adapters/RequestFiberSet");
|
|
9
9
|
var _effectApp = require("effect-app");
|
|
10
10
|
var _errorReporter = require("../errorReporter.cjs");
|
|
11
|
+
// const onExitReportError = (name: string, unknownOnly?: boolean) => {
|
|
12
|
+
// const report = reportError(name)
|
|
13
|
+
// const log = logError(name)
|
|
14
|
+
// return <A, E, R>(self: Effect<A, E, R>) =>
|
|
15
|
+
// Effect.onExit(self, (exit) =>
|
|
16
|
+
// Exit.isFailure(exit)
|
|
17
|
+
// ? unknownOnly
|
|
18
|
+
// ? Cause.isInterruptedOnly(exit.cause) || Cause.isDie(exit.cause)
|
|
19
|
+
// ? report(exit.cause)
|
|
20
|
+
// : log(exit.cause)
|
|
21
|
+
// : report(exit.cause)
|
|
22
|
+
// : Effect.void)
|
|
23
|
+
// }
|
|
24
|
+
const tapErrorCause = (name, unknownOnly) => {
|
|
25
|
+
const report = (0, _errorReporter.reportError)(name);
|
|
26
|
+
const log = (0, _errorReporter.logError)(name);
|
|
27
|
+
return self => _effectApp.Effect.tapErrorCause(self, cause => unknownOnly ? _effectApp.Cause.isFailure(cause) ? log(cause) : report(cause) : report(cause));
|
|
28
|
+
};
|
|
29
|
+
const reportRequestError = tapErrorCause("request");
|
|
30
|
+
const reportUnknownRequestError = tapErrorCause("request", true);
|
|
11
31
|
/**
|
|
12
|
-
* Forks the effect into a new fiber attached to the
|
|
13
|
-
* new fiber
|
|
32
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
33
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
14
34
|
* returned effect terminates, the forked fiber will continue running.
|
|
35
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
15
36
|
*
|
|
37
|
+
* The parent span is set to the root span of the current fiber.
|
|
16
38
|
* Reports errors.
|
|
17
|
-
*
|
|
18
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
19
39
|
*/
|
|
20
40
|
function forkDaemonReportRequest(self) {
|
|
21
|
-
return self.pipe(
|
|
41
|
+
return self.pipe(reportRequestError, _RequestFiberSet.setRootParentSpan, _RequestFiberSet.RequestFiberSet.run);
|
|
22
42
|
}
|
|
23
43
|
/**
|
|
24
|
-
* Forks the effect into a new fiber attached to the
|
|
25
|
-
* new fiber
|
|
44
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
45
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
26
46
|
* returned effect terminates, the forked fiber will continue running.
|
|
47
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
27
48
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
49
|
+
* The parent span is set to the root span of the current fiber.
|
|
50
|
+
* Reports unexpected errors.
|
|
31
51
|
*/
|
|
32
52
|
function forkDaemonReportRequestUnexpected(self) {
|
|
33
|
-
return self.pipe(
|
|
53
|
+
return self.pipe(reportUnknownRequestError, _RequestFiberSet.setRootParentSpan, _RequestFiberSet.RequestFiberSet.run);
|
|
34
54
|
}
|
|
35
55
|
//# sourceMappingURL=reportError.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportError.cjs","names":["_RequestFiberSet","require","_effectApp","_errorReporter","
|
|
1
|
+
{"version":3,"file":"reportError.cjs","names":["_RequestFiberSet","require","_effectApp","_errorReporter","tapErrorCause","name","unknownOnly","report","reportError","log","logError","self","Effect","cause","Cause","isFailure","reportRequestError","reportUnknownRequestError","forkDaemonReportRequest","pipe","setRootParentSpan","RequestFiberSet","run","forkDaemonReportRequestUnexpected"],"sources":["../../src/api/reportError.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,aAAa,GAAGA,CAACC,IAAY,EAAEC,WAAqB,KAAI;EAC5D,MAAMC,MAAM,GAAG,IAAAC,0BAAW,EAACH,IAAI,CAAC;EAChC,MAAMI,GAAG,GAAG,IAAAC,uBAAQ,EAACL,IAAI,CAAC;EAC1B,OAAiBM,IAAqB,IACpCC,iBAAM,CAACR,aAAa,CAACO,IAAI,EAAGE,KAAK,IAC/BP,WAAW,GACPQ,gBAAK,CAACC,SAAS,CAACF,KAAK,CAAC,GACpBJ,GAAG,CAACI,KAAK,CAAC,GACVN,MAAM,CAACM,KAAK,CAAC,GACfN,MAAM,CAACM,KAAK,CAAC,CAAC;AACxB,CAAC;AACD,MAAMG,kBAAkB,GAAGZ,aAAa,CAAC,SAAS,CAAC;AACnD,MAAMa,yBAAyB,GAAGb,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC;AAEhE;;;;;;;;;AASM,SAAUc,uBAAuBA,CAAUP,IAAqB;EACpE,OAAOA,IAAI,CAACQ,IAAI,CACdH,kBAAkB,EAClBI,kCAAiB,EACjBC,gCAAe,CAACC,GAAG,CACpB;AACH;AAEA;;;;;;;;;AASM,SAAUC,iCAAiCA,CAAUZ,IAAqB;EAC9E,OAAOA,IAAI,CACRQ,IAAI,CACHF,yBAAyB,EACzBG,kCAAiB,EACjBC,gCAAe,CAACC,GAAG,CACpB;AACL","ignoreList":[]}
|
|
@@ -11,28 +11,31 @@ exports.reportQueueError = void 0;
|
|
|
11
11
|
var _RequestFiberSet = require("@effect-app/infra-adapters/RequestFiberSet");
|
|
12
12
|
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
13
13
|
var _effectApp = require("effect-app");
|
|
14
|
+
var _MainFiberSet = require("effect-app/services/MainFiberSet");
|
|
14
15
|
const reportQueueError_ = (0, _errorReporter.reportError)("Queue");
|
|
15
16
|
const reportQueueError = (cause, extras) => reportQueueError_(cause, extras);
|
|
16
17
|
/**
|
|
17
|
-
* Forks the effect into a new fiber attached to the
|
|
18
|
-
* new fiber
|
|
18
|
+
* Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
|
|
19
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
19
20
|
* returned effect terminates, the forked fiber will continue running.
|
|
21
|
+
* The fiber will be interrupted when the MainFiberSet scope is closed.
|
|
20
22
|
*
|
|
21
|
-
*
|
|
23
|
+
* The parent span is set to the root span of the current fiber.
|
|
24
|
+
* Reports and then swallows errors.
|
|
22
25
|
*
|
|
23
26
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
24
27
|
*/
|
|
25
28
|
exports.reportQueueError = reportQueueError;
|
|
26
29
|
function forkDaemonReportQueue(self) {
|
|
27
|
-
return self.pipe(_effectApp.Effect.
|
|
30
|
+
return self.pipe(_effectApp.Effect.asVoid, _effectApp.Effect.catchAllCause(reportNonInterruptedFailureCause({})), _RequestFiberSet.setRootParentSpan, _MainFiberSet.MainFiberSet.run);
|
|
28
31
|
}
|
|
29
32
|
const reportFatalQueueError = exports.reportFatalQueueError = (0, _errorReporter.reportError)("FatalQueue");
|
|
30
33
|
function reportNonInterruptedFailure(context) {
|
|
31
34
|
const report = reportNonInterruptedFailureCause(context);
|
|
32
|
-
return inp => inp.pipe(_effectApp.Effect.
|
|
33
|
-
onFailure:
|
|
34
|
-
onSuccess: () => _effectApp.Effect.
|
|
35
|
-
})));
|
|
35
|
+
return inp => inp.pipe(_effectApp.Effect.onExit(_effectApp.Exit.match({
|
|
36
|
+
onFailure: report,
|
|
37
|
+
onSuccess: () => _effectApp.Effect.void
|
|
38
|
+
})), _effectApp.Effect.exit);
|
|
36
39
|
}
|
|
37
40
|
function reportNonInterruptedFailureCause(context) {
|
|
38
41
|
return cause => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","names":["_RequestFiberSet","require","_errorReporter","_effectApp","reportQueueError_","reportError","reportQueueError","cause","extras","exports","forkDaemonReportQueue","self","pipe","Effect","
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":["_RequestFiberSet","require","_errorReporter","_effectApp","_MainFiberSet","reportQueueError_","reportError","reportQueueError","cause","extras","exports","forkDaemonReportQueue","self","pipe","Effect","asVoid","catchAllCause","reportNonInterruptedFailureCause","setRootParentSpan","MainFiberSet","run","reportFatalQueueError","reportNonInterruptedFailure","context","report","inp","onExit","Exit","match","onFailure","onSuccess","void","exit","Cause","isInterrupted","failCause"],"sources":["../../../src/services/QueueMaker/errors.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,MAAMI,iBAAiB,GAAG,IAAAC,0BAAW,EAAC,OAAO,CAAC;AAEvC,MAAMC,gBAAgB,GAAGA,CAAIC,KAAe,EAAEC,MAA4C,KAC/FJ,iBAAiB,CAACG,KAAK,EAAEC,MAAM,CAAC;AAElC;;;;;;;;;;;AAAAC,OAAA,CAAAH,gBAAA,GAAAA,gBAAA;AAWM,SAAUI,qBAAqBA,CAAUC,IAAqB;EAClE,OAAOA,IAAI,CAACC,IAAI,CACdC,iBAAM,CAACC,MAAM,EACbD,iBAAM,CAACE,aAAa,CAACC,gCAAgC,CAAC,EAAE,CAAC,CAAC,EAC1DC,kCAAiB,EACjBC,0BAAY,CAACC,GAAG,CACjB;AACH;AAEO,MAAMC,qBAAqB,GAAAX,OAAA,CAAAW,qBAAA,GAAG,IAAAf,0BAAW,EAC9C,YAAY,CACb;AAEK,SAAUgB,2BAA2BA,CAACC,OAAiC;EAC3E,MAAMC,MAAM,GAAGP,gCAAgC,CAACM,OAAO,CAAC;EACxD,OAAiBE,GAAoB,IACnCA,GAAG,CAACZ,IAAI,CACNC,iBAAM,CAACY,MAAM,CACXC,eAAI,CAACC,KAAK,CAAC;IACTC,SAAS,EAAEL,MAAM;IACjBM,SAAS,EAAEA,CAAA,KAAMhB,iBAAM,CAACiB;GACzB,CAAC,CACH,EACDjB,iBAAM,CAACkB,IAAI,CACZ;AACL;AAEM,SAAUf,gCAAgCA,CAACM,OAAiC;EAChF,OAAWf,KAAe,IAAkB;IAC1C,IAAIyB,gBAAK,CAACC,aAAa,CAAC1B,KAAK,CAAC,EAAE;MAC9B,OAAOM,iBAAM,CAACqB,SAAS,CAAC3B,KAAqB,CAAC;IAChD;IACA,OAAOD,gBAAgB,CAACC,KAAK,EAAEe,OAAO,CAAC;EACzC,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.cjs","names":["_memQueue","require","_RequestContext","_schema","_effect","_effectApp","_ids","_utils","_setupRequest","_RequestContextContainer","_errors","_service","makeMemQueue","queueName","queueDrainName","schema","drainSchema","Effect","gen","$","mem","MemQueue","q","getOrCreateQueue","qDrain","rcc","RequestContextContainer","wireSchema","S","Struct","body","meta","QueueMeta","drainW","parseDrain","flow","decodeUnknown","orDie","publish","messages","requestContext","span","serviceOption","Tracer","ParentSpan","forEach","m","encode","Option","getOrUndefined","pipe","andThen","JSON","stringify","flatMap","_","offer","discard","withSpan","kind","attributes","map","_tag","drain","handleEvent","sessionId","silenceAndReportError","reportNonInterruptedFailure","name","processMessage","msg","sync","parse","effect","logDebug","annotateLogs","pretty","zipRight","setupRequestContext","RequestContext","inherit","id","RequestId","locale","NonEmptyString255","Object","entries","reduce","prev","key","value","length","substring","Array","isArray","undefined","keys","withParentSpan","externalSpan","take","x","uninterruptible","fork","Fiber","join","forever"],"sources":["../../../src/services/QueueMaker/memQueue.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,wBAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAEA;;;AAGM,SAAUW,YAAYA,CAM1BC,SAAiB,EACjBC,cAAsB,EACtBC,MAA2B,EAC3BC,WAA0C;EAE1C,OAAOC,iBAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;IAC3B,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,kBAAQ,CAAC;IAC9B,MAAMC,CAAC,GAAG,OAAOH,CAAC,CAACC,GAAG,CAACG,gBAAgB,CAACV,SAAS,CAAC,CAAC;IACnD,MAAMW,MAAM,GAAG,OAAOL,CAAC,CAACC,GAAG,CAACG,gBAAgB,CAACT,cAAc,CAAC,CAAC;IAC7D,MAAMW,GAAG,GAAG,OAAON,CAAC,CAACO,gDAAuB,CAAC;IAE7C,MAAMC,UAAU,GAAGC,YAAC,CAACC,MAAM,CAAC;MAAEC,IAAI,EAAEf,MAAM;MAAEgB,IAAI,EAAEC;IAAS,CAAE,CAAC;IAC9D,MAAMC,MAAM,GAAGL,YAAC,CAACC,MAAM,CAAC;MAAEC,IAAI,EAAEd,WAAW;MAAEe,IAAI,EAAEC;IAAS,CAAE,CAAC;IAC/D,MAAME,UAAU,GAAG,IAAAC,eAAI,EAACP,YAAC,CAACQ,aAAa,CAACH,MAAM,CAAC,EAAEhB,iBAAM,CAACoB,KAAK,CAAC;IAE9D,OAAO;MACLC,OAAO,EAAEA,CAAC,GAAGC,QAAQ,KACnBtB,iBAAM,CACHC,GAAG,CAAC,WAAUC,CAAC;QACd,MAAMqB,cAAc,GAAG,OAAOrB,CAAC,CAACM,GAAG,CAACe,cAAc,CAAC;QACnD,MAAMC,IAAI,GAAG,OAAOtB,CAAC,CAACF,iBAAM,CAACyB,aAAa,CAACC,cAAM,CAACC,UAAU,CAAC,CAAC;QAC9D,OAAO,OAAOzB,CAAC,CACbF,iBAAM,CACH4B,OAAO,CAACN,QAAQ,EAAGO,CAAC;QACnB;QACAlB,YAAC,CAACmB,MAAM,CAACpB,UAAU,CAAC,CAAC;UAAEG,IAAI,EAAEgB,CAAC;UAAEf,IAAI,EAAE;YAAES,cAAc;YAAEC,IAAI,EAAEO,iBAAM,CAACC,cAAc,CAACR,IAAI;UAAC;QAAE,CAAE,CAAC,CAACS,IAAI,CACjGjC,iBAAM,CAACoB,KAAK,EACZpB,iBAAM,CACHkC,OAAO,CAACC,IAAI,CAACC,SAAS,CAAC;QAC1B;QACApC,iBAAM,CAACqC,OAAO,CAAEC,CAAC,IAAKjC,CAAC,CAACkC,KAAK,CAACD,CAAC,CAAC,CAAC,CAClC,EAAE;UAAEE,OAAO,EAAE;QAAI,CAAE,CAAC,CAC1B;MACH,CAAC,CAAC,CACDP,IAAI,CACHjC,iBAAM,CAACyC,QAAQ,CAAC,iBAAiB,GAAG7C,SAAS,EAAE;QAC7C8C,IAAI,EAAE,UAAU;QAChBC,UAAU,EAAE;UAAE,cAAc,EAAErB,QAAQ,CAACsB,GAAG,CAAEN,CAAC,IAAKA,CAAC,CAACO,IAAI;QAAC;OAC1D,CAAC,CACH;MACLC,KAAK,EAAEA,CACLC,WAA2D,EAC3DC,
|
|
1
|
+
{"version":3,"file":"memQueue.cjs","names":["_memQueue","require","_RequestContext","_schema","_effect","_effectApp","_ids","_utils","_setupRequest","_RequestContextContainer","_errors","_service","makeMemQueue","queueName","queueDrainName","schema","drainSchema","Effect","gen","$","mem","MemQueue","q","getOrCreateQueue","qDrain","rcc","RequestContextContainer","wireSchema","S","Struct","body","meta","QueueMeta","drainW","parseDrain","flow","decodeUnknown","orDie","publish","messages","requestContext","span","serviceOption","Tracer","ParentSpan","forEach","m","encode","Option","getOrUndefined","pipe","andThen","JSON","stringify","flatMap","_","offer","discard","withSpan","kind","attributes","map","_tag","drain","handleEvent","sessionId","silenceAndReportError","reportNonInterruptedFailure","name","processMessage","msg","sync","parse","effect","logDebug","annotateLogs","pretty","zipRight","setupRequestContext","RequestContext","inherit","id","RequestId","locale","NonEmptyString255","Object","entries","reduce","prev","key","value","length","substring","Array","isArray","undefined","keys","withParentSpan","externalSpan","take","x","uninterruptible","fork","Fiber","join","forever"],"sources":["../../../src/services/QueueMaker/memQueue.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,wBAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAEA;;;AAGM,SAAUW,YAAYA,CAM1BC,SAAiB,EACjBC,cAAsB,EACtBC,MAA2B,EAC3BC,WAA0C;EAE1C,OAAOC,iBAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;IAC3B,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,kBAAQ,CAAC;IAC9B,MAAMC,CAAC,GAAG,OAAOH,CAAC,CAACC,GAAG,CAACG,gBAAgB,CAACV,SAAS,CAAC,CAAC;IACnD,MAAMW,MAAM,GAAG,OAAOL,CAAC,CAACC,GAAG,CAACG,gBAAgB,CAACT,cAAc,CAAC,CAAC;IAC7D,MAAMW,GAAG,GAAG,OAAON,CAAC,CAACO,gDAAuB,CAAC;IAE7C,MAAMC,UAAU,GAAGC,YAAC,CAACC,MAAM,CAAC;MAAEC,IAAI,EAAEf,MAAM;MAAEgB,IAAI,EAAEC;IAAS,CAAE,CAAC;IAC9D,MAAMC,MAAM,GAAGL,YAAC,CAACC,MAAM,CAAC;MAAEC,IAAI,EAAEd,WAAW;MAAEe,IAAI,EAAEC;IAAS,CAAE,CAAC;IAC/D,MAAME,UAAU,GAAG,IAAAC,eAAI,EAACP,YAAC,CAACQ,aAAa,CAACH,MAAM,CAAC,EAAEhB,iBAAM,CAACoB,KAAK,CAAC;IAE9D,OAAO;MACLC,OAAO,EAAEA,CAAC,GAAGC,QAAQ,KACnBtB,iBAAM,CACHC,GAAG,CAAC,WAAUC,CAAC;QACd,MAAMqB,cAAc,GAAG,OAAOrB,CAAC,CAACM,GAAG,CAACe,cAAc,CAAC;QACnD,MAAMC,IAAI,GAAG,OAAOtB,CAAC,CAACF,iBAAM,CAACyB,aAAa,CAACC,cAAM,CAACC,UAAU,CAAC,CAAC;QAC9D,OAAO,OAAOzB,CAAC,CACbF,iBAAM,CACH4B,OAAO,CAACN,QAAQ,EAAGO,CAAC;QACnB;QACAlB,YAAC,CAACmB,MAAM,CAACpB,UAAU,CAAC,CAAC;UAAEG,IAAI,EAAEgB,CAAC;UAAEf,IAAI,EAAE;YAAES,cAAc;YAAEC,IAAI,EAAEO,iBAAM,CAACC,cAAc,CAACR,IAAI;UAAC;QAAE,CAAE,CAAC,CAACS,IAAI,CACjGjC,iBAAM,CAACoB,KAAK,EACZpB,iBAAM,CACHkC,OAAO,CAACC,IAAI,CAACC,SAAS,CAAC;QAC1B;QACApC,iBAAM,CAACqC,OAAO,CAAEC,CAAC,IAAKjC,CAAC,CAACkC,KAAK,CAACD,CAAC,CAAC,CAAC,CAClC,EAAE;UAAEE,OAAO,EAAE;QAAI,CAAE,CAAC,CAC1B;MACH,CAAC,CAAC,CACDP,IAAI,CACHjC,iBAAM,CAACyC,QAAQ,CAAC,iBAAiB,GAAG7C,SAAS,EAAE;QAC7C8C,IAAI,EAAE,UAAU;QAChBC,UAAU,EAAE;UAAE,cAAc,EAAErB,QAAQ,CAACsB,GAAG,CAAEN,CAAC,IAAKA,CAAC,CAACO,IAAI;QAAC;OAC1D,CAAC,CACH;MACLC,KAAK,EAAEA,CACLC,WAA2D,EAC3DC,SAA8B,KAE9BhD,iBAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;QACpB,MAAM+C,qBAAqB,GAAG,IAAAC,mCAA2B,EAAC;UAAEC,IAAI,EAAE,iBAAiB,GAAGtD;QAAc,CAAE,CAAC;QACvG,MAAMuD,cAAc,GAAIC,GAAW;QACjC;QACArD,iBAAM,CACHsD,IAAI,CAAC,MAAMnB,IAAI,CAACoB,KAAK,CAACF,GAAG,CAAC,CAAC,CAC3BpB,IAAI,CACHjC,iBAAM,CAACqC,OAAO,CAACpB,UAAU,CAAC,EAC1BjB,iBAAM,CAACoB,KAAK,EACZpB,iBAAM,CACHqC,OAAO,CAAC,CAAC;UAAExB,IAAI;UAAEC;QAAI,CAAE,KAAI;UAC1B,IAAI0C,MAAM,GAAGxD,iBAAM,CAChByD,QAAQ,CAAC,IAAI5D,cAAc,+BAA+B,CAAC,CAC3DoC,IAAI,CACHjC,iBAAM,CAAC0D,YAAY,CAAC;YAAE7C,IAAI,EAAE,IAAA8C,aAAM,EAAC9C,IAAI,CAAC;YAAEC,IAAI,EAAE,IAAA6C,aAAM,EAAC7C,IAAI;UAAC,CAAE,CAAC,EAC/Dd,iBAAM,CAAC4D,QAAQ,CAACb,WAAW,CAAClC,IAAI,CAAC,CAAC,EAClCoC,qBAAqB,EACpBX,CAAC,IACA,IAAAuB,iCAAmB,EACjBvB,CAAC,EACDwB,8BAAc,CAACC,OAAO,CAACjD,IAAI,CAACS,cAAc,EAAE;YAC1CyC,EAAE,EAAE,IAAAC,cAAS,EAACpD,IAAI,CAACmD,EAAE,CAAC;YACtBE,MAAM,EAAE,IAAa;YACrBf,IAAI,EAAE,IAAAgB,yBAAiB,EAAC,GAAGtE,cAAc,IAAIgB,IAAI,CAACgC,IAAI,EAAE;WACzD,CAAC,CACH,EACH7C,iBAAM,CACHyC,QAAQ,CAAC,gBAAgB5C,cAAc,IAAIgB,IAAI,CAACgC,IAAI,EAAE,EAAE;YACvDH,IAAI,EAAE,UAAU;YAChBC,UAAU,EAAE;cACV,YAAY,EAAE9C,cAAc;cAC5B,iBAAiB,EAAEmD,SAAS;cAC5B,aAAa,EAAEoB,MAAM,CAACC,OAAO,CAACxD,IAAI,CAAC,CAACyD,MAAM,CAAC,CAACC,IAAI,EAAE,CAACC,GAAG,EAAEC,KAAK,CAAoB,KAAI;gBACnFF,IAAI,CAACC,GAAG,CAAC,GAAGA,GAAG,KAAK,UAAU,GAC1B,YAAY,GACZ,OAAOC,KAAK,KAAK,QAAQ,IACpB,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,SAAS,GAC/B,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACC,MAAM,GAAG,GAAG,GAC5CD,KAAK,CAACE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAChCF,KAAK,GACPG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GACpB,SAASA,KAAK,CAACC,MAAM,GAAG,GACxBD,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKK,SAAS,GACrC,GAAGL,KAAK,EAAE,GACV,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,GAClC,UAAUL,MAAM,CAACW,IAAI,CAACN,KAAK,CAAC,CAACC,MAAM,GAAG,GACtC,OAAOD,KAAK;gBAChB,OAAOF,IAAI;cACb,CAAC,EAAE,EAA+C;;WAErD,CAAC,CACL;UACH,IAAIzD,IAAI,CAACU,IAAI,EAAE;YACbgC,MAAM,GAAGxD,iBAAM,CAACgF,cAAc,CAACxB,MAAM,EAAE9B,cAAM,CAACuD,YAAY,CAACnE,IAAI,CAACU,IAAI,CAAC,CAAC;UACxE;UACA,OAAOgC,MAAM;QACf,CAAC,CAAC,CACL;QACL,OAAO,OAAOtD,CAAC,CACbK,MAAM,CACH2E,IAAI,CACJjD,IAAI,CACHjC,iBAAM,CAACqC,OAAO,CAAE8C,CAAC,IACf/B,cAAc,CAAC+B,CAAC,CAAC,CAAClD,IAAI,CAACjC,iBAAM,CAACoF,eAAe,EAAEpF,iBAAM,CAACqF,IAAI,EAAErF,iBAAM,CAACqC,OAAO,CAACiD,gBAAK,CAACC,IAAI,CAAC,CAAC,CACxF;QACD;QACA;QACAtC,qBAAqB,EACrBjD,iBAAM,CAACwF,OAAO,CACf,CACJ;MACH,CAAC;KAC+B;EACtC,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
2
2
|
import { Effect } from "effect-app";
|
|
3
3
|
/**
|
|
4
|
-
* Forks the effect into a new fiber attached to the
|
|
5
|
-
* new fiber
|
|
4
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
5
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
6
6
|
* returned effect terminates, the forked fiber will continue running.
|
|
7
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
7
8
|
*
|
|
9
|
+
* The parent span is set to the root span of the current fiber.
|
|
8
10
|
* Reports errors.
|
|
9
|
-
*
|
|
10
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
11
11
|
*/
|
|
12
|
-
export declare function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>): Effect
|
|
12
|
+
export declare function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>): Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, RequestFiberSet | Exclude<R, import("effect/Tracer").ParentSpan>>;
|
|
13
13
|
/**
|
|
14
|
-
* Forks the effect into a new fiber attached to the
|
|
15
|
-
* new fiber
|
|
14
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
15
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
16
16
|
* returned effect terminates, the forked fiber will continue running.
|
|
17
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
17
18
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
19
|
+
* The parent span is set to the root span of the current fiber.
|
|
20
|
+
* Reports unexpected errors.
|
|
21
21
|
*/
|
|
22
|
-
export declare function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>): Effect
|
|
22
|
+
export declare function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>): Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, RequestFiberSet | Exclude<R, import("effect/Tracer").ParentSpan>>;
|
|
23
23
|
//# sourceMappingURL=reportError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../src/api/reportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqB,MAAM,4CAA4C,CAAA;AAC/F,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../src/api/reportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqB,MAAM,4CAA4C,CAAA;AAC/F,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAA;AA8B1C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8HAMrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8HAO/E"}
|
package/dist/api/reportError.js
CHANGED
|
@@ -1,31 +1,53 @@
|
|
|
1
1
|
import { RequestFiberSet, setRootParentSpan } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
2
2
|
import { Cause, Effect } from "effect-app";
|
|
3
3
|
import { logError, reportError } from "../errorReporter.js";
|
|
4
|
+
// const onExitReportError = (name: string, unknownOnly?: boolean) => {
|
|
5
|
+
// const report = reportError(name)
|
|
6
|
+
// const log = logError(name)
|
|
7
|
+
// return <A, E, R>(self: Effect<A, E, R>) =>
|
|
8
|
+
// Effect.onExit(self, (exit) =>
|
|
9
|
+
// Exit.isFailure(exit)
|
|
10
|
+
// ? unknownOnly
|
|
11
|
+
// ? Cause.isInterruptedOnly(exit.cause) || Cause.isDie(exit.cause)
|
|
12
|
+
// ? report(exit.cause)
|
|
13
|
+
// : log(exit.cause)
|
|
14
|
+
// : report(exit.cause)
|
|
15
|
+
// : Effect.void)
|
|
16
|
+
// }
|
|
17
|
+
const tapErrorCause = (name, unknownOnly) => {
|
|
18
|
+
const report = reportError(name);
|
|
19
|
+
const log = logError(name);
|
|
20
|
+
return (self) => Effect.tapErrorCause(self, (cause) => unknownOnly
|
|
21
|
+
? Cause.isFailure(cause)
|
|
22
|
+
? log(cause)
|
|
23
|
+
: report(cause)
|
|
24
|
+
: report(cause));
|
|
25
|
+
};
|
|
26
|
+
const reportRequestError = tapErrorCause("request");
|
|
27
|
+
const reportUnknownRequestError = tapErrorCause("request", true);
|
|
4
28
|
/**
|
|
5
|
-
* Forks the effect into a new fiber attached to the
|
|
6
|
-
* new fiber
|
|
29
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
30
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
7
31
|
* returned effect terminates, the forked fiber will continue running.
|
|
32
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
8
33
|
*
|
|
34
|
+
* The parent span is set to the root span of the current fiber.
|
|
9
35
|
* Reports errors.
|
|
10
|
-
*
|
|
11
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
12
36
|
*/
|
|
13
37
|
export function forkDaemonReportRequest(self) {
|
|
14
|
-
return self.pipe(
|
|
38
|
+
return self.pipe(reportRequestError, setRootParentSpan, RequestFiberSet.run);
|
|
15
39
|
}
|
|
16
40
|
/**
|
|
17
|
-
* Forks the effect into a new fiber attached to the
|
|
18
|
-
* new fiber
|
|
41
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
42
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
19
43
|
* returned effect terminates, the forked fiber will continue running.
|
|
44
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
20
45
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
46
|
+
* The parent span is set to the root span of the current fiber.
|
|
47
|
+
* Reports unexpected errors.
|
|
24
48
|
*/
|
|
25
49
|
export function forkDaemonReportRequestUnexpected(self) {
|
|
26
50
|
return self
|
|
27
|
-
.pipe(
|
|
28
|
-
? reportError("request")(cause)
|
|
29
|
-
: logError("request")(cause)), setRootParentSpan, Effect.forkDaemon, Effect.tap(RequestFiberSet.add));
|
|
51
|
+
.pipe(reportUnknownRequestError, setRootParentSpan, RequestFiberSet.run);
|
|
30
52
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3JlcG9ydEVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMvRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTNELHVFQUF1RTtBQUN2RSxxQ0FBcUM7QUFDckMsK0JBQStCO0FBQy9CLCtDQUErQztBQUMvQyxvQ0FBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLHdCQUF3QjtBQUN4Qiw2RUFBNkU7QUFDN0UsbUNBQW1DO0FBQ25DLGdDQUFnQztBQUNoQyxpQ0FBaUM7QUFDakMseUJBQXlCO0FBQ3pCLElBQUk7QUFDSixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxXQUFxQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQixPQUFPLENBQVUsSUFBcUIsRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbkMsV0FBVztRQUNULENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN0QixDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNaLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUN4QixDQUFDLENBQUE7QUFDRCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUNuRCxNQUFNLHlCQUF5QixHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFFaEU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQVUsSUFBcUI7SUFDcEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsZUFBZSxDQUFDLEdBQUcsQ0FDcEIsQ0FBQTtBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBVSxJQUFxQjtJQUM5RSxPQUFPLElBQUk7U0FDUixJQUFJLENBQ0gseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixlQUFlLENBQUMsR0FBRyxDQUNwQixDQUFBO0FBQ0wsQ0FBQyJ9
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { Cause, Effect, Exit } from "effect-app";
|
|
2
|
+
import { MainFiberSet } from "effect-app/services/MainFiberSet";
|
|
2
3
|
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
4
|
/**
|
|
4
|
-
* Forks the effect into a new fiber attached to the
|
|
5
|
-
* new fiber
|
|
5
|
+
* Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
|
|
6
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
6
7
|
* returned effect terminates, the forked fiber will continue running.
|
|
8
|
+
* The fiber will be interrupted when the MainFiberSet scope is closed.
|
|
7
9
|
*
|
|
8
|
-
*
|
|
10
|
+
* The parent span is set to the root span of the current fiber.
|
|
11
|
+
* Reports and then swallows errors.
|
|
9
12
|
*
|
|
10
13
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
11
14
|
*/
|
|
12
|
-
export declare function forkDaemonReportQueue<
|
|
15
|
+
export declare function forkDaemonReportQueue<A, E, R>(self: Effect<A, E, R>): Effect<import("effect/Fiber").RuntimeFiber<void, never>, never, MainFiberSet | Exclude<R, import("effect/Tracer").ParentSpan>>;
|
|
13
16
|
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
|
-
export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <
|
|
17
|
+
export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <A, E, R>(inp: Effect<A, E, R>) => Effect<Exit<A, E>, never, R>;
|
|
15
18
|
export declare function reportNonInterruptedFailureCause(context?: Record<string, unknown>): <E>(cause: Cause<E>) => Effect<void>;
|
|
16
19
|
//# 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;
|
|
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;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAI/D,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,wGAC/D,CAAA;AAElC;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kIAOnE;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,CAUrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAC9D,MAAM,CAAC,CAAC,KAAG,OAAO,IAAI,CAAC,CAM1C"}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { setRootParentSpan } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
2
2
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
3
3
|
import { Cause, Effect, Exit } from "effect-app";
|
|
4
|
+
import { MainFiberSet } from "effect-app/services/MainFiberSet";
|
|
4
5
|
const reportQueueError_ = reportError("Queue");
|
|
5
6
|
export const reportQueueError = (cause, extras) => reportQueueError_(cause, extras);
|
|
6
7
|
/**
|
|
7
|
-
* Forks the effect into a new fiber attached to the
|
|
8
|
-
* new fiber
|
|
8
|
+
* Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
|
|
9
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
9
10
|
* returned effect terminates, the forked fiber will continue running.
|
|
11
|
+
* The fiber will be interrupted when the MainFiberSet scope is closed.
|
|
10
12
|
*
|
|
11
|
-
*
|
|
13
|
+
* The parent span is set to the root span of the current fiber.
|
|
14
|
+
* Reports and then swallows errors.
|
|
12
15
|
*
|
|
13
16
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
14
17
|
*/
|
|
15
18
|
export function forkDaemonReportQueue(self) {
|
|
16
|
-
return self.pipe(Effect.
|
|
19
|
+
return self.pipe(Effect.asVoid, Effect.catchAllCause(reportNonInterruptedFailureCause({})), setRootParentSpan, MainFiberSet.run);
|
|
17
20
|
}
|
|
18
21
|
export const reportFatalQueueError = reportError("FatalQueue");
|
|
19
22
|
export function reportNonInterruptedFailure(context) {
|
|
20
23
|
const report = reportNonInterruptedFailureCause(context);
|
|
21
|
-
return (inp) => inp.pipe(Effect
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
onSuccess: () => Effect.sync(() => result)
|
|
26
|
-
})));
|
|
24
|
+
return (inp) => inp.pipe(Effect.onExit(Exit.match({
|
|
25
|
+
onFailure: report,
|
|
26
|
+
onSuccess: () => Effect.void
|
|
27
|
+
})), Effect.exit);
|
|
27
28
|
}
|
|
28
29
|
export function reportNonInterruptedFailureCause(context) {
|
|
29
30
|
return (cause) => {
|
|
@@ -33,4 +34,4 @@ export function reportNonInterruptedFailureCause(context) {
|
|
|
33
34
|
return reportQueueError(cause, context);
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRS9ELE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUksS0FBZSxFQUFFLE1BQTRDLEVBQUUsRUFBRSxDQUNuRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFFbEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxJQUFxQjtJQUNsRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQ2QsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFELGlCQUFpQixFQUNqQixZQUFZLENBQUMsR0FBRyxDQUNqQixDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FDOUMsWUFBWSxDQUNiLENBQUE7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsT0FBaUM7SUFDM0UsTUFBTSxNQUFNLEdBQUcsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEQsT0FBTyxDQUFVLEdBQW9CLEVBQWdDLEVBQUUsQ0FDckUsR0FBRyxDQUFDLElBQUksQ0FDTixNQUFNLENBQUMsTUFBTSxDQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDVCxTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUk7S0FDN0IsQ0FBQyxDQUNILEVBQ0QsTUFBTSxDQUFDLElBQUksQ0FDWixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxPQUFpQztJQUNoRixPQUFPLENBQUksS0FBZSxFQUFnQixFQUFFO1FBQzFDLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFxQixDQUFDLENBQUE7UUFDaEQsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3pDLENBQUMsQ0FBQTtBQUNILENBQUMifQ==
|
|
@@ -13,6 +13,6 @@ export declare function makeMemQueue<Evt extends {
|
|
|
13
13
|
_tag: string;
|
|
14
14
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
15
|
publish: (messages_0: Evt, ...messages_1: Evt[]) => Effect.Effect<void, never, never>;
|
|
16
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>>;
|
|
16
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string | undefined) => Effect.Effect<never, never, RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>>;
|
|
17
17
|
}, never, RequestContextContainer | MemQueue>;
|
|
18
18
|
//# sourceMappingURL=memQueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAG9D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAuB,CAAC,EAAE,MAAM,YAAY,CAAA;AAI3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAIvE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;;yCAsCvB,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM;
|
|
1
|
+
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAG9D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAuB,CAAC,EAAE,MAAM,YAAY,CAAA;AAI3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAIvE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;;yCAsCvB,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM,GAAG,SAAS;8CA6ErC"}
|
|
@@ -93,4 +93,4 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
93
93
|
};
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvUXVldWVNYWtlci9tZW1RdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekQsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQU0xQixTQUFpQixFQUNqQixjQUFzQixFQUN0QixNQUEyQixFQUMzQixXQUEwQztJQUUxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDOUIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUU3QyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFOUQsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLEVBQUUsQ0FDdkIsTUFBTTtpQkFDSCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDZCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUNuRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtnQkFDOUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2IsTUFBTTtxQkFDSCxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZCLHVIQUF1SDtnQkFDdkgsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDakcsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNO3FCQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUMxQix1RUFBdUU7Z0JBQ3ZFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMxQixDQUFBO1lBQ0gsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FDSCxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsRUFBRTtnQkFDN0MsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFVBQVUsRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7YUFDNUQsQ0FBQyxDQUNIO1lBQ0wsS0FBSyxFQUFFLENBQ0wsV0FBMkQsRUFDM0QsU0FBOEIsRUFDOUIsRUFBRSxDQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDcEIsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFBO2dCQUN2RyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO2dCQUNyQyxzSEFBc0g7Z0JBQ3RILE1BQU07cUJBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQzNCLElBQUksQ0FDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUMxQixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU07cUJBQ0gsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtvQkFDMUIsSUFBSSxNQUFNLEdBQUcsTUFBTTt5QkFDaEIsUUFBUSxDQUFDLElBQUksY0FBYywrQkFBK0IsQ0FBQzt5QkFDM0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUMvRCxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNsQyxxQkFBcUIsRUFDckIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLG1CQUFtQixDQUNqQixDQUFDLEVBQ0QsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO3dCQUMxQyxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3RCLE1BQU0sRUFBRSxJQUFhO3dCQUNyQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxjQUFjLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO3FCQUMxRCxDQUFDLENBQ0gsRUFDSCxNQUFNO3lCQUNILFFBQVEsQ0FBQyxnQkFBZ0IsY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDdkQsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLFVBQVUsRUFBRTs0QkFDVixZQUFZLEVBQUUsY0FBYzs0QkFDNUIsaUJBQWlCLEVBQUUsU0FBUzs0QkFDNUIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBb0IsRUFBRSxFQUFFO2dDQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLFVBQVU7b0NBQzVCLENBQUMsQ0FBQyxZQUFZO29DQUNkLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFROzJDQUNwQixPQUFPLEtBQUssS0FBSyxRQUFROzJDQUN6QixPQUFPLEtBQUssS0FBSyxTQUFTO3dDQUNqQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRzs0Q0FDL0MsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDOzRDQUNuQyxDQUFDLENBQUMsS0FBSzt3Q0FDVCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7NENBQ3RCLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxNQUFNLEdBQUc7NENBQzFCLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTO2dEQUN2QyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUU7Z0RBQ1osQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLO29EQUNwQyxDQUFDLENBQUMsVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRztvREFDeEMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFBO2dDQUNoQixPQUFPLElBQUksQ0FBQTs0QkFDYixDQUFDLEVBQUUsRUFBK0MsQ0FBQzt5QkFDcEQ7cUJBQ0YsQ0FBQyxDQUNMLENBQUE7b0JBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7b0JBQ3hFLENBQUM7b0JBQ0QsT0FBTyxNQUFNLENBQUE7Z0JBQ2YsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtnQkFDTCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDYixNQUFNO3FCQUNILElBQUk7cUJBQ0osSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQixjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN4RjtnQkFDRCx5RkFBeUY7Z0JBQ3pGLHVJQUF1STtnQkFDdkkscUJBQXFCLEVBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQ2YsQ0FDSixDQUFBO1lBQ0gsQ0FBQyxDQUFDO1NBQzhCLENBQUE7SUFDdEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -16,13 +16,13 @@ export declare const QueueMaker: QueueMakerOps;
|
|
|
16
16
|
export declare const QueueMeta: import("@effect/schema/Schema").Struct<{
|
|
17
17
|
requestContext: typeof RequestContext;
|
|
18
18
|
span: S.PropertySignature<"?:", {
|
|
19
|
-
readonly sampled: boolean;
|
|
20
19
|
readonly spanId: string;
|
|
21
20
|
readonly traceId: string;
|
|
22
|
-
} | undefined, never, "?:", {
|
|
23
21
|
readonly sampled: boolean;
|
|
22
|
+
} | undefined, never, "?:", {
|
|
24
23
|
readonly spanId: string;
|
|
25
24
|
readonly traceId: string;
|
|
25
|
+
readonly sampled: boolean;
|
|
26
26
|
} | undefined, false, never>;
|
|
27
27
|
}>;
|
|
28
28
|
//# sourceMappingURL=service.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"proper-lockfile": "^4.1.2",
|
|
19
19
|
"pure-rand": "6.1.0",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
|
-
"@effect-app/core": "1.2.
|
|
22
|
-
"@effect-app/
|
|
23
|
-
"effect-app": "1.
|
|
24
|
-
"@effect-app/
|
|
21
|
+
"@effect-app/core": "1.2.1",
|
|
22
|
+
"@effect-app/schema": "1.2.3",
|
|
23
|
+
"effect-app": "1.4.1",
|
|
24
|
+
"@effect-app/infra-adapters": "1.2.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/cli": "^7.24.5",
|
|
28
|
-
"@sentry/node": "^
|
|
28
|
+
"@sentry/node": "^8.0.0",
|
|
29
29
|
"@types/express": "^4.17.21",
|
|
30
|
-
"@types/node": "~20.12.
|
|
30
|
+
"@types/node": "~20.12.12",
|
|
31
31
|
"@types/proper-lockfile": "^4.1.4",
|
|
32
32
|
"@types/redis": "^2.8.32",
|
|
33
33
|
"@types/redlock": "^4.0.7",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"express": "^4.19.2",
|
|
45
|
-
"@effect/platform": "^0.53.
|
|
46
|
-
"@effect/schema": "^0.67.
|
|
45
|
+
"@effect/platform": "^0.53.5",
|
|
46
|
+
"@effect/schema": "^0.67.2",
|
|
47
47
|
"effect": "^3.1.4"
|
|
48
48
|
},
|
|
49
49
|
"typesVersions": {
|
package/src/api/reportError.ts
CHANGED
|
@@ -2,43 +2,64 @@ import { RequestFiberSet, setRootParentSpan } from "@effect-app/infra-adapters/R
|
|
|
2
2
|
import { Cause, Effect } from "effect-app"
|
|
3
3
|
import { logError, reportError } from "../errorReporter.js"
|
|
4
4
|
|
|
5
|
+
// const onExitReportError = (name: string, unknownOnly?: boolean) => {
|
|
6
|
+
// const report = reportError(name)
|
|
7
|
+
// const log = logError(name)
|
|
8
|
+
// return <A, E, R>(self: Effect<A, E, R>) =>
|
|
9
|
+
// Effect.onExit(self, (exit) =>
|
|
10
|
+
// Exit.isFailure(exit)
|
|
11
|
+
// ? unknownOnly
|
|
12
|
+
// ? Cause.isInterruptedOnly(exit.cause) || Cause.isDie(exit.cause)
|
|
13
|
+
// ? report(exit.cause)
|
|
14
|
+
// : log(exit.cause)
|
|
15
|
+
// : report(exit.cause)
|
|
16
|
+
// : Effect.void)
|
|
17
|
+
// }
|
|
18
|
+
const tapErrorCause = (name: string, unknownOnly?: boolean) => {
|
|
19
|
+
const report = reportError(name)
|
|
20
|
+
const log = logError(name)
|
|
21
|
+
return <A, E, R>(self: Effect<A, E, R>) =>
|
|
22
|
+
Effect.tapErrorCause(self, (cause) =>
|
|
23
|
+
unknownOnly
|
|
24
|
+
? Cause.isFailure(cause)
|
|
25
|
+
? log(cause)
|
|
26
|
+
: report(cause)
|
|
27
|
+
: report(cause))
|
|
28
|
+
}
|
|
29
|
+
const reportRequestError = tapErrorCause("request")
|
|
30
|
+
const reportUnknownRequestError = tapErrorCause("request", true)
|
|
31
|
+
|
|
5
32
|
/**
|
|
6
|
-
* Forks the effect into a new fiber attached to the
|
|
7
|
-
* new fiber
|
|
33
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
34
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
8
35
|
* returned effect terminates, the forked fiber will continue running.
|
|
36
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
9
37
|
*
|
|
38
|
+
* The parent span is set to the root span of the current fiber.
|
|
10
39
|
* Reports errors.
|
|
11
|
-
*
|
|
12
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
13
40
|
*/
|
|
14
41
|
export function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>) {
|
|
15
42
|
return self.pipe(
|
|
16
|
-
|
|
43
|
+
reportRequestError,
|
|
17
44
|
setRootParentSpan,
|
|
18
|
-
|
|
19
|
-
Effect.tap(RequestFiberSet.add)
|
|
45
|
+
RequestFiberSet.run
|
|
20
46
|
)
|
|
21
47
|
}
|
|
22
48
|
|
|
23
49
|
/**
|
|
24
|
-
* Forks the effect into a new fiber attached to the
|
|
25
|
-
* new fiber
|
|
50
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
51
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
26
52
|
* returned effect terminates, the forked fiber will continue running.
|
|
53
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
27
54
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
55
|
+
* The parent span is set to the root span of the current fiber.
|
|
56
|
+
* Reports unexpected errors.
|
|
31
57
|
*/
|
|
32
58
|
export function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>) {
|
|
33
59
|
return self
|
|
34
60
|
.pipe(
|
|
35
|
-
|
|
36
|
-
Cause.isInterruptedOnly(cause) || Cause.isDie(cause)
|
|
37
|
-
? reportError("request")(cause)
|
|
38
|
-
: logError("request")(cause)
|
|
39
|
-
),
|
|
61
|
+
reportUnknownRequestError,
|
|
40
62
|
setRootParentSpan,
|
|
41
|
-
|
|
42
|
-
Effect.tap(RequestFiberSet.add)
|
|
63
|
+
RequestFiberSet.run
|
|
43
64
|
)
|
|
44
65
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { setRootParentSpan } from "@effect-app/infra-adapters/RequestFiberSet"
|
|
2
2
|
import { reportError } from "@effect-app/infra/errorReporter"
|
|
3
3
|
import { Cause, Effect, Exit } from "effect-app"
|
|
4
|
+
import { MainFiberSet } from "effect-app/services/MainFiberSet"
|
|
4
5
|
|
|
5
6
|
const reportQueueError_ = reportError("Queue")
|
|
6
7
|
|
|
@@ -8,19 +9,22 @@ export const reportQueueError = <E>(cause: Cause<E>, extras?: Record<string, unk
|
|
|
8
9
|
reportQueueError_(cause, extras)
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
|
-
* Forks the effect into a new fiber attached to the
|
|
12
|
-
* new fiber
|
|
12
|
+
* Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
|
|
13
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
13
14
|
* returned effect terminates, the forked fiber will continue running.
|
|
15
|
+
* The fiber will be interrupted when the MainFiberSet scope is closed.
|
|
14
16
|
*
|
|
15
|
-
*
|
|
17
|
+
* The parent span is set to the root span of the current fiber.
|
|
18
|
+
* Reports and then swallows errors.
|
|
16
19
|
*
|
|
17
20
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
18
21
|
*/
|
|
19
|
-
export function forkDaemonReportQueue<
|
|
22
|
+
export function forkDaemonReportQueue<A, E, R>(self: Effect<A, E, R>) {
|
|
20
23
|
return self.pipe(
|
|
21
|
-
Effect.
|
|
24
|
+
Effect.asVoid,
|
|
25
|
+
Effect.catchAllCause(reportNonInterruptedFailureCause({})),
|
|
22
26
|
setRootParentSpan,
|
|
23
|
-
|
|
27
|
+
MainFiberSet.run
|
|
24
28
|
)
|
|
25
29
|
}
|
|
26
30
|
|
|
@@ -30,17 +34,15 @@ export const reportFatalQueueError = reportError(
|
|
|
30
34
|
|
|
31
35
|
export function reportNonInterruptedFailure(context?: Record<string, unknown>) {
|
|
32
36
|
const report = reportNonInterruptedFailureCause(context)
|
|
33
|
-
return <
|
|
37
|
+
return <A, E, R>(inp: Effect<A, E, R>): Effect<Exit<A, E>, never, R> =>
|
|
34
38
|
inp.pipe(
|
|
35
|
-
Effect
|
|
36
|
-
.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
})
|
|
43
|
-
)
|
|
39
|
+
Effect.onExit(
|
|
40
|
+
Exit.match({
|
|
41
|
+
onFailure: report,
|
|
42
|
+
onSuccess: () => Effect.void
|
|
43
|
+
})
|
|
44
|
+
),
|
|
45
|
+
Effect.exit
|
|
44
46
|
)
|
|
45
47
|
}
|
|
46
48
|
|
|
@@ -61,7 +61,7 @@ export function makeMemQueue<
|
|
|
61
61
|
),
|
|
62
62
|
drain: <DrainE, DrainR>(
|
|
63
63
|
handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>,
|
|
64
|
-
sessionId?: string
|
|
64
|
+
sessionId?: string | undefined
|
|
65
65
|
) =>
|
|
66
66
|
Effect.gen(function*($) {
|
|
67
67
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName })
|