@effect-app/infra 1.40.0 → 1.41.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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 1.41.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 2b3bccc: fix up accessors
8
+
9
+ ## 1.41.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 3d4e45a: cleanup FiberSets
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [3d4e45a]
18
+ - @effect-app/infra-adapters@1.20.0
19
+ - effect-app@1.29.0
20
+
3
21
  ## 1.40.0
4
22
 
5
23
  ### Minor Changes
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.forkDaemonReportRequest = forkDaemonReportRequest;
7
- exports.forkDaemonReportRequestUnexpected = forkDaemonReportRequestUnexpected;
8
- var _RequestFiberSet = require("@effect-app/infra-adapters/RequestFiberSet");
6
+ exports.reportUnknownRequestError = exports.reportRequestError = void 0;
9
7
  var _effectApp = require("effect-app");
10
8
  var _errorReporter = require("../errorReporter.cjs");
11
9
  // const onExitReportError = (name: string, unknownOnly?: boolean) => {
@@ -26,30 +24,6 @@ const tapErrorCause = (name, unknownOnly) => {
26
24
  const log = (0, _errorReporter.logError)(name);
27
25
  return self => _effectApp.Effect.tapErrorCause(self, cause => unknownOnly ? _effectApp.Cause.isFailure(cause) ? log(cause) : report(cause) : report(cause));
28
26
  };
29
- const reportRequestError = tapErrorCause("request");
30
- const reportUnknownRequestError = tapErrorCause("request", true);
31
- /**
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
34
- * returned effect terminates, the forked fiber will continue running.
35
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
36
- *
37
- * The parent span is set to the root span of the current fiber.
38
- * Reports errors.
39
- */
40
- function forkDaemonReportRequest(self) {
41
- return self.pipe(reportRequestError, _RequestFiberSet.setRootParentSpan, _effectApp.Effect.uninterruptible, _RequestFiberSet.RequestFiberSet.run);
42
- }
43
- /**
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
46
- * returned effect terminates, the forked fiber will continue running.
47
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
48
- *
49
- * The parent span is set to the root span of the current fiber.
50
- * Reports unexpected errors.
51
- */
52
- function forkDaemonReportRequestUnexpected(self) {
53
- return self.pipe(reportUnknownRequestError, _RequestFiberSet.setRootParentSpan, _effectApp.Effect.uninterruptible, _RequestFiberSet.RequestFiberSet.run);
54
- }
27
+ const reportRequestError = exports.reportRequestError = tapErrorCause("request");
28
+ const reportUnknownRequestError = exports.reportUnknownRequestError = tapErrorCause("request", true);
55
29
  //# sourceMappingURL=reportError.cjs.map
@@ -1 +1 @@
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","uninterruptible","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,EACjBR,iBAAM,CAACS,eAAe,EACtBC,gCAAe,CAACC,GAAG,CACpB;AACH;AAEA;;;;;;;;;AASM,SAAUC,iCAAiCA,CAAUb,IAAqB;EAC9E,OAAOA,IAAI,CACRQ,IAAI,CACHF,yBAAyB,EACzBG,kCAAiB,EACjBR,iBAAM,CAACS,eAAe,EACtBC,gCAAe,CAACC,GAAG,CACpB;AACL","ignoreList":[]}
1
+ {"version":3,"file":"reportError.cjs","names":["_effectApp","require","_errorReporter","tapErrorCause","name","unknownOnly","report","reportError","log","logError","self","Effect","cause","Cause","isFailure","reportRequestError","exports","reportUnknownRequestError"],"sources":["../../src/api/reportError.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,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;AACM,MAAMG,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGZ,aAAa,CAAC,SAAS,CAAC;AACnD,MAAMc,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAGd,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MainFiberSet = void 0;
7
+ var _core = require("@effect-app/core");
8
+ var _logger = require("../logger.cjs");
9
+ var _errors = require("./QueueMaker/errors.cjs");
10
+ var _RequestFiberSet = require("./RequestFiberSet.cjs");
11
+ const make = _core.Effect.gen(function* () {
12
+ const set = yield* _core.FiberSet.make();
13
+ const add = (...fibers) => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
14
+ const addAll = fibers => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
15
+ const join = _core.FiberSet.size(set).pipe(_core.Effect.andThen(count => _logger.InfraLogger.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), _core.Effect.andThen(_core.FiberSet.join(set)));
16
+ const run = _core.FiberSet.run(set);
17
+ // const waitUntilEmpty = Effect.gen(function*() {
18
+ // const currentSize = yield* FiberSet.size(set)
19
+ // if (currentSize === 0) {
20
+ // return
21
+ // }
22
+ // yield* InfraLogger.logInfo("Waiting MainFiberSet to be empty: " + currentSize)
23
+ // while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
24
+ // yield* InfraLogger.logDebug("MainFiberSet is empty")
25
+ // })
26
+ // TODO: loop and interrupt all fibers in the set continuously?
27
+ const interrupt = _core.Fiber.interruptAll(set);
28
+ /**
29
+ * Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
30
+ * new fiber isn't attached to the parent, when the fiber executing the
31
+ * returned effect terminates, the forked fiber will continue running.
32
+ * The fiber will be interrupted when the MainFiberSet scope is closed.
33
+ *
34
+ * The parent span is set to the root span of the current fiber.
35
+ * Reports and then swallows errors.
36
+ */
37
+ function forkDaemonReport(self) {
38
+ return self.pipe(_core.Effect.asVoid, _core.Effect.catchAllCause((0, _errors.reportNonInterruptedFailureCause)({})), _RequestFiberSet.setRootParentSpan, _core.Effect.uninterruptible, run);
39
+ }
40
+ return {
41
+ interrupt,
42
+ join,
43
+ forkDaemonReport,
44
+ run,
45
+ add,
46
+ addAll
47
+ };
48
+ });
49
+ /**
50
+ * Whenever you fork long running (e.g worker) fibers via e.g `Effect.forkScoped` or `Effect.forkDaemon`
51
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
52
+ * This way any errors will blow up the main program instead of fibers dying unknowingly.
53
+ */
54
+ class MainFiberSet extends _core.Context.TagMakeId("MainFiberSet", make)() {
55
+ static Live = this.toLayerScoped();
56
+ static JoinLive = this.pipe(_core.Effect.andThen(_ => _.join), _core.Layer.effectDiscard, _core.Layer.provide(this.Live));
57
+ static run = self => this.use(_ => _.run(self));
58
+ static forkDaemonReport = self => this.use(_ => _.forkDaemonReport(self));
59
+ }
60
+ exports.MainFiberSet = MainFiberSet;
61
+ //# sourceMappingURL=MainFiberSet.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainFiberSet.cjs","names":["_core","require","_logger","_errors","_RequestFiberSet","make","Effect","gen","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","pipe","andThen","count","InfraLogger","logDebug","run","interrupt","Fiber","interruptAll","forkDaemonReport","self","asVoid","catchAllCause","reportNonInterruptedFailureCause","setRootParentSpan","uninterruptible","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","use"],"sources":["../../src/services/MainFiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAEA,MAAMI,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,aAAS;EAC/B,MAAMC,GAAG,GAAG,OAAOC,cAAQ,CAACJ,IAAI,EAAkB;EAClD,MAAMK,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDL,YAAM,CAACM,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIL,MAAmD,IACjEL,YAAM,CAACM,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAMG,IAAI,GAAGR,cAAQ,CAACS,IAAI,CAACV,GAAG,CAAC,CAACW,IAAI,CAClCb,YAAM,CAACc,OAAO,CAAEC,KAAK,IAAKC,mBAAW,CAACC,QAAQ,CAAC,WAAWF,KAAK,qCAAqC,CAAC,CAAC,EACtGf,YAAM,CAACc,OAAO,CAACX,cAAQ,CAACQ,IAAI,CAACT,GAAG,CAAC,CAAC,CACnC;EACD,MAAMgB,GAAG,GAAGf,cAAQ,CAACe,GAAG,CAAChB,GAAG,CAAC;EAE7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA,MAAMiB,SAAS,GAAGC,WAAK,CAACC,YAAY,CAACnB,GAAG,CAAC;EAEzC;;;;;;;;;EASA,SAASoB,gBAAgBA,CAAUC,IAAqB;IACtD,OAAOA,IAAI,CAACV,IAAI,CACdb,YAAM,CAACwB,MAAM,EACbxB,YAAM,CAACyB,aAAa,CAAC,IAAAC,wCAAgC,EAAC,EAAE,CAAC,CAAC,EAC1DC,kCAAiB,EACjB3B,YAAM,CAAC4B,eAAe,EACtBV,GAAG,CACJ;EACH;EACA,OAAO;IACLC,SAAS;IACTR,IAAI;IACJW,gBAAgB;IAChBJ,GAAG;IACHd,GAAG;IACHM;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOmB,YAAa,SAAQC,aAAO,CAACC,SAAS,CAAC,cAAc,EAAEhC,IAAI,CAAC,EAAgB;EACvF,OAAgBiC,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACrB,IAAI,CAACb,YAAM,CAACc,OAAO,CAAEN,CAAC,IAAKA,CAAC,CAACG,IAAI,CAAC,EAAEwB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBd,GAAG,GAAUK,IAAyB,IAAK,IAAI,CAACe,GAAG,CAAE9B,CAAC,IAAKA,CAAC,CAACU,GAAG,CAACK,IAAI,CAAC,CAAC;EACvF,OAAgBD,gBAAgB,GAAaC,IAAqB,IAAK,IAAI,CAACe,GAAG,CAAE9B,CAAC,IAAKA,CAAC,CAACc,gBAAgB,CAACC,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -3,22 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.forkOperation = exports.Operations = void 0;
7
- exports.forkOperationFunction = forkOperationFunction;
6
+ exports.Operations = void 0;
8
7
  var _Effect = require("@effect-app/core/Effect");
9
8
  var _Function = require("@effect-app/core/Function");
10
- var _RequestFiberSet = require("@effect-app/infra-adapters/RequestFiberSet");
11
9
  var _errorReporter = require("@effect-app/infra/errorReporter");
12
10
  var _schema = require("@effect-app/schema");
13
11
  var _dateFns = require("date-fns");
14
12
  var _effectApp = require("effect-app");
15
13
  var _Operations = require("effect-app/Operations");
16
- var _MainFiberSet = require("effect-app/services/MainFiberSet");
17
14
  var Scope = _interopRequireWildcard(require("effect/Scope"));
18
- var _reportError = require("../api/reportError.cjs");
19
15
  var _rateLimit = require("../rateLimit.cjs");
16
+ var _MainFiberSet = require("./MainFiberSet.cjs");
20
17
  var _OperationsRepo = require("./OperationsRepo.cjs");
21
18
  var _query = require("./query.cjs");
19
+ var _RequestFiberSet = require("./RequestFiberSet.cjs");
22
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
22
  const reportAppError = (0, _errorReporter.reportError)("Operations.Cleanup");
@@ -52,22 +50,31 @@ const make = _effectApp.Effect.gen(function* () {
52
50
  })).pipe(_effectApp.Effect.orDie));
53
51
  }
54
52
  function fork(self, fnc, title) {
55
- return _effectApp.Effect.flatMap(Scope.make(), scope => register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => (0, _reportError.forkDaemonReportRequestUnexpected)(Scope.use(self(id).pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
53
+ return _effectApp.Effect.flatMap(Scope.make(), scope => register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => reqFiberSet.forkDaemonReportUnexpected(Scope.use(self(id).pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
56
54
  fiber,
57
55
  id
58
56
  })))), _effectApp.Effect.tap(({
59
57
  id
60
58
  }) => _effectApp.Effect.interruptible(fnc(id)).pipe(_effectApp.Effect.forkScoped, Scope.extend(scope))))).pipe(_effectApp.Effect.provideService(_RequestFiberSet.RequestFiberSet, reqFiberSet));
61
59
  }
62
- const fork2 = (0, _Function.dual)(2, (self, title) => _effectApp.Effect.flatMap(Scope.make(), scope => register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => (0, _reportError.forkDaemonReportRequestUnexpected)(Scope.use(self(id).pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
60
+ const fork2 = (0, _Function.dual)(2, (self, title) => _effectApp.Effect.flatMap(Scope.make(), scope => register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => reqFiberSet.forkDaemonReportUnexpected(Scope.use(self(id).pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
63
61
  fiber,
64
62
  id
65
63
  })))))));
64
+ const forkOperation = (0, _Function.dual)(2, (self, title) => _effectApp.Effect.flatMap(Scope.make(), scope => register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => reqFiberSet.forkDaemonReportUnexpected(Scope.use(self.pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
65
+ fiber,
66
+ id
67
+ })))))));
68
+ function forkOperationFunction(fnc, title) {
69
+ return inp => fnc(inp).pipe(_ => forkOperation(_, title));
70
+ }
66
71
  return {
67
72
  cleanup,
68
73
  register,
69
74
  fork,
70
75
  fork2,
76
+ forkOperation,
77
+ forkOperationFunction,
71
78
  all: repo.all,
72
79
  find: findOp,
73
80
  update
@@ -84,11 +91,4 @@ class Operations extends _effectApp.Context.TagMakeId("effect-app/Operations", m
84
91
  static Live = this.CleanupLive.pipe(_effectApp.Layer.provideMerge(this.toLayer()), _effectApp.Layer.provide(_RequestFiberSet.RequestFiberSet.Live));
85
92
  }
86
93
  exports.Operations = Operations;
87
- const forkOperation = exports.forkOperation = (0, _Function.dual)(2, (self, title) => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => (0, _reportError.forkDaemonReportRequestUnexpected)(Scope.use(self.pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
88
- fiber,
89
- id
90
- })))))));
91
- function forkOperationFunction(fnc, title) {
92
- return inp => fnc(inp).pipe(_ => forkOperation(_, title));
93
- }
94
94
  //# sourceMappingURL=Operations.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Operations.cjs","names":["_Effect","require","_Function","_RequestFiberSet","_errorReporter","_schema","_dateFns","_effectApp","_Operations","_MainFiberSet","Scope","_interopRequireWildcard","_reportError","_rateLimit","_OperationsRepo","_query","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportAppError","reportError","make","Effect","gen","repo","OperationsRepo","reqFiberSet","RequestFiberSet","makeOp","sync","OperationId","register","title","tap","id","andThen","annotateLogscoped","acquireRelease","addOp","_","exit","finishOp","cleanup","subHours","Date","pipe","before","query","where","toISOString","ops","batch","succeed","items","removeAndPublish","withSpan","save","Operation","orDie","findOp","find","flatMap","copy","updatedAt","result","Exit","isSuccess","Success","Failure","message","Cause","isInterrupted","cause","NonEmptyString2k","isDie","failureOption","Option","S","is","some","none","getOrNull","update","progress","fork","self","fnc","scope","extend","forkDaemonReportRequestUnexpected","use","map","fiber","interruptible","forkScoped","provideService","fork2","dual","all","Operations","Context","TagMakeId","CleanupLive","void","schedule","Schedule","fixed","Duration","minutes","MainFiberSet","run","Layer","effectDiscard","provide","Live","provideMerge","toLayer","forkOperation","exports","forkOperationFunction","inp"],"sources":["../../src/services/Operations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Operations.cjs","names":["_Effect","require","_Function","_errorReporter","_schema","_dateFns","_effectApp","_Operations","Scope","_interopRequireWildcard","_rateLimit","_MainFiberSet","_OperationsRepo","_query","_RequestFiberSet","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportAppError","reportError","make","Effect","gen","repo","OperationsRepo","reqFiberSet","RequestFiberSet","makeOp","sync","OperationId","register","title","tap","id","andThen","annotateLogscoped","acquireRelease","addOp","_","exit","finishOp","cleanup","subHours","Date","pipe","before","query","where","toISOString","ops","batch","succeed","items","removeAndPublish","withSpan","save","Operation","orDie","findOp","find","flatMap","copy","updatedAt","result","Exit","isSuccess","Success","Failure","message","Cause","isInterrupted","cause","NonEmptyString2k","isDie","failureOption","Option","S","is","some","none","getOrNull","update","progress","fork","self","fnc","scope","extend","forkDaemonReportUnexpected","use","map","fiber","interruptible","forkScoped","provideService","fork2","dual","forkOperation","forkOperationFunction","inp","all","Operations","Context","TagMakeId","CleanupLive","void","schedule","Schedule","fixed","Duration","minutes","MainFiberSet","run","Layer","effectDiscard","provide","Live","provideMerge","toLayer"],"sources":["../../src/services/Operations.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAC,uBAAA,CAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,gBAAA,GAAAb,OAAA;AAAsD,SAAAc,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEtD,MAAMW,cAAc,GAAG,IAAAC,0BAAW,EAAC,oBAAoB,CAAC;AAExD,MAAMC,IAAI,GAAGC,iBAAM,CAACC,GAAG,CAAC,aAAS;EAC/B,MAAMC,IAAI,GAAG,OAAOC,8BAAc;EAClC,MAAMC,WAAW,GAAG,OAAOC,gCAAe;EAC1C,MAAMC,MAAM,GAAGN,iBAAM,CAACO,IAAI,CAAC,MAAMC,uBAAW,CAACT,IAAI,EAAE,CAAC;EAEpD,MAAMU,QAAQ,GAAIC,KAAuB,IACvCV,iBAAM,CAACW,GAAG,CACRL,MAAM,EACLM,EAAE,IACDZ,iBAAM,CAACa,OAAO,CACZ,IAAAC,yBAAiB,EAAC,aAAa,EAAEF,EAAE,CAAC,EACpCZ,iBAAM,CAACe,cAAc,CAACC,KAAK,CAACJ,EAAE,EAAEF,KAAK,CAAC,EAAE,CAACO,CAAC,EAAEC,IAAI,KAAKC,QAAQ,CAACP,EAAE,EAAEM,IAAI,CAAC,CAAC,CACzE,CACJ;EAEH,MAAME,OAAO,GAAGpB,iBAAM,CAACO,IAAI,CAAC,MAAM,IAAAc,iBAAQ,EAAC,IAAIC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAC7DvB,iBAAM,CAACa,OAAO,CAAEW,MAAM,IAAKtB,IAAI,CAACuB,KAAK,CAAC,IAAAC,YAAK,EAAC,WAAW,EAAE,IAAI,EAAEF,MAAM,CAACG,WAAW,EAAE,CAAC,CAAC,CAAC,EACtF3B,iBAAM,CAACa,OAAO,CAAEe,GAAG,IAAK,IAAAL,cAAI,EAACK,GAAG,EAAE,IAAAC,gBAAK,EAAC,GAAG,EAAE7B,iBAAM,CAAC8B,OAAO,EAAGC,KAAK,IAAK7B,IAAI,CAAC8B,gBAAgB,CAACD,KAAK,CAAC,CAAC,CAAC,CAAC,EACvG/B,iBAAM,CAACiC,QAAQ,CAAC,oBAAoB,CAAC,CACtC;EAED,SAASjB,KAAKA,CAACJ,EAAe,EAAEF,KAAuB;IACrD,OAAOR,IAAI,CAACgC,IAAI,CAAC,IAAIC,qBAAS,CAAC;MAAEvB,EAAE;MAAEF;IAAK,CAAE,CAAC,CAAC,CAACa,IAAI,CAACvB,iBAAM,CAACoC,KAAK,CAAC;EACnE;EACA,SAASC,MAAMA,CAACzB,EAAe;IAC7B,OAAOV,IAAI,CAACoC,IAAI,CAAC1B,EAAE,CAAC;EACtB;EACA,SAASO,QAAQA,CAACP,EAAe,EAAEM,IAA4B;IAC7D,OAAOlB,iBAAM,CACVuC,OAAO,CAACrC,IAAI,CAACjB,GAAG,CAAC2B,EAAE,CAAC,CAACW,IAAI,CAACvB,iBAAM,CAACoC,KAAK,CAAC,EAAGnB,CAAC,IAC1Cf,IAAI,CACDgC,IAAI,CACH,IAAAM,eAAI,EAACvB,CAAC,EAAE;MACNwB,SAAS,EAAE,IAAInB,IAAI,EAAE;MACrBoB,MAAM,EAAEC,eAAI,CAACC,SAAS,CAAC1B,IAAI,CAAC,GACxB,IAAI2B,mBAAO,EAAE,GACb,IAAIC,mBAAO,CAAC;QACZC,OAAO,EAAEC,gBAAK,CAACC,aAAa,CAAC/B,IAAI,CAACgC,KAAK,CAAC,GACpC,IAAAC,wBAAgB,EAAC,aAAa,CAAC,GAC/BH,gBAAK,CAACI,KAAK,CAAClC,IAAI,CAACgC,KAAK,CAAC,GACvB,IAAAC,wBAAgB,EAAC,eAAe,CAAC,GACjCH,gBAAK,CACJK,aAAa,CAACnC,IAAI,CAACgC,KAAK,CAAC,CACzB3B,IAAI,CACH+B,iBAAM,CAACf,OAAO,CAAEtB,CAAC,IACf,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAI,SAAS,IAAIA,CAAC,IAAIsC,YAAC,CAACC,EAAE,CAACL,wBAAgB,CAAC,CAAClC,CAAC,CAAC8B,OAAO,CAAC,GACtFO,iBAAM,CAACG,IAAI,CAACxC,CAAC,CAAC8B,OAAO,CAAC,GACtBO,iBAAM,CAACI,IAAI,EAAE,CAClB,EACDJ,iBAAM,CAACK,SAAS;OAEvB;KACJ,CAAC,CACH,CACApC,IAAI,CAACvB,iBAAM,CAACoC,KAAK,CAAC,CAAC;EAC5B;EACA,SAASwB,MAAMA,CAAChD,EAAe,EAAEiD,QAA2B;IAC1D,OAAO7D,iBAAM,CAACuC,OAAO,CACnBrC,IAAI,CAACjB,GAAG,CAAC2B,EAAE,CAAC,CAACW,IAAI,CAACvB,iBAAM,CAACoC,KAAK,CAAC,EAC9BnB,CAAC,IAAKf,IAAI,CAACgC,IAAI,CAAC,IAAAM,eAAI,EAACvB,CAAC,EAAE;MAAEwB,SAAS,EAAE,IAAInB,IAAI,EAAE;MAAEuC;IAAQ,CAAE,CAAC,CAAC,CAACtC,IAAI,CAACvB,iBAAM,CAACoC,KAAK,CAAC,CAClF;EACH;EAEA,SAAS0B,IAAIA,CACXC,IAA0C,EAC1CC,GAA4C,EAC5CtD,KAAuB;IAMvB,OAAOV,iBAAM,CACVuC,OAAO,CACNrE,KAAK,CAAC6B,IAAI,EAAE,EACXkE,KAAK,IACJxD,QAAQ,CAACC,KAAK,CAAC,CACZa,IAAI,CACHrD,KAAK,CAACgG,MAAM,CAACD,KAAK,CAAC,EACnBjE,iBAAM,CAACuC,OAAO,CAAE3B,EAAE,IAChBR,WAAW,CACR+D,0BAA0B,CAACjG,KAAK,CAACkG,GAAG,CACnCL,IAAI,CAACnD,EAAE,CAAC,CAACW,IAAI,CAACvB,iBAAM,CAACiC,QAAQ,CAACvB,KAAK,CAAC,CAAC,EACrCuD,KAAK,CACN,CAAC,CACD1C,IAAI,CAACvB,iBAAM,CAACqE,GAAG,CAAEC,KAAK,KAA8B;MAAEA,KAAK;MAAE1D;IAAE,CAAE,CAAC,CAAC,CAAC,CACxE,EACDZ,iBAAM,CAACW,GAAG,CAAC,CAAC;MAAEC;IAAE,CAAE,KAChBZ,iBAAM,CAACuE,aAAa,CAACP,GAAG,CAACpD,EAAE,CAAC,CAAC,CAACW,IAAI,CAChCvB,iBAAM,CAACwE,UAAU,EACjBtG,KAAK,CAACgG,MAAM,CAACD,KAAK,CAAC,CACpB,CACF,CACF,CACN,CACA1C,IAAI,CAACvB,iBAAM,CAACyE,cAAc,CAACpE,gCAAe,EAAED,WAAW,CAAC,CAAC;EAC9D;EAEA,MAAMsE,KAAK,GAQP,IAAAC,cAAI,EACN,CAAC,EACD,CAAUZ,IAA4C,EAAErD,KAAuB,KAC7EV,iBAAM,CAACuC,OAAO,CACZrE,KAAK,CAAC6B,IAAI,EAAE,EACXkE,KAAK,IACJxD,QAAQ,CAACC,KAAK,CAAC,CACZa,IAAI,CACHrD,KAAK,CAACgG,MAAM,CAACD,KAAK,CAAC,EACnBjE,iBAAM,CACHuC,OAAO,CAAE3B,EAAE,IACVR,WAAW,CACR+D,0BAA0B,CAACjG,KAAK,CAACkG,GAAG,CACnCL,IAAI,CAACnD,EAAE,CAAC,CAACW,IAAI,CAACvB,iBAAM,CAACiC,QAAQ,CAACvB,KAAK,CAAC,CAAC,EACrCuD,KAAK,CACN,CAAC,CACD1C,IAAI,CAACvB,iBAAM,CAACqE,GAAG,CAAEC,KAAK,KAA8B;IAAEA,KAAK;IAAE1D;EAAE,CAAE,CAAC,CAAC,CAAC,CACxE,CACJ,CACN,CACJ;EAED,MAAMgE,aAAa,GAQf,IAAAD,cAAI,EACN,CAAC,EACD,CAAUZ,IAAqB,EAAErD,KAAuB,KACtDV,iBAAM,CAACuC,OAAO,CACZrE,KAAK,CAAC6B,IAAI,EAAE,EACXkE,KAAK,IACJxD,QAAQ,CAACC,KAAK,CAAC,CACZa,IAAI,CACHrD,KAAK,CAACgG,MAAM,CAACD,KAAK,CAAC,EACnBjE,iBAAM,CACHuC,OAAO,CAAE3B,EAAE,IACVR,WAAW,CACR+D,0BAA0B,CAACjG,KAAK,CAACkG,GAAG,CACnCL,IAAI,CAACxC,IAAI,CAACvB,iBAAM,CAACiC,QAAQ,CAACvB,KAAK,CAAC,CAAC,EACjCuD,KAAK,CACN,CAAC,CACD1C,IAAI,CAACvB,iBAAM,CAACqE,GAAG,CAAEC,KAAK,KAA8B;IAAEA,KAAK;IAAE1D;EAAE,CAAE,CAAC,CAAC,CAAC,CACxE,CACJ,CACN,CACJ;EAED,SAASiE,qBAAqBA,CAAeb,GAAkC,EAAEtD,KAAuB;IACtG,OAAQoE,GAAQ,IAAKd,GAAG,CAACc,GAAG,CAAC,CAACvD,IAAI,CAAEN,CAAC,IAAK2D,aAAa,CAAC3D,CAAC,EAAEP,KAAK,CAAC,CAAC;EACpE;EAEA,OAAO;IACLU,OAAO;IACPX,QAAQ;IACRqD,IAAI;IACJY,KAAK;IACLE,aAAa;IACbC,qBAAqB;IACrBE,GAAG,EAAE7E,IAAI,CAAC6E,GAAG;IACbzC,IAAI,EAAED,MAAM;IACZuB;GACD;AACH,CAAC,CAAC;AAEI,MAAOoB,UAAW,SAAQC,kBAAO,CAACC,SAAS,CAAC,uBAAuB,EAAEnF,IAAI,CAAC,EAAc;EACpF,OAAgBoF,WAAW,GAAG,IAAI,CACvCf,GAAG,CAAEnD,CAAC,IACLA,CAAC,CAACG,OAAO,CAACG,IAAI,CACZvB,iBAAM,CAACkB,IAAI,EACXlB,iBAAM,CACHuC,OAAO,CAAEtB,CAAC,IAAI;IACb,IAAI0B,eAAI,CAACC,SAAS,CAAC3B,CAAC,CAAC,EAAE;MACrB,OAAOjB,iBAAM,CAACoF,IAAI;IACpB,CAAC,MAAM;MACL,OAAOvF,cAAc,CAACoB,CAAC,CAACiC,KAAK,CAAC;IAChC;EACF,CAAC,CAAC,EACJlD,iBAAM,CAACqF,QAAQ,CAACC,mBAAQ,CAACC,KAAK,CAACC,mBAAQ,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EACrDzF,iBAAM,CAACqE,GAAG,CAAEpD,CAAC,IAAKA,CAAU,CAAC,EAC7ByE,0BAAY,CAACC,GAAG,CACjB,CACF,CACApE,IAAI,CAACqE,gBAAK,CAACC,aAAa,EAAED,gBAAK,CAACE,OAAO,CAACJ,0BAAY,CAACK,IAAI,CAAC,CAAC;EAE9D,OAAgBA,IAAI,GAAG,IAAI,CAACZ,WAAW,CAAC5D,IAAI,CAACqE,gBAAK,CAACI,YAAY,CAAC,IAAI,CAACC,OAAO,EAAE,CAAC,EAAEL,gBAAK,CAACE,OAAO,CAACzF,gCAAe,CAAC0F,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -3,33 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.forkDaemonReportQueue = forkDaemonReportQueue;
7
- exports.reportFatalQueueError = void 0;
8
6
  exports.reportNonInterruptedFailure = reportNonInterruptedFailure;
9
7
  exports.reportNonInterruptedFailureCause = reportNonInterruptedFailureCause;
10
8
  exports.reportQueueError = void 0;
11
- var _RequestFiberSet = require("@effect-app/infra-adapters/RequestFiberSet");
12
9
  var _errorReporter = require("@effect-app/infra/errorReporter");
13
10
  var _effectApp = require("effect-app");
14
- var _MainFiberSet = require("effect-app/services/MainFiberSet");
15
11
  const reportQueueError_ = (0, _errorReporter.reportError)("Queue");
16
12
  const reportQueueError = (cause, extras) => reportQueueError_(cause, extras);
17
- /**
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
20
- * returned effect terminates, the forked fiber will continue running.
21
- * The fiber will be interrupted when the MainFiberSet scope is closed.
22
- *
23
- * The parent span is set to the root span of the current fiber.
24
- * Reports and then swallows errors.
25
- *
26
- * @tsplus getter effect/io/Effect forkDaemonReportQueue
27
- */
28
13
  exports.reportQueueError = reportQueueError;
29
- function forkDaemonReportQueue(self) {
30
- return self.pipe(_effectApp.Effect.asVoid, _effectApp.Effect.catchAllCause(reportNonInterruptedFailureCause({})), _RequestFiberSet.setRootParentSpan, _effectApp.Effect.uninterruptible, _MainFiberSet.MainFiberSet.run);
31
- }
32
- const reportFatalQueueError = exports.reportFatalQueueError = (0, _errorReporter.reportError)("FatalQueue");
33
14
  function reportNonInterruptedFailure(context) {
34
15
  const report = reportNonInterruptedFailureCause(context);
35
16
  return inp => inp.pipe(_effectApp.Effect.onExit(_effectApp.Exit.match({
@@ -1 +1 @@
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","uninterruptible","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,MAAgC,KACnFJ,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,EACjBJ,iBAAM,CAACK,eAAe,EACtBC,0BAAY,CAACC,GAAG,CACjB;AACH;AAEO,MAAMC,qBAAqB,GAAAZ,OAAA,CAAAY,qBAAA,GAAG,IAAAhB,0BAAW,EAC9C,YAAY,CACb;AAEK,SAAUiB,2BAA2BA,CAACC,OAAiC;EAC3E,MAAMC,MAAM,GAAGR,gCAAgC,CAACO,OAAO,CAAC;EACxD,OAAiBE,GAAoB,IACnCA,GAAG,CAACb,IAAI,CACNC,iBAAM,CAACa,MAAM,CACXC,eAAI,CAACC,KAAK,CAAC;IACTC,SAAS,EAAEL,MAAM;IACjBM,SAAS,EAAEA,CAAA,KAAMjB,iBAAM,CAACkB;GACzB,CAAC,CACH,EACDlB,iBAAM,CAACmB,IAAI,CACZ;AACL;AAEM,SAAUhB,gCAAgCA,CAACO,OAAiC;EAChF,OAAWhB,KAAe,IAAkB;IAC1C,IAAI0B,gBAAK,CAACC,aAAa,CAAC3B,KAAK,CAAC,EAAE;MAC9B,OAAOM,iBAAM,CAACsB,SAAS,CAAC5B,KAAqB,CAAC;IAChD;IACA,OAAOD,gBAAgB,CAACC,KAAK,EAAEgB,OAAO,CAAC;EACzC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"errors.cjs","names":["_errorReporter","require","_effectApp","reportQueueError_","reportError","reportQueueError","cause","extras","exports","reportNonInterruptedFailure","context","report","reportNonInterruptedFailureCause","inp","pipe","Effect","onExit","Exit","match","onFailure","onSuccess","void","exit","Cause","isInterrupted","failCause"],"sources":["../../../src/services/QueueMaker/errors.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,iBAAiB,GAAG,IAAAC,0BAAW,EAAC,OAAO,CAAC;AAEvC,MAAMC,gBAAgB,GAAGA,CAAIC,KAAe,EAAEC,MAAgC,KACnFJ,iBAAiB,CAACG,KAAK,EAAEC,MAAM,CAAC;AAAAC,OAAA,CAAAH,gBAAA,GAAAA,gBAAA;AAE5B,SAAUI,2BAA2BA,CAACC,OAAiC;EAC3E,MAAMC,MAAM,GAAGC,gCAAgC,CAACF,OAAO,CAAC;EACxD,OAAiBG,GAAoB,IACnCA,GAAG,CAACC,IAAI,CACNC,iBAAM,CAACC,MAAM,CACXC,eAAI,CAACC,KAAK,CAAC;IACTC,SAAS,EAAER,MAAM;IACjBS,SAAS,EAAEA,CAAA,KAAML,iBAAM,CAACM;GACzB,CAAC,CACH,EACDN,iBAAM,CAACO,IAAI,CACZ;AACL;AAEM,SAAUV,gCAAgCA,CAACF,OAAiC;EAChF,OAAWJ,KAAe,IAAkB;IAC1C,IAAIiB,gBAAK,CAACC,aAAa,CAAClB,KAAK,CAAC,EAAE;MAC9B,OAAOS,iBAAM,CAACU,SAAS,CAACnB,KAAqB,CAAC;IAChD;IACA,OAAOD,gBAAgB,CAACC,KAAK,EAAEI,OAAO,CAAC;EACzC,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setRootParentSpan = exports.RequestFiberSet = void 0;
7
+ var _core = require("@effect-app/core");
8
+ var _reportError = require("../api/reportError.cjs");
9
+ var _logger = require("../logger.cjs");
10
+ const getRootParentSpan = _core.Effect.gen(function* () {
11
+ let span = yield* _core.Effect.currentSpan.pipe(_core.Effect.catchTag("NoSuchElementException", () => _core.Effect.succeed(null)));
12
+ if (!span) return span;
13
+ while (span._tag === "Span" && _core.Option.isSome(span.parent)) {
14
+ span = span.parent.value;
15
+ }
16
+ return span;
17
+ });
18
+ const setRootParentSpan = self => getRootParentSpan.pipe(_core.Effect.andThen(span => span ? _core.Effect.withParentSpan(self, span) : self));
19
+ exports.setRootParentSpan = setRootParentSpan;
20
+ const make = _core.Effect.gen(function* () {
21
+ const set = yield* _core.FiberSet.make();
22
+ const add = (...fibers) => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
23
+ const addAll = fibers => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
24
+ const join = _core.FiberSet.size(set).pipe(_core.Effect.andThen(count => _logger.InfraLogger.logInfo(`Joining ${count} current fibers on the RequestFiberSet`)), _core.Effect.andThen(_core.FiberSet.join(set)));
25
+ const run = _core.FiberSet.run(set);
26
+ const register = self => self.pipe(_core.Effect.fork, _core.Effect.tap(add), _core.Effect.andThen(_core.Fiber.join));
27
+ // const waitUntilEmpty = Effect.gen(function*() {
28
+ // const currentSize = yield* FiberSet.size(set)
29
+ // if (currentSize === 0) {
30
+ // return
31
+ // }
32
+ // yield* Effect.logInfo("Waiting RequestFiberSet to be empty: " + currentSize)
33
+ // while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
34
+ // yield* Effect.logDebug("RequestFiberSet is empty")
35
+ // })
36
+ // TODO: loop and interrupt all fibers in the set continuously?
37
+ const interrupt = _core.Fiber.interruptAll(set);
38
+ /**
39
+ * Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
40
+ * new fiber isn't attached to the parent, when the fiber executing the
41
+ * returned effect terminates, the forked fiber will continue running.
42
+ * The fiber will be interrupted when the RequestFiberSet scope is closed.
43
+ *
44
+ * The parent span is set to the root span of the current fiber.
45
+ * Reports errors.
46
+ */
47
+ function forkDaemonReport(self) {
48
+ return self.pipe(_reportError.reportRequestError, setRootParentSpan, _core.Effect.uninterruptible, run);
49
+ }
50
+ /**
51
+ * Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
52
+ * new fiber isn't attached to the parent, when the fiber executing the
53
+ * returned effect terminates, the forked fiber will continue running.
54
+ * The fiber will be interrupted when the RequestFiberSet scope is closed.
55
+ *
56
+ * The parent span is set to the root span of the current fiber.
57
+ * Reports unexpected errors.
58
+ */
59
+ function forkDaemonReportUnexpected(self) {
60
+ return self.pipe(_reportError.reportUnknownRequestError, setRootParentSpan, _core.Effect.uninterruptible, run);
61
+ }
62
+ return {
63
+ interrupt,
64
+ join,
65
+ run,
66
+ add,
67
+ addAll,
68
+ register,
69
+ forkDaemonReport,
70
+ forkDaemonReportUnexpected
71
+ };
72
+ });
73
+ /**
74
+ * Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
75
+ * like the ServiceBus Sender, you should register these fibers in this FiberSet.
76
+ */
77
+ class RequestFiberSet extends _core.Context.TagMakeId("RequestFiberSet", make)() {
78
+ static Live = this.toLayerScoped();
79
+ static register = self => this.use(_ => _.register(self));
80
+ static run = self => this.use(_ => _.run(self));
81
+ static forkDaemonReport = self => this.use(_ => _.forkDaemonReport(self));
82
+ static forkDaemonReportUnexpected = self => this.use(_ => _.forkDaemonReportUnexpected(self));
83
+ }
84
+ exports.RequestFiberSet = RequestFiberSet;
85
+ //# sourceMappingURL=RequestFiberSet.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestFiberSet.cjs","names":["_core","require","_reportError","_logger","getRootParentSpan","Effect","gen","span","currentSpan","pipe","catchTag","succeed","_tag","Option","isSome","parent","value","setRootParentSpan","self","andThen","withParentSpan","exports","make","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","count","InfraLogger","logInfo","run","register","fork","tap","Fiber","interrupt","interruptAll","forkDaemonReport","reportRequestError","uninterruptible","forkDaemonReportUnexpected","reportUnknownRequestError","RequestFiberSet","Context","TagMakeId","Live","toLayerScoped","use"],"sources":["../../src/services/RequestFiberSet.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,23 +1,4 @@
1
- import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
2
1
  import { Effect } from "effect-app";
3
- /**
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
- * returned effect terminates, the forked fiber will continue running.
7
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
8
- *
9
- * The parent span is set to the root span of the current fiber.
10
- * Reports errors.
11
- */
12
- export declare function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>): Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, R | RequestFiberSet>;
13
- /**
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
- * returned effect terminates, the forked fiber will continue running.
17
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
18
- *
19
- * The parent span is set to the root span of the current fiber.
20
- * Reports unexpected errors.
21
- */
22
- export declare function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>): Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, RequestFiberSet | R>;
2
+ export declare const reportRequestError: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
3
+ export declare const reportUnknownRequestError: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
23
4
  //# 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;AA8B1C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,iFAOrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,iFAQ/E"}
1
+ {"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../src/api/reportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAA;AA2B1C,eAAO,MAAM,kBAAkB,GARrB,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAQkB,CAAA;AAC1D,eAAO,MAAM,yBAAyB,GAT5B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAS+B,CAAA"}
@@ -1,4 +1,3 @@
1
- import { RequestFiberSet, setRootParentSpan } from "@effect-app/infra-adapters/RequestFiberSet";
2
1
  import { Cause, Effect } from "effect-app";
3
2
  import { logError, reportError } from "../errorReporter.js";
4
3
  // const onExitReportError = (name: string, unknownOnly?: boolean) => {
@@ -23,31 +22,6 @@ const tapErrorCause = (name, unknownOnly) => {
23
22
  : report(cause)
24
23
  : report(cause));
25
24
  };
26
- const reportRequestError = tapErrorCause("request");
27
- const reportUnknownRequestError = tapErrorCause("request", true);
28
- /**
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
31
- * returned effect terminates, the forked fiber will continue running.
32
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
33
- *
34
- * The parent span is set to the root span of the current fiber.
35
- * Reports errors.
36
- */
37
- export function forkDaemonReportRequest(self) {
38
- return self.pipe(reportRequestError, setRootParentSpan, Effect.uninterruptible, RequestFiberSet.run);
39
- }
40
- /**
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
43
- * returned effect terminates, the forked fiber will continue running.
44
- * The fiber will be interrupted when the RequestFiberSet scope is closed.
45
- *
46
- * The parent span is set to the root span of the current fiber.
47
- * Reports unexpected errors.
48
- */
49
- export function forkDaemonReportRequestUnexpected(self) {
50
- return self
51
- .pipe(reportUnknownRequestError, setRootParentSpan, Effect.uninterruptible, RequestFiberSet.run);
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3JlcG9ydEVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMvRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTNELHVFQUF1RTtBQUN2RSxxQ0FBcUM7QUFDckMsK0JBQStCO0FBQy9CLCtDQUErQztBQUMvQyxvQ0FBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLHdCQUF3QjtBQUN4Qiw2RUFBNkU7QUFDN0UsbUNBQW1DO0FBQ25DLGdDQUFnQztBQUNoQyxpQ0FBaUM7QUFDakMseUJBQXlCO0FBQ3pCLElBQUk7QUFDSixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxXQUFxQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQixPQUFPLENBQVUsSUFBcUIsRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbkMsV0FBVztRQUNULENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN0QixDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNaLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUN4QixDQUFDLENBQUE7QUFDRCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUNuRCxNQUFNLHlCQUF5QixHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFFaEU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQVUsSUFBcUI7SUFDcEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsZUFBZSxDQUFDLEdBQUcsQ0FDcEIsQ0FBQTtBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBVSxJQUFxQjtJQUM5RSxPQUFPLElBQUk7U0FDUixJQUFJLENBQ0gseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixNQUFNLENBQUMsZUFBZSxFQUN0QixlQUFlLENBQUMsR0FBRyxDQUNwQixDQUFBO0FBQ0wsQ0FBQyJ9
25
+ export const reportRequestError = tapErrorCause("request");
26
+ export const reportUnknownRequestError = tapErrorCause("request", true);
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3JlcG9ydEVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFM0QsdUVBQXVFO0FBQ3ZFLHFDQUFxQztBQUNyQywrQkFBK0I7QUFDL0IsK0NBQStDO0FBQy9DLG9DQUFvQztBQUNwQyw2QkFBNkI7QUFDN0Isd0JBQXdCO0FBQ3hCLDZFQUE2RTtBQUM3RSxtQ0FBbUM7QUFDbkMsZ0NBQWdDO0FBQ2hDLGlDQUFpQztBQUNqQyx5QkFBeUI7QUFDekIsSUFBSTtBQUNKLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBWSxFQUFFLFdBQXFCLEVBQUUsRUFBRTtJQUM1RCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFCLE9BQU8sQ0FBVSxJQUFxQixFQUFFLEVBQUUsQ0FDeEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNuQyxXQUFXO1FBQ1QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ1osQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQ3hCLENBQUMsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMxRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBIn0=
@@ -0,0 +1,61 @@
1
+ import { Context, Effect, Fiber, Layer } from "@effect-app/core";
2
+ declare const MainFiberSet_base: (abstract new (service: {
3
+ interrupt: Effect.Effect<void, never, never>;
4
+ join: Effect.Effect<void, never, never>;
5
+ forkDaemonReport: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, never>, never, R>;
6
+ run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
7
+ add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
8
+ addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
9
+ }) => Readonly<{
10
+ interrupt: Effect.Effect<void, never, never>;
11
+ join: Effect.Effect<void, never, never>;
12
+ forkDaemonReport: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, never>, never, R>;
13
+ run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
14
+ add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
15
+ addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
16
+ }> & Context.TagClassShape<"MainFiberSet", {
17
+ interrupt: Effect.Effect<void, never, never>;
18
+ join: Effect.Effect<void, never, never>;
19
+ forkDaemonReport: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, never>, never, R>;
20
+ run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
21
+ add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
22
+ addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
23
+ }>) & {
24
+ toLayer: {
25
+ (): Layer<MainFiberSet, never, import("effect/Scope").Scope>;
26
+ <E_1, R_1>(eff: Effect<Omit<MainFiberSet, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer<MainFiberSet, E_1, R_1>;
27
+ };
28
+ toLayerScoped: {
29
+ (): Layer<MainFiberSet, never, never>;
30
+ <E_1, R_2>(eff: Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer<MainFiberSet, E_1, Exclude<R_2, import("effect/Scope").Scope>>;
31
+ };
32
+ of: (service: Context.TagClassShape<any, any>) => MainFiberSet;
33
+ make: Effect<MainFiberSet, never, import("effect/Scope").Scope>;
34
+ } & Context.Tag<MainFiberSet, MainFiberSet> & {
35
+ interrupt: Effect<void, never, MainFiberSet>;
36
+ join: Effect<void, never, MainFiberSet>;
37
+ add: (...args: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet>;
38
+ addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet>;
39
+ } & {
40
+ use: <X>(body: (_: {
41
+ interrupt: Effect.Effect<void, never, never>;
42
+ join: Effect.Effect<void, never, never>;
43
+ forkDaemonReport: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, never>, never, R>;
44
+ run: <R_1, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R_1>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R_1>;
45
+ add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
46
+ addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
47
+ }) => X) => X extends Effect<infer A_1, infer E_2, infer R_4> ? Effect<A_1, E_2, R_4 | MainFiberSet> : Effect<X, never, MainFiberSet>;
48
+ };
49
+ /**
50
+ * Whenever you fork long running (e.g worker) fibers via e.g `Effect.forkScoped` or `Effect.forkDaemon`
51
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
52
+ * This way any errors will blow up the main program instead of fibers dying unknowingly.
53
+ */
54
+ export declare class MainFiberSet extends MainFiberSet_base {
55
+ static readonly Live: Layer<MainFiberSet, never, never>;
56
+ static readonly JoinLive: Layer.Layer<never, never, never>;
57
+ static readonly run: <A, R>(self: Effect<A, never, R>) => Effect<Fiber.RuntimeFiber<A, never>, never, MainFiberSet | R>;
58
+ static readonly forkDaemonReport: <A, E, R>(self: Effect<A, E, R>) => Effect<Fiber.RuntimeFiber<void, never>, never, MainFiberSet | R>;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=MainFiberSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;uBAyC9C,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;qBAhChC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;uBA8BzC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;qBAhChC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;uBA8BzC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;qBAhChC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;2BA8BzC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;yBAhChC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;AAiDrE;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAAuD;IACvF,MAAM,CAAC,QAAQ,CAAC,IAAI,oCAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,mEAAiC;IACvF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sEAA8C;CACjH"}
@@ -0,0 +1,54 @@
1
+ import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core";
2
+ import { InfraLogger } from "../logger.js";
3
+ import { reportNonInterruptedFailureCause } from "./QueueMaker/errors.js";
4
+ import { setRootParentSpan } from "./RequestFiberSet.js";
5
+ const make = Effect.gen(function* () {
6
+ const set = yield* FiberSet.make();
7
+ const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
8
+ const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
9
+ const join = FiberSet.size(set).pipe(Effect.andThen((count) => InfraLogger.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), Effect.andThen(FiberSet.join(set)));
10
+ const run = FiberSet.run(set);
11
+ // const waitUntilEmpty = Effect.gen(function*() {
12
+ // const currentSize = yield* FiberSet.size(set)
13
+ // if (currentSize === 0) {
14
+ // return
15
+ // }
16
+ // yield* InfraLogger.logInfo("Waiting MainFiberSet to be empty: " + currentSize)
17
+ // while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
18
+ // yield* InfraLogger.logDebug("MainFiberSet is empty")
19
+ // })
20
+ // TODO: loop and interrupt all fibers in the set continuously?
21
+ const interrupt = Fiber.interruptAll(set);
22
+ /**
23
+ * Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
24
+ * new fiber isn't attached to the parent, when the fiber executing the
25
+ * returned effect terminates, the forked fiber will continue running.
26
+ * The fiber will be interrupted when the MainFiberSet scope is closed.
27
+ *
28
+ * The parent span is set to the root span of the current fiber.
29
+ * Reports and then swallows errors.
30
+ */
31
+ function forkDaemonReport(self) {
32
+ return self.pipe(Effect.asVoid, Effect.catchAllCause(reportNonInterruptedFailureCause({})), setRootParentSpan, Effect.uninterruptible, run);
33
+ }
34
+ return {
35
+ interrupt,
36
+ join,
37
+ forkDaemonReport,
38
+ run,
39
+ add,
40
+ addAll
41
+ };
42
+ });
43
+ /**
44
+ * Whenever you fork long running (e.g worker) fibers via e.g `Effect.forkScoped` or `Effect.forkDaemon`
45
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
46
+ * This way any errors will blow up the main program instead of fibers dying unknowingly.
47
+ */
48
+ export class MainFiberSet extends Context.TagMakeId("MainFiberSet", make)() {
49
+ static Live = this.toLayerScoped();
50
+ static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
51
+ static run = (self) => this.use((_) => _.run(self));
52
+ static forkDaemonReport = (self) => this.use((_) => _.forkDaemonReport(self));
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBa0IsQ0FBQTtJQUNsRCxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBMEMsRUFBRSxFQUFFLENBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBbUQsRUFBRSxFQUFFLENBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxxQ0FBcUMsQ0FBQyxDQUFDLEVBQ3RHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuQyxDQUFBO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUU3QixrREFBa0Q7SUFDbEQsa0RBQWtEO0lBQ2xELDZCQUE2QjtJQUM3QixhQUFhO0lBQ2IsTUFBTTtJQUNOLG1GQUFtRjtJQUNuRiw4RUFBOEU7SUFDOUUseURBQXlEO0lBQ3pELEtBQUs7SUFFTCwrREFBK0Q7SUFDL0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUV6Qzs7Ozs7Ozs7T0FRRztJQUNILFNBQVMsZ0JBQWdCLENBQVUsSUFBcUI7UUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUMxRCxpQkFBaUIsRUFDakIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsR0FBRyxDQUNKLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLFNBQVM7UUFDVCxJQUFJO1FBQ0osZ0JBQWdCO1FBQ2hCLEdBQUc7UUFDSCxHQUFHO1FBQ0gsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFnQjtJQUN2RixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLENBQVUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsSCxNQUFNLENBQVUsR0FBRyxHQUFHLENBQU8sSUFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3ZGLE1BQU0sQ0FBVSxnQkFBZ0IsR0FBRyxDQUFVLElBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBIn0=