@effect-app/infra 0.12.3 → 0.12.5
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 +15 -0
- package/_cjs/services/Operations/live.cjs +96 -0
- package/_cjs/services/Operations/live.cjs.map +1 -0
- package/_cjs/services/Operations/service.cjs +48 -0
- package/_cjs/services/Operations/service.cjs.map +1 -0
- package/_cjs/services/Operations.cjs +17 -0
- package/_cjs/services/Operations.cjs.map +1 -0
- package/_src/_global.ext.ts +4 -0
- package/_src/services/Operations/live.ts +102 -0
- package/_src/services/Operations/service.ts +69 -0
- package/_src/services/Operations.ts +1 -0
- package/dist/_global.ext.d.ts +4 -0
- package/dist/_global.ext.d.ts.map +1 -1
- package/dist/services/Operations/live.d.ts +8 -0
- package/dist/services/Operations/live.d.ts.map +1 -0
- package/dist/services/Operations/live.js +90 -0
- package/dist/services/Operations/service.d.ts +40 -0
- package/dist/services/Operations/service.d.ts.map +1 -0
- package/dist/services/Operations/service.js +34 -0
- package/dist/services/Operations.d.ts +2 -0
- package/dist/services/Operations.d.ts.map +1 -0
- package/dist/services/Operations.js +2 -0
- package/package.json +34 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 0.12.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e9a667fe: Add Operations
|
|
8
|
+
- Updated dependencies [e9a667fe]
|
|
9
|
+
- @effect-app/prelude@0.11.5
|
|
10
|
+
|
|
11
|
+
## 0.12.4
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [387dea6e]
|
|
16
|
+
- @effect-app/prelude@0.11.4
|
|
17
|
+
|
|
3
18
|
## 0.12.3
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Live = void 0;
|
|
7
|
+
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
8
|
+
var tsplus_module_1 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
9
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/prelude/_ext/date"));
|
|
10
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@fp-ts/data/Option"));
|
|
11
|
+
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
12
|
+
var tsplus_module_5 = _interopRequireWildcard(require("@effect/io/Exit"));
|
|
13
|
+
var tsplus_module_6 = _interopRequireWildcard(require("@effect/io/Cause"));
|
|
14
|
+
var tsplus_module_7 = _interopRequireWildcard(require("@effect-app/prelude/schema"));
|
|
15
|
+
var tsplus_module_8 = _interopRequireWildcard(require("@effect-app/core/Option"));
|
|
16
|
+
var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/prelude/_ext/Prelude.ext"));
|
|
17
|
+
var tsplus_module_10 = _interopRequireWildcard(require("@effect-app/prelude/service"));
|
|
18
|
+
var tsplus_module_11 = _interopRequireWildcard(require("@fp-ts/data/Duration"));
|
|
19
|
+
var tsplus_module_12 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
20
|
+
var tsplus_module_13 = _interopRequireWildcard(require("@effect/io/Layer"));
|
|
21
|
+
var _reportError = require("@effect-app/infra/api/reportError");
|
|
22
|
+
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
23
|
+
var _Operations = require("@effect-app/prelude/Operations");
|
|
24
|
+
var _service2 = require("./service.cjs");
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
const fileName_1 = "packages/infra/_src/services/Operations/live.ts";
|
|
28
|
+
const reportAppError = (0, _errorReporter.reportError)(cause => new _reportError.RequestException(cause));
|
|
29
|
+
const make = tracer_1.withCallTrace(fileName_1 + ":9:14")(tsplus_module_1.sync(() => {
|
|
30
|
+
const ops = new Map();
|
|
31
|
+
const makeOp = tracer_1.withCallTrace(fileName_1 + ":11:18")(tsplus_module_1.sync(() => _Operations.OperationId.make()));
|
|
32
|
+
const cleanup = tracer_1.withCallTrace(fileName_1 + ":13:19")(tsplus_module_1.sync(() => {
|
|
33
|
+
const before = tsplus_module_2.DateSubHours(new Date(), 1);
|
|
34
|
+
tsplus_module_4.ext_itToChunk(ops.entries()).forEach(([id, op]) => {
|
|
35
|
+
const lastChanged = tsplus_module_3.getOrElse(() => op.createdAt)(tsplus_module_3.fromNullable(op.updatedAt));
|
|
36
|
+
if (lastChanged < before) {
|
|
37
|
+
ops.delete(id);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}));
|
|
41
|
+
function addOp(id) {
|
|
42
|
+
return tracer_1.withCallTrace(fileName_1 + ":26:12")(tsplus_module_1.sync(() => {
|
|
43
|
+
ops.set(id, new _Operations.Operation({
|
|
44
|
+
id
|
|
45
|
+
}));
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
function findOp(id) {
|
|
49
|
+
return tracer_1.withCallTrace(fileName_1 + ":31:12")(tsplus_module_1.sync(() => tsplus_module_3.fromNullable(ops.get(id))));
|
|
50
|
+
}
|
|
51
|
+
function finishOp(id, exit) {
|
|
52
|
+
return tracer_1.withCallTrace(fileName_1 + ":34:23")(tsplus_module_1.flatMap(_ => tracer_1.withCallTrace(fileName_1 + ":35:7")(tsplus_module_1.sync(() => {
|
|
53
|
+
if (tsplus_module_3.isNone(_)) {
|
|
54
|
+
throw new Error("Not found");
|
|
55
|
+
}
|
|
56
|
+
ops.set(id, {
|
|
57
|
+
..._.value,
|
|
58
|
+
updatedAt: new Date(),
|
|
59
|
+
result: tsplus_module_5.isSuccess(exit) ? new _Operations.Success({}) : new _Operations.Failure({
|
|
60
|
+
message: tsplus_module_6.isInterrupted(exit.cause) ? tsplus_module_7.LongString("Interrupted") : tsplus_module_6.isDie(exit.cause) ? tsplus_module_7.LongString("Unknown error") : tsplus_module_8.getOrUndefined(tsplus_module_3.flatMap(_ => typeof _ === "object" && _ !== null && "message" in _ && tsplus_module_7.LongString.Guard(_.message) ? tsplus_module_3.some(_.message) : tsplus_module_3.none)(tsplus_module_6.failureOption(exit.cause))) ?? null
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
}))))(findOp(id));
|
|
64
|
+
}
|
|
65
|
+
function update(id, progress) {
|
|
66
|
+
return tracer_1.withCallTrace(fileName_1 + ":60:23")(tsplus_module_1.flatMap(_ => tracer_1.withCallTrace(fileName_1 + ":61:7")(tsplus_module_1.sync(() => {
|
|
67
|
+
if (tsplus_module_3.isNone(_)) {
|
|
68
|
+
throw new Error("Not found");
|
|
69
|
+
}
|
|
70
|
+
ops.set(id, {
|
|
71
|
+
..._.value,
|
|
72
|
+
updatedAt: new Date(),
|
|
73
|
+
progress
|
|
74
|
+
});
|
|
75
|
+
}))))(findOp(id));
|
|
76
|
+
}
|
|
77
|
+
return tsplus_module_10.make(_service2.Operations, {
|
|
78
|
+
cleanup,
|
|
79
|
+
register: tracer_1.withCallTrace(fileName_1 + ":72:8")(tsplus_module_1.tap(id => tsplus_module_1.zipRight(tracer_1.withCallTrace(fileName_1 + ":74:23")(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit))))(tsplus_module_9.logAnnotateScoped("operationId", id))))(makeOp),
|
|
80
|
+
find: findOp,
|
|
81
|
+
update
|
|
82
|
+
});
|
|
83
|
+
}));
|
|
84
|
+
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.forever(tracer_1.withCallTrace(fileName_1 + ":93:4")(tsplus_module_1.delay(tsplus_module_11.minutes(1)))(tracer_1.withCallTrace(fileName_1 + ":86:4")(tsplus_module_1.flatMap(_ => {
|
|
85
|
+
if (tsplus_module_5.isSuccess(_)) {
|
|
86
|
+
return tsplus_module_12.unit;
|
|
87
|
+
} else {
|
|
88
|
+
return reportAppError(_.cause);
|
|
89
|
+
}
|
|
90
|
+
}))(tsplus_module_1.exit(tracer_1.withCallTrace(fileName_1 + ":84:32")(tsplus_module_1.serviceWithEffect(_service2.Operations, _ => _.cleanup)))))));
|
|
91
|
+
/**
|
|
92
|
+
* @tsplus static Operations.Ops Live
|
|
93
|
+
*/
|
|
94
|
+
const Live = tsplus_module_13.provideMerge(tsplus_module_12.toScopedDiscardLayer(cleanupLoop))(tsplus_module_12.toLayer(make, _service2.Operations));
|
|
95
|
+
exports.Live = Live;
|
|
96
|
+
//# sourceMappingURL=live.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.cjs","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAEA;AACA;AAAyC;AAAA;;AAEzC,MAAMA,cAAc,GAAG,8BAAW,EAACC,KAAK,IAAI,IAAIC,6BAAgB,CAACD,KAAK,CAAC,CAAC;AAExE,MAAME,IAAI,gDAAGC,qBAAO,MAAK;EACvB,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAA0B;EAC7C,MAAMC,MAAM,iDAAGH,qBAAO,MAAMI,uBAAW,CAACL,IAAI,EAAE,CAAC;EAE/C,MAAMM,OAAO,iDAAGL,qBAAO,MAAK;IAC1B,MAAMM,MAAM,GAAGC,iCAAIC,IAAI,EAAE,EAAU,CAAC,CAAC;IACrCC,iCAAG,CAACC,OAAO,EAAE,EAEVC,OAAO,CAAC,CAAC,CAACC,EAAE,EAAEC,EAAE,CAAC,KAAI;MACpB,MAAMC,WAAW,GAAGC,0BAAyC,MAAMF,EAAE,CAACG,SAAS,EAA3DD,6BAAiBF,EAAE,CAACI,SAAS,CAAC,CAA8B;MAChF,IAAIH,WAAW,GAAGR,MAAM,EAAE;QACxBL,GAAG,CAACiB,MAAM,CAACN,EAAE,CAAC;;IAElB,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,SAASO,KAAK,CAACP,EAAe;IAC5B,qDAAOZ,qBAAO,MAAK;MACjBC,GAAG,CAACmB,GAAG,CAACR,EAAE,EAAE,IAAIS,qBAAS,CAAC;QAAET;MAAE,CAAE,CAAC,CAAC;IACpC,CAAC,CAAC;EACJ;EACA,SAASU,MAAM,CAACV,EAAe;IAC7B,qDAAOZ,qBAAO,MAAMe,6BAAiBd,GAAG,CAACsB,GAAG,CAACX,EAAE,CAAC,CAAC,CAAC;EACpD;EACA,SAASY,QAAQ,CAACZ,EAAe,EAAEa,IAA4B;IAC7D,OAAOC,sEAAmBC,CAAC,IAAGD,6CAC5B1B,qBAAO,MAAK;MACV,IAAIe,wBAAC,CAAS,EAAE;QACd,MAAM,IAAIa,KAAK,CAAC,WAAW,CAAC;;MAE9B3B,GAAG,CAACmB,GAAG,CAACR,EAAE,EAAE;QACV,GAAGe,CAAC,CAACE,KAAK;QACVZ,SAAS,EAAE,IAAIT,IAAI,EAAE;QACrBsB,MAAM,EAAEC,8BAAI,CAAY,GACpB,IAAIC,mBAAO,CAAC,EAAE,CAAC,GACf,IAAIC,mBAAO,CAAC;UACZC,OAAO,EAAEC,kCAAI,CAACtC,KAAK,CAAgB,GAC/BuC,0BAAU,CAAC,aAAa,CAAC,GACzBD,0BAAI,CAACtC,KAAK,CAAQ,GAClBuC,0BAAU,CAAC,eAAe,CAAC,GAC3BC,uDAAiCV,CAAC,IAClC,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAI,SAAS,IAAIA,CAAC,IAAIS,0BAAU,CAACE,KAAK,CAACX,CAAC,CAACO,OAAO,CAAC,GAChFnB,qBAAIY,CAAC,CAACO,OAAO,CAAC,GACfnB,oBAAS,gCAHZU,IAAI,CAAC5B,KAAK,EAIX,KAAW;SACf;OACJ,CAAC;IACJ,CAAC,CAAC,IAtBGyB,MAAM,CAACV,EAAE,CAAC,CAuBhB;EACH;EACA,SAAS2B,MAAM,CAAC3B,EAAe,EAAE4B,QAA2B;IAC1D,OAAOd,sEAAmBC,CAAC,IAAGD,6CAC5B1B,qBAAO,MAAK;MACV,IAAIe,wBAAC,CAAS,EAAE;QACd,MAAM,IAAIa,KAAK,CAAC,WAAW,CAAC;;MAE9B3B,GAAG,CAACmB,GAAG,CAACR,EAAE,EAAE;QAAE,GAAGe,CAAC,CAACE,KAAK;QAAEZ,SAAS,EAAE,IAAIT,IAAI,EAAE;QAAEgC;MAAQ,CAAE,CAAC;IAC9D,CAAC,CAAC,IANGlB,MAAM,CAACV,EAAE,CAAC,CAOhB;EACH;EACA,OAAO6B,0CAAU,EAAM;IACrBpC,OAAO;IACPqC,QAAQ,EAAEhB,iEACHd,EAAE,IAAGZ,uEAEJA,oCAAK,CAACY,EAAE,CAAC,EACT,CAACe,CAAC,EAAEF,IAAI,KAAKD,QAAQ,CAACZ,EAAE,EAAEa,IAAI,CAAC,CAChC,GAHHkB,kCAAyB,aAAa,EAAE/B,EAAE,CAAC,CAGxC,GALGT,MAAM,CAMb;IAEHyC,IAAI,EAAEtB,MAAM;IACZiB;GACD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAMM,WAAW,sDAAGnB,mEASXoB,yBAAY,CAAC,CAAC,GATHpB,qEAETC,CAAC,IAAG;EACX,IAAII,2BAAC,CAAY,EAAE;IACjB;GACD,MAAM;IACL,OAAOnC,cAAc,CAAC+B,CAAC,CAAC9B,KAAK,CAAC;;AAElC,CAAC,sEARiBG,sDAAU,EAAkB2B,CAAC,IAAIA,CAAC,CAACtB,OAAO,CAAC,GAQ3D,CACoB,EAEX;AAEb;;;AAGO,MAAM0C,IAAI,uEACbF,WAAW,GADKG,6BAAI,EAASC,oBAAU,CAAC,CAEnB;AAAA","names":["reportAppError","cause","RequestException","make","tsplus_module_1","ops","Map","makeOp","OperationId","cleanup","before","tsplus_module_2","Date","tsplus_module_4","entries","forEach","id","op","lastChanged","tsplus_module_3","createdAt","updatedAt","delete","addOp","set","Operation","findOp","get","finishOp","exit","tracer_1","_","Error","value","result","tsplus_module_5","Success","Failure","message","tsplus_module_6","tsplus_module_7","tsplus_module_8","Guard","update","progress","tsplus_module_10","register","tsplus_module_9","find","cleanupLoop","tsplus_module_11","Live","tsplus_module_12","Operations"],"sourceRoot":"","sources":["../../../_src/services/Operations/live.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.forkOperation = exports.OperationsId = exports.Operations = void 0;
|
|
7
|
+
exports.forkOperation2 = forkOperation2;
|
|
8
|
+
exports.forkOperationFunction = forkOperationFunction;
|
|
9
|
+
exports.forkOperationWithEffect = forkOperationWithEffect;
|
|
10
|
+
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
11
|
+
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/data/Context"));
|
|
12
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect/io/Scope"));
|
|
13
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/infra/api/reportError"));
|
|
14
|
+
var tsplus_module_4 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
const fileName_1 = "packages/infra/_src/services/Operations/service.ts";
|
|
18
|
+
const forkOperation = forkOperation_1;
|
|
19
|
+
exports.forkOperation = forkOperation;
|
|
20
|
+
const OperationsId = Symbol("OperationsId");
|
|
21
|
+
exports.OperationsId = OperationsId;
|
|
22
|
+
const Operations = tsplus_module_1.Tag();
|
|
23
|
+
/**
|
|
24
|
+
* @tsplus getter effect/io/Effect forkOperation
|
|
25
|
+
*/
|
|
26
|
+
exports.Operations = Operations;
|
|
27
|
+
function forkOperation_1(self) {
|
|
28
|
+
return tracer_1.withCallTrace(fileName_1 + ":22:21")(tsplus_module_4.serviceWithEffect(Operations, Operations => tracer_1.withCallTrace(fileName_1 + ":25:10")(tsplus_module_4.flatMap(scope => tracer_1.withCallTrace(fileName_1 + ":27:14")(tsplus_module_4.tap(() => tsplus_module_3.forkDaemonReportRequestUnexpected(tracer_1.withCallTrace(fileName_1 + ":27:29")(tsplus_module_2.use(scope))(self))))(tracer_1.withCallTrace(fileName_1 + ":26:31")(tsplus_module_2.extend(scope))(Operations.register))))(tracer_1.withCallTrace(fileName_1 + ":24:13")(tsplus_module_2.make()))));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @tsplus getter function forkOperation
|
|
32
|
+
*/
|
|
33
|
+
function forkOperationFunction(fnc) {
|
|
34
|
+
return inp => forkOperation_1(fnc(inp));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
38
|
+
*/
|
|
39
|
+
function forkOperation2(self) {
|
|
40
|
+
return tracer_1.withCallTrace(fileName_1 + ":43:21")(tsplus_module_4.serviceWithEffect(Operations, Operations => tracer_1.withCallTrace(fileName_1 + ":46:10")(tsplus_module_4.flatMap(scope => tracer_1.withCallTrace(fileName_1 + ":48:14")(tsplus_module_4.tap(id => tsplus_module_3.forkDaemonReportRequestUnexpected(tracer_1.withCallTrace(fileName_1 + ":48:33")(tsplus_module_2.use(scope))(self(id)))))(tracer_1.withCallTrace(fileName_1 + ":47:31")(tsplus_module_2.extend(scope))(Operations.register))))(tracer_1.withCallTrace(fileName_1 + ":45:13")(tsplus_module_2.make()))));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
44
|
+
*/
|
|
45
|
+
function forkOperationWithEffect(self, fnc) {
|
|
46
|
+
return tracer_1.withCallTrace(fileName_1 + ":60:21")(tsplus_module_4.serviceWithEffect(Operations, Operations => tracer_1.withCallTrace(fileName_1 + ":63:10")(tsplus_module_4.flatMap(scope => tracer_1.withCallTrace(fileName_1 + ":66:14")(tsplus_module_4.tap(opId => tracer_1.withCallTrace(fileName_1 + ":66:61")(tsplus_module_2.extend(scope))(tsplus_module_4.forkScoped(tsplus_module_4.interruptible(fnc(opId))))))(tracer_1.withCallTrace(fileName_1 + ":65:14")(tsplus_module_4.tap(opId => tsplus_module_3.forkDaemonReportRequestUnexpected(tracer_1.withCallTrace(fileName_1 + ":65:37")(tsplus_module_2.use(scope))(self(opId)))))(tracer_1.withCallTrace(fileName_1 + ":64:31")(tsplus_module_2.extend(scope))(Operations.register)))))(tracer_1.withCallTrace(fileName_1 + ":62:13")(tsplus_module_2.make()))));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=service.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.cjs","mappings":";;;;;;;;;;;;;;;;;MAoBgBA,aAAa;AAAA;AAlBtB,MAAMC,YAAY,GAAGC,MAAM,CAAC,cAAc,CAAC;AAAA;AAa3C,MAAMC,UAAU,GAAkBC,mBAAG,EAAc;AAE1D;;;AAAA;AAGA,yBAAuCC,IAAqB;EAC1D,qDAAOC,4CAAU,EACfH,UAAU,IACRI,sEACWC,KAAK,IACZD,kEACO,MAAKE,kDAACF,kEAASC,KAAK,GAAdH,IAAI,CAAW,CAAkC,GAD9DE,qEAA2BC,KAAK,GAAhCL,UAAU,CAACO,QAAQ,CAAc,CAC8B,iDAHnEC,sBAAY,EAIT,CACN;AACH;AAEA;;;AAGM,SAAUC,qBAAqB,CAAeC,GAAkC;EACpF,OAAQC,GAAQ,IAAIC,gBAACF,GAAG,CAACC,GAAG,CAAC,CAAc;AAC7C;AAEA;;;AAGM,SAAUE,cAAc,CAAUX,IAA4C;EAClF,qDAAOC,4CAAU,EACfH,UAAU,IACRI,sEACWC,KAAK,IACZD,kEACOU,EAAE,IAAGR,kDAACF,kEAAaC,KAAK,GAAlBH,IAAI,CAACY,EAAE,CAAC,CAAW,CAAkC,GADlEV,qEAA2BC,KAAK,GAAhCL,UAAU,CAACO,QAAQ,CAAc,CACkC,iDAHvEC,sBAAY,EAIT,CACN;AACH;AAEA;;;AAGM,SAAUO,uBAAuB,CACrCb,IAA0C,EAC1CQ,GAA4C;EAE5C,qDAAOP,4CAAU,EACfH,UAAU,IACRI,sEACWC,KAAK,IACZD,kEAEOY,IAAI,IAAIZ,qEAA0CC,KAAK,4DAA/CK,GAAG,CAACM,IAAI,CAAC,GAAuC,GAF/DZ,kEACOY,IAAI,IAAGV,kDAACF,kEAAeC,KAAK,GAApBH,IAAI,CAACc,IAAI,CAAC,CAAW,CAAkC,GADtEZ,qEAA2BC,KAAK,GAAhCL,UAAU,CAACO,QAAQ,CAAc,CACsC,CACP,iDAJpEC,sBAAY,EAKT,CACN;AACH","names":["forkOperation","OperationsId","Symbol","Operations","tsplus_module_1","self","tsplus_module_4","tracer_1","scope","tsplus_module_3","register","tsplus_module_2","forkOperationFunction","fnc","inp","forkOperation_1","forkOperation2","id","forkOperationWithEffect","opId"],"sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _service = require("./Operations/service.cjs");
|
|
7
|
+
Object.keys(_service).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _service[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _service[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=Operations.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Operations.cjs","mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA","names":[],"sourceRoot":"","sources":["../../_src/services/Operations.ts"],"sourcesContent":[null]}
|
package/_src/_global.ext.ts
CHANGED
|
@@ -6,6 +6,10 @@ import type {} from "@effect-app/infra/services/Emailer/fake"
|
|
|
6
6
|
* @tsplus global
|
|
7
7
|
*/
|
|
8
8
|
import type {} from "@effect-app/infra/services/Emailer/Sendgrid"
|
|
9
|
+
/**
|
|
10
|
+
* @tsplus global
|
|
11
|
+
*/
|
|
12
|
+
import type {} from "@effect-app/infra/services/Operations/live"
|
|
9
13
|
/**
|
|
10
14
|
* @tsplus global
|
|
11
15
|
*/
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { RequestException } from "@effect-app/infra/api/reportError"
|
|
2
|
+
import { reportError } from "@effect-app/infra/errorReporter"
|
|
3
|
+
import type { OperationProgress } from "@effect-app/prelude/Operations"
|
|
4
|
+
import { Failure, Operation, OperationId, Success } from "@effect-app/prelude/Operations"
|
|
5
|
+
import { Operations } from "./service.js"
|
|
6
|
+
|
|
7
|
+
const reportAppError = reportError(cause => new RequestException(cause))
|
|
8
|
+
|
|
9
|
+
const make = Effect(() => {
|
|
10
|
+
const ops = new Map<OperationId, Operation>()
|
|
11
|
+
const makeOp = Effect(() => OperationId.make())
|
|
12
|
+
|
|
13
|
+
const cleanup = Effect(() => {
|
|
14
|
+
const before = new Date().subHours(1)
|
|
15
|
+
ops.entries()
|
|
16
|
+
.toChunk
|
|
17
|
+
.forEach(([id, op]) => {
|
|
18
|
+
const lastChanged = Opt.fromNullable(op.updatedAt).getOrElse(() => op.createdAt)
|
|
19
|
+
if (lastChanged < before) {
|
|
20
|
+
ops.delete(id)
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
function addOp(id: OperationId) {
|
|
26
|
+
return Effect(() => {
|
|
27
|
+
ops.set(id, new Operation({ id }))
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
function findOp(id: OperationId) {
|
|
31
|
+
return Effect(() => Opt.fromNullable(ops.get(id)))
|
|
32
|
+
}
|
|
33
|
+
function finishOp(id: OperationId, exit: Exit<unknown, unknown>) {
|
|
34
|
+
return findOp(id).flatMap(_ =>
|
|
35
|
+
Effect(() => {
|
|
36
|
+
if (_.isNone()) {
|
|
37
|
+
throw new Error("Not found")
|
|
38
|
+
}
|
|
39
|
+
ops.set(id, {
|
|
40
|
+
..._.value,
|
|
41
|
+
updatedAt: new Date(),
|
|
42
|
+
result: exit.isSuccess()
|
|
43
|
+
? new Success({})
|
|
44
|
+
: new Failure({
|
|
45
|
+
message: exit.cause.isInterrupted()
|
|
46
|
+
? LongString("Interrupted")
|
|
47
|
+
: exit.cause.isDie()
|
|
48
|
+
? LongString("Unknown error")
|
|
49
|
+
: exit.cause.failureOption.flatMap(_ =>
|
|
50
|
+
typeof _ === "object" && _ !== null && "message" in _ && LongString.Guard(_.message)
|
|
51
|
+
? Opt(_.message)
|
|
52
|
+
: Opt.none
|
|
53
|
+
)?.value ?? null
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
function update(id: OperationId, progress: OperationProgress) {
|
|
60
|
+
return findOp(id).flatMap(_ =>
|
|
61
|
+
Effect(() => {
|
|
62
|
+
if (_.isNone()) {
|
|
63
|
+
throw new Error("Not found")
|
|
64
|
+
}
|
|
65
|
+
ops.set(id, { ..._.value, updatedAt: new Date(), progress })
|
|
66
|
+
})
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
return Operations.make({
|
|
70
|
+
cleanup,
|
|
71
|
+
register: makeOp
|
|
72
|
+
.tap(id =>
|
|
73
|
+
Effect.logAnnotateScoped("operationId", id)
|
|
74
|
+
> addOp(id).acquireRelease(
|
|
75
|
+
(_, exit) => finishOp(id, exit)
|
|
76
|
+
)
|
|
77
|
+
),
|
|
78
|
+
|
|
79
|
+
find: findOp,
|
|
80
|
+
update
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
const cleanupLoop = Operations.accessWithEffect(_ => _.cleanup)
|
|
85
|
+
.exit
|
|
86
|
+
.flatMap(_ => {
|
|
87
|
+
if (_.isSuccess()) {
|
|
88
|
+
return Effect.unit
|
|
89
|
+
} else {
|
|
90
|
+
return reportAppError(_.cause)
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
.delay(DUR.minutes(1))
|
|
94
|
+
.forever
|
|
95
|
+
.forkScoped
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @tsplus static Operations.Ops Live
|
|
99
|
+
*/
|
|
100
|
+
export const Live = make.toLayer(Operations)
|
|
101
|
+
> cleanupLoop
|
|
102
|
+
.toScopedDiscardLayer
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Operation, OperationId, OperationProgress } from "@effect-app/prelude/Operations"
|
|
2
|
+
|
|
3
|
+
export const OperationsId = Symbol("OperationsId")
|
|
4
|
+
export interface Operations extends ServiceTagged<typeof OperationsId> {
|
|
5
|
+
register: Effect<Scope, never, OperationId>
|
|
6
|
+
update: (id: OperationId, progress: OperationProgress) => Effect<never, never, void>
|
|
7
|
+
find: (id: OperationId) => Effect<never, never, Opt<Operation>>
|
|
8
|
+
cleanup: Effect<never, never, void>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @tsplus type Operations.Ops
|
|
13
|
+
*/
|
|
14
|
+
export interface OperationsOps extends Tag<Operations> {}
|
|
15
|
+
|
|
16
|
+
export const Operations: OperationsOps = Tag<Operations>()
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @tsplus getter effect/io/Effect forkOperation
|
|
20
|
+
*/
|
|
21
|
+
export function forkOperation<R, E, A>(self: Effect<R, E, A>) {
|
|
22
|
+
return Operations.accessWithEffect(
|
|
23
|
+
Operations =>
|
|
24
|
+
Scope.make()
|
|
25
|
+
.flatMap(scope =>
|
|
26
|
+
Operations.register.extend(scope)
|
|
27
|
+
.tap(() => self.use(scope).forkDaemonReportRequestUnexpected)
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @tsplus getter function forkOperation
|
|
34
|
+
*/
|
|
35
|
+
export function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>) {
|
|
36
|
+
return (inp: Inp) => fnc(inp).forkOperation
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
41
|
+
*/
|
|
42
|
+
export function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>) {
|
|
43
|
+
return Operations.accessWithEffect(
|
|
44
|
+
Operations =>
|
|
45
|
+
Scope.make()
|
|
46
|
+
.flatMap(scope =>
|
|
47
|
+
Operations.register.extend(scope)
|
|
48
|
+
.tap(id => self(id).use(scope).forkDaemonReportRequestUnexpected)
|
|
49
|
+
)
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
55
|
+
*/
|
|
56
|
+
export function forkOperationWithEffect<R, R2, E, E2, A, A2>(
|
|
57
|
+
self: (id: OperationId) => Effect<R, E, A>,
|
|
58
|
+
fnc: (id: OperationId) => Effect<R2, E2, A2>
|
|
59
|
+
) {
|
|
60
|
+
return Operations.accessWithEffect(
|
|
61
|
+
Operations =>
|
|
62
|
+
Scope.make()
|
|
63
|
+
.flatMap(scope =>
|
|
64
|
+
Operations.register.extend(scope)
|
|
65
|
+
.tap(opId => self(opId).use(scope).forkDaemonReportRequestUnexpected)
|
|
66
|
+
.tap(opId => fnc(opId).interruptible.forkScoped.extend(scope))
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Operations/service.js"
|
package/dist/_global.ext.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ import type {} from "@effect-app/infra/services/Emailer/fake";
|
|
|
6
6
|
* @tsplus global
|
|
7
7
|
*/
|
|
8
8
|
import type {} from "@effect-app/infra/services/Emailer/Sendgrid";
|
|
9
|
+
/**
|
|
10
|
+
* @tsplus global
|
|
11
|
+
*/
|
|
12
|
+
import type {} from "@effect-app/infra/services/Operations/live";
|
|
9
13
|
/**
|
|
10
14
|
* @tsplus global
|
|
11
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_global.ext.d.ts","sourceRoot":"","sources":["../_src/_global.ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,yCAAyC,CAAA;AAC7D;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6CAA6C,CAAA;AACjE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAA;AAExD;;GAEG;AACH,OAAO,EAAE,MAAM,mCAAmC,CAAA"}
|
|
1
|
+
{"version":3,"file":"_global.ext.d.ts","sourceRoot":"","sources":["../_src/_global.ext.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,yCAAyC,CAAA;AAC7D;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6CAA6C,CAAA;AACjE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,4CAA4C,CAAA;AAChE;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAClD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAA;AAExD;;GAEG;AACH,OAAO,EAAE,MAAM,mCAAmC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Exit } from "@effect/io/Exit";
|
|
2
|
+
import { Operations } from "./service.js";
|
|
3
|
+
/**
|
|
4
|
+
* @tsplus static Operations.Ops Live
|
|
5
|
+
* @tsplus location "@effect-app/infra/services/Operations/live"
|
|
6
|
+
*/
|
|
7
|
+
export declare const Live: import("@effect/io/Layer").Layer<never, never, Operations>;
|
|
8
|
+
//# sourceMappingURL=live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/live.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;;;;;AA+FzC,eAAO,MAAM,IAAI,4DAEQ,CAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/services/Operations/live.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
|
+
import * as tsplus_module_2 from "@effect-app/prelude/_ext/date";
|
|
5
|
+
import * as tsplus_module_3 from "@fp-ts/data/Option";
|
|
6
|
+
import * as tsplus_module_4 from "@effect-app/core/Array";
|
|
7
|
+
import * as tsplus_module_5 from "@effect/io/Exit";
|
|
8
|
+
import * as tsplus_module_6 from "@effect/io/Cause";
|
|
9
|
+
import * as tsplus_module_7 from "@effect-app/prelude/schema";
|
|
10
|
+
import * as tsplus_module_8 from "@effect-app/core/Option";
|
|
11
|
+
import * as tsplus_module_9 from "@effect-app/prelude/_ext/Prelude.ext";
|
|
12
|
+
import * as tsplus_module_10 from "@effect-app/prelude/service";
|
|
13
|
+
import * as tsplus_module_11 from "@fp-ts/data/Duration";
|
|
14
|
+
import * as tsplus_module_12 from "@effect-app/core/Effect";
|
|
15
|
+
import * as tsplus_module_13 from "@effect/io/Layer";
|
|
16
|
+
import { RequestException } from "@effect-app/infra/api/reportError";
|
|
17
|
+
import { reportError } from "@effect-app/infra/errorReporter";
|
|
18
|
+
import { Failure, Operation, OperationId, Success } from "@effect-app/prelude/Operations";
|
|
19
|
+
import { Operations } from "./service.js";
|
|
20
|
+
const reportAppError = reportError(cause => new RequestException(cause));
|
|
21
|
+
const make = tracer_1.withCallTrace(fileName_1 + ":9:14")(tsplus_module_1.sync(() => {
|
|
22
|
+
const ops = new Map();
|
|
23
|
+
const makeOp = tracer_1.withCallTrace(fileName_1 + ":11:18")(tsplus_module_1.sync(() => OperationId.make()));
|
|
24
|
+
const cleanup = tracer_1.withCallTrace(fileName_1 + ":13:19")(tsplus_module_1.sync(() => {
|
|
25
|
+
const before = tsplus_module_2.DateSubHours(new Date(), 1);
|
|
26
|
+
tsplus_module_4.ext_itToChunk(ops.entries()).forEach(([id, op]) => {
|
|
27
|
+
const lastChanged = tsplus_module_3.getOrElse(() => op.createdAt)(tsplus_module_3.fromNullable(op.updatedAt));
|
|
28
|
+
if (lastChanged < before) {
|
|
29
|
+
ops.delete(id);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}));
|
|
33
|
+
function addOp(id) {
|
|
34
|
+
return tracer_1.withCallTrace(fileName_1 + ":26:12")(tsplus_module_1.sync(() => {
|
|
35
|
+
ops.set(id, new Operation({ id }));
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
function findOp(id) {
|
|
39
|
+
return tracer_1.withCallTrace(fileName_1 + ":31:12")(tsplus_module_1.sync(() => tsplus_module_3.fromNullable(ops.get(id))));
|
|
40
|
+
}
|
|
41
|
+
function finishOp(id, exit) {
|
|
42
|
+
return tracer_1.withCallTrace(fileName_1 + ":34:23")(tsplus_module_1.flatMap(_ => tracer_1.withCallTrace(fileName_1 + ":35:7")(tsplus_module_1.sync(() => {
|
|
43
|
+
if (tsplus_module_3.isNone(_)) {
|
|
44
|
+
throw new Error("Not found");
|
|
45
|
+
}
|
|
46
|
+
ops.set(id, {
|
|
47
|
+
..._.value,
|
|
48
|
+
updatedAt: new Date(),
|
|
49
|
+
result: tsplus_module_5.isSuccess(exit)
|
|
50
|
+
? new Success({})
|
|
51
|
+
: new Failure({
|
|
52
|
+
message: tsplus_module_6.isInterrupted(exit.cause)
|
|
53
|
+
? tsplus_module_7.LongString("Interrupted")
|
|
54
|
+
: tsplus_module_6.isDie(exit.cause)
|
|
55
|
+
? tsplus_module_7.LongString("Unknown error")
|
|
56
|
+
: tsplus_module_8.getOrUndefined(tsplus_module_3.flatMap(_ => typeof _ === "object" && _ !== null && "message" in _ && tsplus_module_7.LongString.Guard(_.message)
|
|
57
|
+
? tsplus_module_3.some(_.message)
|
|
58
|
+
: tsplus_module_3.none)(tsplus_module_6.failureOption(exit.cause))) ?? null
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
}))))(findOp(id));
|
|
62
|
+
}
|
|
63
|
+
function update(id, progress) {
|
|
64
|
+
return tracer_1.withCallTrace(fileName_1 + ":60:23")(tsplus_module_1.flatMap(_ => tracer_1.withCallTrace(fileName_1 + ":61:7")(tsplus_module_1.sync(() => {
|
|
65
|
+
if (tsplus_module_3.isNone(_)) {
|
|
66
|
+
throw new Error("Not found");
|
|
67
|
+
}
|
|
68
|
+
ops.set(id, { ..._.value, updatedAt: new Date(), progress });
|
|
69
|
+
}))))(findOp(id));
|
|
70
|
+
}
|
|
71
|
+
return tsplus_module_10.make(Operations, {
|
|
72
|
+
cleanup,
|
|
73
|
+
register: tracer_1.withCallTrace(fileName_1 + ":72:8")(tsplus_module_1.tap(id => tsplus_module_1.zipRight(tracer_1.withCallTrace(fileName_1 + ":74:23")(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit))))(tsplus_module_9.logAnnotateScoped("operationId", id))))(makeOp),
|
|
74
|
+
find: findOp,
|
|
75
|
+
update
|
|
76
|
+
});
|
|
77
|
+
}));
|
|
78
|
+
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.forever(tracer_1.withCallTrace(fileName_1 + ":93:4")(tsplus_module_1.delay(tsplus_module_11.minutes(1)))(tracer_1.withCallTrace(fileName_1 + ":86:4")(tsplus_module_1.flatMap(_ => {
|
|
79
|
+
if (tsplus_module_5.isSuccess(_)) {
|
|
80
|
+
return tsplus_module_12.unit;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
return reportAppError(_.cause);
|
|
84
|
+
}
|
|
85
|
+
}))(tsplus_module_1.exit(tracer_1.withCallTrace(fileName_1 + ":84:32")(tsplus_module_1.serviceWithEffect(Operations, _ => _.cleanup)))))));
|
|
86
|
+
/**
|
|
87
|
+
* @tsplus static Operations.Ops Live
|
|
88
|
+
*/
|
|
89
|
+
export const Live = tsplus_module_13.provideMerge(tsplus_module_12.toScopedDiscardLayer(cleanupLoop))(tsplus_module_12.toLayer(make, Operations));
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9saXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFeEUsTUFBTSxJQUFJLGdEQUFHLHFCQUFPLEdBQUcsRUFBRTtJQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQTtJQUM3QyxNQUFNLE1BQU0saURBQUcscUJBQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUEsQ0FBQTtJQUUvQyxNQUFNLE9BQU8saURBQUcscUJBQU8sR0FBRyxFQUFFO1FBQzFCLE1BQU0sTUFBTSxHQUFHLDZCQUFBLElBQUksSUFBSSxFQUFFLEVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDckMsOEJBQUEsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUVWLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxXQUFXLEdBQUcsMEJBQXlDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQTNELDZCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQThCLENBQUE7WUFDaEYsSUFBSSxXQUFXLEdBQUcsTUFB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
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ServiceTagged } from "@effect-app/prelude/service";
|
|
2
|
+
import { Effect } from "@effect/io/Effect";
|
|
3
|
+
import { Scope } from "@effect/io/Scope";
|
|
4
|
+
import { Opt } from "@effect-app/core/Option";
|
|
5
|
+
import { Tag } from "@fp-ts/data/Context";
|
|
6
|
+
import type { Operation, OperationId, OperationProgress } from "@effect-app/prelude/Operations";
|
|
7
|
+
export declare const OperationsId: unique symbol;
|
|
8
|
+
export interface Operations extends ServiceTagged<typeof OperationsId> {
|
|
9
|
+
register: Effect<Scope, never, OperationId>;
|
|
10
|
+
update: (id: OperationId, progress: OperationProgress) => Effect<never, never, void>;
|
|
11
|
+
find: (id: OperationId) => Effect<never, never, Opt<Operation>>;
|
|
12
|
+
cleanup: Effect<never, never, void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @tsplus type Operations.Ops
|
|
16
|
+
*/
|
|
17
|
+
export interface OperationsOps extends Tag<Operations> {
|
|
18
|
+
}
|
|
19
|
+
export declare const Operations: OperationsOps;
|
|
20
|
+
/**
|
|
21
|
+
* @tsplus getter effect/io/Effect forkOperation
|
|
22
|
+
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
23
|
+
*/
|
|
24
|
+
export declare function forkOperation<R, E, A>(self: Effect<R, E, A>): import("@effect/io/Effect").Effect<import("../../RequestContext.js").RequestContext | Operations | Exclude<R, import("@effect/io/Scope").Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
25
|
+
/**
|
|
26
|
+
* @tsplus getter function forkOperation
|
|
27
|
+
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
28
|
+
*/
|
|
29
|
+
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>): (inp: Inp) => import("@effect/io/Effect").Effect<import("../../RequestContext.js").RequestContext | Operations | Exclude<R, import("@effect/io/Scope").Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
30
|
+
/**
|
|
31
|
+
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
32
|
+
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
33
|
+
*/
|
|
34
|
+
export declare function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>): import("@effect/io/Effect").Effect<import("../../RequestContext.js").RequestContext | Operations | Exclude<R, import("@effect/io/Scope").Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
35
|
+
/**
|
|
36
|
+
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
37
|
+
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
38
|
+
*/
|
|
39
|
+
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<R, E, A>, fnc: (id: OperationId) => Effect<R2, E2, A2>): import("@effect/io/Effect").Effect<import("../../RequestContext.js").RequestContext | Operations | Exclude<R, import("@effect/io/Scope").Scope> | Exclude<R2, import("@effect/io/Scope").Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
40
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE/F,eAAO,MAAM,YAAY,eAAyB,CAAA;AAClD,MAAM,WAAW,UAAW,SAAQ,aAAa,CAAC,OAAO,YAAY,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC3C,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACpF,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IAC/D,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,GAAG,CAAC,UAAU,CAAC;CAAG;AAEzD,eAAO,MAAM,UAAU,EAAE,aAAiC,CAAA;;;;;AAK1D,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,0MAS3D;;;;;AAKD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SACvE,GAAG,4MACjB;;;;;AAKD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,0MASnF;;;;;AAKD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EACzD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1C,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,0PAW7C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/services/Operations/service.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@fp-ts/data/Context";
|
|
4
|
+
import * as tsplus_module_2 from "@effect/io/Scope";
|
|
5
|
+
import * as tsplus_module_3 from "@effect-app/infra/api/reportError";
|
|
6
|
+
import * as tsplus_module_4 from "@effect/io/Effect";
|
|
7
|
+
export const forkOperation = forkOperation_1;
|
|
8
|
+
export const OperationsId = Symbol("OperationsId");
|
|
9
|
+
export const Operations = tsplus_module_1.Tag();
|
|
10
|
+
/**
|
|
11
|
+
* @tsplus getter effect/io/Effect forkOperation
|
|
12
|
+
*/
|
|
13
|
+
function forkOperation_1(self) {
|
|
14
|
+
return tracer_1.withCallTrace(fileName_1 + ":22:21")(tsplus_module_4.serviceWithEffect(Operations, Operations => tracer_1.withCallTrace(fileName_1 + ":25:10")(tsplus_module_4.flatMap(scope => tracer_1.withCallTrace(fileName_1 + ":27:14")(tsplus_module_4.tap(() => tsplus_module_3.forkDaemonReportRequestUnexpected(tracer_1.withCallTrace(fileName_1 + ":27:29")(tsplus_module_2.use(scope))(self))))(tracer_1.withCallTrace(fileName_1 + ":26:31")(tsplus_module_2.extend(scope))(Operations.register))))(tracer_1.withCallTrace(fileName_1 + ":24:13")(tsplus_module_2.make()))));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @tsplus getter function forkOperation
|
|
18
|
+
*/
|
|
19
|
+
export function forkOperationFunction(fnc) {
|
|
20
|
+
return (inp) => forkOperation_1(fnc(inp));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
24
|
+
*/
|
|
25
|
+
export function forkOperation2(self) {
|
|
26
|
+
return tracer_1.withCallTrace(fileName_1 + ":43:21")(tsplus_module_4.serviceWithEffect(Operations, Operations => tracer_1.withCallTrace(fileName_1 + ":46:10")(tsplus_module_4.flatMap(scope => tracer_1.withCallTrace(fileName_1 + ":48:14")(tsplus_module_4.tap(id => tsplus_module_3.forkDaemonReportRequestUnexpected(tracer_1.withCallTrace(fileName_1 + ":48:33")(tsplus_module_2.use(scope))(self(id)))))(tracer_1.withCallTrace(fileName_1 + ":47:31")(tsplus_module_2.extend(scope))(Operations.register))))(tracer_1.withCallTrace(fileName_1 + ":45:13")(tsplus_module_2.make()))));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
30
|
+
*/
|
|
31
|
+
export function forkOperationWithEffect(self, fnc) {
|
|
32
|
+
return tracer_1.withCallTrace(fileName_1 + ":60:21")(tsplus_module_4.serviceWithEffect(Operations, Operations => tracer_1.withCallTrace(fileName_1 + ":63:10")(tsplus_module_4.flatMap(scope => tracer_1.withCallTrace(fileName_1 + ":66:14")(tsplus_module_4.tap(opId => tracer_1.withCallTrace(fileName_1 + ":66:61")(tsplus_module_2.extend(scope))(tsplus_module_4.forkScoped(tsplus_module_4.interruptible(fnc(opId))))))(tracer_1.withCallTrace(fileName_1 + ":65:14")(tsplus_module_4.tap(opId => tsplus_module_3.forkDaemonReportRequestUnexpected(tracer_1.withCallTrace(fileName_1 + ":65:37")(tsplus_module_2.use(scope))(self(opId)))))(tracer_1.withCallTrace(fileName_1 + ":64:31")(tsplus_module_2.extend(scope))(Operations.register)))))(tracer_1.withCallTrace(fileName_1 + ":62:13")(tsplus_module_2.make()))));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OzthQW9CZ0IsYUFBYTtBQWxCN0IsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtBQWFsRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLGdCQUFBLEdBQUcsRUFBYyxDQUFBO0FBRTFEOztHQUVHO0FBQ0gseUJBQXVDLElBQXFCO0lBQzFELHFEQUFPLGtDQUFBLFVBQVUsRUFDZixVQUFVLENBQUMsRUFBRSxDQUNYLHNFQUNXLEtBQUssQ0FBQyxFQUFFLENBQ2Ysa0VBQ08sR0FBRyxFQUFFLG1EQUFDLGtFQUFTLEtBQUssR0FBZCxJQUFJLENBQVcsQ0FBa0MsR0FEOUQscUVBQTJCLEtBQUssR0FBaEMsVUFBVSxDQUFDLFFBQVEsQ0FBYyxDQUM4QixpREFIbkUsc0JBQVksRUFJVCxDQUNOLEVBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQWUsR0FBa0M7SUFDcEYsT0FBTyxDQUFDLEdBQVEsRUFBRSxFQUFFLGlCQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBYyxDQUFBO0FBQzdDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQVUsSUFBNEM7SUFDbEYscURBQU8sa0NBQUEsVUFBVSxFQUNmLFVBQVUsQ0FBQyxFQUFFLENBQ1gsc0VBQ1csS0FBSyxDQUFDLEVBQUUsQ0FDZixrRUFDTyxFQUFFLENBQUMsRUFBRSxtREFBQyxrRUFBYSxLQUFLLEdBQWxCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBVyxDQUFrQyxHQURsRSxxRUFBMkIsS0FBSyxHQUFoQyxVQUFVLENBQUMsUUFBUSxDQUFjLENBQ2tDLGlEQUh2RSxzQkFBWSxFQUlULENBQ04sRUFBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsSUFBMEMsRUFDMUMsR0FBNEM7SUFFNUMscURBQU8sa0NBQUEsVUFBVSxFQUNmLFVBQVUsQ0FBQyxFQUFFLENBQ1gsc0VBQ1csS0FBSyxDQUFDLEVBQUUsQ0FDZixrRUFFTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFFQUEwQyxLQUFLLDREQUEvQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQXVDLEdBRi9ELGtFQUNPLElBQUksQ0FBQyxFQUFFLG1EQUFDLGtFQUFlLEtBQUssR0FBcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFXLENBQWtDLEdBRHRFLHFFQUEyQixLQUFLLEdBQWhDLFVBQVUsQ0FBQyxRQUFRLENBQWMsQ0FDc0MsQ0FDUCxpREFKcEUsc0JBQVksRUFLVCxDQUNOLEVBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../../_src/services/Operations.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./Operations/service.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"proper-lockfile": "^4.1.2",
|
|
20
20
|
"pure-rand": "^6.0.0",
|
|
21
21
|
"redlock": "^4.2.0",
|
|
22
|
+
"@effect-app/prelude": "0.11.5",
|
|
22
23
|
"@effect-app/core": "0.11.3",
|
|
23
|
-
"@effect-app/infra-adapters": "0.11.3",
|
|
24
24
|
"@effect-app/schema": "0.11.3",
|
|
25
|
-
"@effect-app/
|
|
25
|
+
"@effect-app/infra-adapters": "0.11.3"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/cli": "^7.20.7",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"ts-node": "^10.9.1",
|
|
43
43
|
"typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.164/compiler/typescript.tgz",
|
|
44
44
|
"vitest": "^0.27.3",
|
|
45
|
-
"@effect-app/compiler": "0.7.
|
|
45
|
+
"@effect-app/compiler": "0.7.2"
|
|
46
46
|
},
|
|
47
47
|
"typesVersions": {
|
|
48
48
|
"*": {
|
|
@@ -422,6 +422,36 @@
|
|
|
422
422
|
"default": "./_cjs/services/Emailer/service.cjs"
|
|
423
423
|
}
|
|
424
424
|
},
|
|
425
|
+
"./services/Operations": {
|
|
426
|
+
"import": {
|
|
427
|
+
"types": "./dist/services/Operations.d.ts",
|
|
428
|
+
"default": "./dist/services/Operations.js"
|
|
429
|
+
},
|
|
430
|
+
"require": {
|
|
431
|
+
"types": "./dist/services/Operations.d.ts",
|
|
432
|
+
"default": "./_cjs/services/Operations.cjs"
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
"./services/Operations/live": {
|
|
436
|
+
"import": {
|
|
437
|
+
"types": "./dist/services/Operations/live.d.ts",
|
|
438
|
+
"default": "./dist/services/Operations/live.js"
|
|
439
|
+
},
|
|
440
|
+
"require": {
|
|
441
|
+
"types": "./dist/services/Operations/live.d.ts",
|
|
442
|
+
"default": "./_cjs/services/Operations/live.cjs"
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"./services/Operations/service": {
|
|
446
|
+
"import": {
|
|
447
|
+
"types": "./dist/services/Operations/service.d.ts",
|
|
448
|
+
"default": "./dist/services/Operations/service.js"
|
|
449
|
+
},
|
|
450
|
+
"require": {
|
|
451
|
+
"types": "./dist/services/Operations/service.d.ts",
|
|
452
|
+
"default": "./_cjs/services/Operations/service.cjs"
|
|
453
|
+
}
|
|
454
|
+
},
|
|
425
455
|
"./services/Repository": {
|
|
426
456
|
"import": {
|
|
427
457
|
"types": "./dist/services/Repository.d.ts",
|