@effect-app/infra 0.22.3 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/_cjs/RequestContext.cjs +2 -1
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +13 -11
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +3 -2
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +47 -18
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_src/RequestContext.ts +6 -1
- package/_src/services/QueueMaker/memQueue.ts +3 -1
- package/_src/services/QueueMaker/sbqueue.ts +2 -0
- package/_src/services/Store/Memory.ts +35 -14
- package/_src/services/Store/service.ts +1 -0
- package/dist/RequestContext.d.ts +6 -0
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +3 -2
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +13 -11
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +3 -2
- package/dist/services/Repository.d.ts +14 -14
- package/dist/services/Store/Memory.d.ts +4 -1
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +45 -19
- package/dist/services/Store/service.d.ts +1 -0
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/_cjs/RequestContext.cjs
CHANGED
|
@@ -17,7 +17,8 @@ class RequestContextParent extends tsplus_module_1.MNModel()({
|
|
|
17
17
|
id: tsplus_module_1.prop(RequestId),
|
|
18
18
|
name: tsplus_module_1.prop(tsplus_module_1.ReasonableString),
|
|
19
19
|
locale: tsplus_module_1.prop(tsplus_module_1.literal("en", "de")),
|
|
20
|
-
createdAt: tsplus_module_1.defaultProp(tsplus_module_1.date)
|
|
20
|
+
createdAt: tsplus_module_1.defaultProp(tsplus_module_1.date),
|
|
21
|
+
namespace: tsplus_module_1.optProp(tsplus_module_1.ReasonableString)
|
|
21
22
|
}) {}
|
|
22
23
|
exports.RequestContextParent = RequestContextParent;
|
|
23
24
|
function makeRequestId() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.cjs","mappings":";;;;;;;;;;;;AAAO,MAAMA,SAAS,mBAAGC,QAAQ;AAAA;AAG3B,MAAOC,oBAAqB,SAAQC,uBAAO,EAK9C,CAAC;EACFC,IAAI,EAAED,oBAAI,CAACA,uBAAO,CAAC,gBAAgB,CAAC,CAAC;EACrCE,EAAE,EAAEF,oBAAI,CAACH,SAAS,CAAC;EACnBM,IAAI,EAAEH,oBAAI,iBAACI,gBAAgB,CAAC;EAC5BC,MAAM,EAAEL,oBAAI,CAACA,uBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EACjCM,SAAS,EAAEN,2BAAW,iBAACO,IAAI;
|
|
1
|
+
{"version":3,"file":"RequestContext.cjs","mappings":";;;;;;;;;;;;AAAO,MAAMA,SAAS,mBAAGC,QAAQ;AAAA;AAG3B,MAAOC,oBAAqB,SAAQC,uBAAO,EAK9C,CAAC;EACFC,IAAI,EAAED,oBAAI,CAACA,uBAAO,CAAC,gBAAgB,CAAC,CAAC;EACrCE,EAAE,EAAEF,oBAAI,CAACH,SAAS,CAAC;EACnBM,IAAI,EAAEH,oBAAI,iBAACI,gBAAgB,CAAC;EAC5BC,MAAM,EAAEL,oBAAI,CAACA,uBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EACjCM,SAAS,EAAEN,2BAAW,iBAACO,IAAI,CAAC;EAC5BC,SAAS,EAAER,uBAAO,iBAACI,gBAAgB;CACpC,CAAC;AAAG;AAIC,SAAUK,aAAa;EAC3B,OAAOZ,SAAS,CAACa,IAAI,EAAE;AACzB;AAEA;;;;AAIM,MAAOC,cAAe,SAAQX,uBAAO,EAKxC,CAAC;EACF,GAAGD,oBAAoB,CAACa,IAAI,CAAC,IAAI,CAAC;EAClCV,EAAE,EAAEF,2BAAW,CAACH,SAAS,EAAEY,aAAa,CAAC;EACzCI,MAAM,EAAEb,oBAAI,CAACH,SAAS,CAAC;EACvBiB,MAAM,EAAEd,uBAAO,CAACD,oBAAoB;CACrC,CAAC;EACA,OAAOgB,OAAO,CAEZD,MAAsB,EACtBE,OAA8C;IAE9C,OAAO,IAAIL,cAAc,CAAC;MACxB,GAAGK,OAAO;MACVH,MAAM,EAAEC,MAAM,CAACD,MAAM;MACrBC;KACD,CAAC;EACJ;EAEA,OAAOG,YAAY,CAAaC,IAAoB;IAClD,OAAO;MACLC,aAAa,EAAED,IAAI,CAACf,IAAI;MACxBE,MAAM,EAAEa,IAAI,CAACb,MAAM;MACnB,IAAIa,IAAI,CAACJ,MAAM,GACX;QAAEM,mBAAmB,EAAEF,IAAI,CAACJ,MAAM,CAACX,IAAI;QAAEkB,YAAY,EAAEH,IAAI,CAACJ,MAAM,CAACT;MAAM,CAAE,GAC3E,EAAE;KACP;EACH;;AAMF;;;AAAA;AAGO,MAAMiB,GAAG,GAAGC,mBAAG,EAAkB;AAAA;AAUxC,WAAiBxB,oBAAoB;EAWtBA,4BAAO,GAAe;IAAEyB,CAAC,EAAE;EAAE,CAAE;AAY9C,CAAC,EAvBgBzB,oBAAoB,oCAApBA,oBAAoB;AAiCrC,WAAiBY,cAAc;EAahBA,sBAAO,GAAe;IAAEa,CAAC,EAAE;EAAE,CAAE;AAY9C,CAAC,EAzBgBb,cAAc,8BAAdA,cAAc","names":["RequestId","StringId","RequestContextParent","tsplus_module_1","_tag","id","name","ReasonableString","locale","createdAt","date","namespace","makeRequestId","make","RequestContext","omit","rootId","parent","inherit","newSelf","toMonitoring","self","operationName","parentOperationName","parentLocale","tag","tsplus_module_2","$"],"sourceRoot":"","sources":["../_src/RequestContext.ts"],"sourcesContent":[null]}
|
|
@@ -12,11 +12,13 @@ var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/infra/service
|
|
|
12
12
|
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
|
|
13
13
|
var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/prelude/_ext/misc"));
|
|
14
14
|
var tsplus_module_7 = _interopRequireWildcard(require("@effect-app/prelude/schema"));
|
|
15
|
-
var tsplus_module_8 = _interopRequireWildcard(require("@effect
|
|
16
|
-
var tsplus_module_9 = _interopRequireWildcard(require("@effect/
|
|
17
|
-
var tsplus_module_10 = _interopRequireWildcard(require("@effect
|
|
18
|
-
var tsplus_module_11 = _interopRequireWildcard(require("@effect/
|
|
15
|
+
var tsplus_module_8 = _interopRequireWildcard(require("@effect/io/Fiber"));
|
|
16
|
+
var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/infra/api/setupRequest"));
|
|
17
|
+
var tsplus_module_10 = _interopRequireWildcard(require("@effect/io/Cause"));
|
|
18
|
+
var tsplus_module_11 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
19
|
+
var tsplus_module_12 = _interopRequireWildcard(require("@effect/io/Exit"));
|
|
19
20
|
var _memQueue = require("@effect-app/infra-adapters/memQueue");
|
|
21
|
+
var _Memory = require("../Store/Memory.cjs");
|
|
20
22
|
var _errors2 = require("./errors.cjs");
|
|
21
23
|
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); }
|
|
22
24
|
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; }
|
|
@@ -52,11 +54,11 @@ function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent, provi
|
|
|
52
54
|
id: body.id,
|
|
53
55
|
locale: "en",
|
|
54
56
|
name: tsplus_module_7.ReasonableString(body._tag)
|
|
55
|
-
}))(tsplus_module_1.zipRight(silence(handleEvent(body)))(tsplus_module_6.logAnnotates({
|
|
57
|
+
}))(tsplus_module_1.zipRight(silence(handleEvent(body)))(tsplus_module_1.tap(() => _Memory.restoreFromRequestContext)(tsplus_module_6.logAnnotates({
|
|
56
58
|
body: tsplus_module_5.RecordPretty(tsplus_module_5.object$(body)),
|
|
57
59
|
meta: tsplus_module_5.RecordPretty(tsplus_module_5.object$(meta))
|
|
58
|
-
})(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)))))(tsplus_module_1.orDie(tsplus_module_1.flatMap(parseDrain)(tsplus_module_1.sync(() => JSON.parse(msg)))));
|
|
59
|
-
return yield* $(tsplus_module_1.forkScoped(
|
|
60
|
+
})(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`))))))(tsplus_module_1.orDie(tsplus_module_1.flatMap(parseDrain)(tsplus_module_1.sync(() => JSON.parse(msg)))));
|
|
61
|
+
return yield* $(tsplus_module_1.forkScoped(tsplus_module_9.setupReq3((0, _errors2.reportFailure)("drain")(tsplus_module_1.forever(tsplus_module_1.flatMap(x => tsplus_module_1.flatMap(_ => tsplus_module_8.join(_))(tsplus_module_1.fork(tsplus_module_1.uninterruptible(processMessage(x)))))(qReply.take()))), "Queue.ReceiveMessage")));
|
|
60
62
|
})
|
|
61
63
|
};
|
|
62
64
|
});
|
|
@@ -66,15 +68,15 @@ function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent, provi
|
|
|
66
68
|
function silence(inp) {
|
|
67
69
|
return tsplus_module_1.flatMap(result => tsplus_module_1.gen(function* ($) {
|
|
68
70
|
const requestContext = yield* $(tsplus_module_1.service(tsplus_module_2.tag));
|
|
69
|
-
return yield* $(
|
|
70
|
-
if (
|
|
71
|
+
return yield* $(tsplus_module_12.match(cause => {
|
|
72
|
+
if (tsplus_module_10.isInterrupted(cause)) {
|
|
71
73
|
return tsplus_module_1.failCause(cause);
|
|
72
74
|
}
|
|
73
75
|
(0, _errors2.reportQueueError)(cause, {
|
|
74
76
|
requestContext
|
|
75
77
|
});
|
|
76
|
-
return
|
|
77
|
-
}, () =>
|
|
78
|
+
return tsplus_module_11.unit;
|
|
79
|
+
}, () => tsplus_module_11.unit)(result));
|
|
78
80
|
}))(tsplus_module_1.exit(inp));
|
|
79
81
|
}
|
|
80
82
|
//# sourceMappingURL=memQueue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"memQueue.cjs","mappings":"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","names":["makeMemQueue","queueName","queueDrainName","encoder","makeHandleEvent","provideContext","parseDrain","tsplus_module_1","$","mem","MemQueue","q","getOrCreateQueue","qReply","publish","messages","requestContext","tsplus_module_3","m","_","offer","JSON","stringify","body","meta","drain","handleEvent","processMessage","msg","RequestContext","inherit","id","locale","name","tsplus_module_7","_tag","silence","restoreFromRequestContext","tsplus_module_6","parse","tsplus_module_9","x","tsplus_module_8","take","inp","result","tsplus_module_12","cause","tsplus_module_10","tsplus_module_11"],"sourceRoot":"","sources":["../../../_src/services/QueueMaker/memQueue.ts"],"sourcesContent":[null]}
|
|
@@ -16,6 +16,7 @@ var tsplus_module_8 = _interopRequireWildcard(require("@effect-app/infra/service
|
|
|
16
16
|
var tsplus_module_9 = _interopRequireWildcard(require("@effect/io/Layer"));
|
|
17
17
|
var _ServiceBus = require("@effect-app/infra-adapters/ServiceBus");
|
|
18
18
|
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
19
|
+
var _Memory = require("../Store/Memory.cjs");
|
|
19
20
|
var _errors2 = require("./errors.cjs");
|
|
20
21
|
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); }
|
|
21
22
|
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; }
|
|
@@ -39,10 +40,10 @@ function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHandleEven
|
|
|
39
40
|
id: body.id,
|
|
40
41
|
locale: "en",
|
|
41
42
|
name: tsplus_module_5.ReasonableString(body._tag)
|
|
42
|
-
}))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.zipRight(handleEvent(body))(tsplus_module_4.logAnnotates({
|
|
43
|
+
}))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.zipRight(handleEvent(body))(tsplus_module_1.tap(() => _Memory.restoreFromRequestContext)(tsplus_module_4.logAnnotates({
|
|
43
44
|
body: tsplus_module_3.RecordPretty(tsplus_module_3.object$(body)),
|
|
44
45
|
meta: tsplus_module_3.RecordPretty(tsplus_module_3.object$(meta))
|
|
45
|
-
})(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`))))))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.orDie(tsplus_module_1.flatMap(x => parseDrain(x))(tsplus_module_1.sync(() => JSON.parse(messageBody)))))), "Queue.ReceiveMessage")));
|
|
46
|
+
})(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)))))))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.orDie(tsplus_module_1.flatMap(x => parseDrain(x))(tsplus_module_1.sync(() => JSON.parse(messageBody)))))), "Queue.ReceiveMessage")));
|
|
46
47
|
}
|
|
47
48
|
return yield* $(tsplus_module_1.provideSomeLayer(receiverLayer)((0, _ServiceBus.subscribe)({
|
|
48
49
|
processMessage: x => tsplus_module_1.uninterruptible(processMessage(x.body)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.cjs","mappings":";;;;;;;;;;;;;;;;AAAA;AASA;AAGA;AAA8C;AAAA;AAG9C;;;AAGM,SAAUA,mBAAmB,CAQjCC,UAAkB,EAClBC,cAAsB,EACtBC,OAAyD,EACzDC,eAAwF,EACxFC,cAEuC,EACvCC,UAGmF;EAEnF,OAAOC,oBAAW,WAAUC,CAAC;IAC3B,MAAMC,CAAC,GAAG,OAAOD,CAAC,yBAACE,kBAAM,EAAQ;IACjC,MAAMC,QAAQ,GAAG,OAAOH,CAAC,yBAACI,oBAAQ,EAAQ;IAC1C,MAAMC,aAAa,GAAGC,8CAAQ,EAAWH,QAAQ,CAAC;IAElD,OAAO;MACLI,KAAK,EAAER,oBAAW,WAAUC,CAAC;QAC3B,MAAMQ,WAAW,GAAG,OAAOR,CAAC,CAACJ,eAAe,CAAC;QAC7C;QACA,SAASa,cAAc,CAACC,WAAgB;UACtC,oDAAOC,kDAII,CAAC;YAAEC,IAAI;YAAEC;UAAI,CAAE,
|
|
1
|
+
{"version":3,"file":"sbqueue.cjs","mappings":"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","names":["makeServiceBusQueue","_queueName","queueDrainName","encoder","makeHandleEvent","provideContext","parseDrain","tsplus_module_1","$","s","Sender","receiver","Receiver","receiverLayer","tsplus_module_2","drain","handleEvent","processMessage","messageBody","tsplus_module_6","body","meta","RequestContext","inherit","id","locale","name","tsplus_module_5","_tag","report","restoreFromRequestContext","tsplus_module_4","x","JSON","parse","processError","err","error","publish","messages","requestContext","sendMessages","map","stringify","messageId","contentType","makeServiceBusLayers","url","queueName","tsplus_module_9","cause"],"sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"sourcesContent":[null]}
|
|
@@ -5,18 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.makeMemoryStore = exports.MemoryStoreLive = void 0;
|
|
7
7
|
exports.memFilter = memFilter;
|
|
8
|
+
exports.storeId = exports.restoreFromRequestContext = void 0;
|
|
8
9
|
var tsplus_module_1 = _interopRequireWildcard(require("@effect/data/Chunk"));
|
|
9
10
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Chunk"));
|
|
10
11
|
var tsplus_module_3 = _interopRequireWildcard(require("@fp-ts/core/Option"));
|
|
11
12
|
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
12
|
-
var tsplus_module_5 = _interopRequireWildcard(require("@effect/io/
|
|
13
|
-
var tsplus_module_6 = _interopRequireWildcard(require("@effect/
|
|
14
|
-
var tsplus_module_7 = _interopRequireWildcard(require("@effect
|
|
15
|
-
var tsplus_module_8 = _interopRequireWildcard(require("@effect
|
|
13
|
+
var tsplus_module_5 = _interopRequireWildcard(require("@effect/io/FiberRef"));
|
|
14
|
+
var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/infra/RequestContext"));
|
|
15
|
+
var tsplus_module_7 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
16
|
+
var tsplus_module_8 = _interopRequireWildcard(require("@effect/io/Ref"));
|
|
17
|
+
var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/core/_ext/Iterable"));
|
|
18
|
+
var tsplus_module_10 = _interopRequireWildcard(require("@effect-app/core/Tag"));
|
|
19
|
+
require("../../RequestContext.cjs");
|
|
16
20
|
var _service = require("./service.cjs");
|
|
17
21
|
var _utils = require("./utils.cjs");
|
|
18
22
|
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); }
|
|
19
23
|
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; }
|
|
24
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
25
|
+
|
|
20
26
|
function memFilter(filter, cursor) {
|
|
21
27
|
return c => {
|
|
22
28
|
const skip = cursor?.skip;
|
|
@@ -34,34 +40,57 @@ function memFilter(filter, cursor) {
|
|
|
34
40
|
return tsplus_module_4.ext_itToChunk(r);
|
|
35
41
|
};
|
|
36
42
|
}
|
|
43
|
+
const storeId = tsplus_module_5.unsafeMake("primary");
|
|
44
|
+
exports.storeId = storeId;
|
|
45
|
+
const restoreFromRequestContext = tsplus_module_7.serviceWithEffect(tsplus_module_6.tag, ctx => tsplus_module_5.set(ctx.parent?.namespace ?? ctx.namespace ?? "primary")(storeId));
|
|
46
|
+
exports.restoreFromRequestContext = restoreFromRequestContext;
|
|
37
47
|
const makeMemoryStore = () => ({
|
|
38
|
-
make: (name, existing,
|
|
48
|
+
make: (name, existing, config) => tsplus_module_7.gen(function* ($) {
|
|
39
49
|
const updateETag = (0, _utils.makeUpdateETag)(name);
|
|
40
|
-
const items = yield* $(existing ??
|
|
41
|
-
const
|
|
42
|
-
const
|
|
50
|
+
const items = yield* $(existing ?? tsplus_module_7.sync(() => new Map()));
|
|
51
|
+
const makeStore = () => new Map([...items.entries()].map(([id, e]) => [id, (0, _utils.makeETag)(e)]));
|
|
52
|
+
const storesSem = tsplus_module_7.unsafeMakeSemaphore(1);
|
|
53
|
+
const stores = new Map([["primary", tsplus_module_8.unsafeMake(makeStore())]]);
|
|
54
|
+
const getStore = tsplus_module_7.flatMap(namespace => {
|
|
55
|
+
const store = stores.get(namespace);
|
|
56
|
+
if (!store) {
|
|
57
|
+
if (!config?.allowNamespace || !config.allowNamespace(namespace)) {
|
|
58
|
+
throw new Error(`Namespace ${namespace} not allowed!`);
|
|
59
|
+
}
|
|
60
|
+
return storesSem.withPermits(1)(tsplus_module_7.suspendSucceed(() => {
|
|
61
|
+
const store = stores.get(namespace);
|
|
62
|
+
if (store) return tsplus_module_8.get(store);
|
|
63
|
+
const newStore = tsplus_module_8.unsafeMake(makeStore());
|
|
64
|
+
stores.set(namespace, newStore);
|
|
65
|
+
return tsplus_module_8.get(newStore);
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
return tsplus_module_8.get(store);
|
|
69
|
+
})(tsplus_module_5.get(storeId));
|
|
70
|
+
const setStore = m => tsplus_module_7.flatMap(namespace => tsplus_module_8.set(m)(stores.get(namespace)))(tsplus_module_5.get(storeId));
|
|
71
|
+
const sem = tsplus_module_7.unsafeMakeSemaphore(1);
|
|
43
72
|
const withPermit = sem.withPermits(1);
|
|
44
|
-
const values =
|
|
45
|
-
const all =
|
|
46
|
-
const batchSet = items => withPermit(
|
|
73
|
+
const values = tsplus_module_7.map(s => s.values())(getStore);
|
|
74
|
+
const all = tsplus_module_7.map(tsplus_module_1.fromIterable)(values);
|
|
75
|
+
const batchSet = items => withPermit(tsplus_module_7.map(_ => _.toReadonlyArray())(tsplus_module_7.tap(items => tsplus_module_7.flatMap(_ => setStore(_))(tsplus_module_7.map(m => {
|
|
47
76
|
const mut = m;
|
|
48
77
|
items.forEach(e => mut.set(e.id, e));
|
|
49
78
|
return mut;
|
|
50
|
-
})(
|
|
79
|
+
})(getStore)))(tsplus_module_9.ext_forEach(items, i => tsplus_module_7.flatMap(current => updateETag(i, current))(s.find(i.id))))));
|
|
51
80
|
const s = {
|
|
52
81
|
all,
|
|
53
|
-
find: id =>
|
|
54
|
-
filter: (filter, cursor) =>
|
|
55
|
-
filterJoinSelect: filter =>
|
|
56
|
-
set: e => withPermit(
|
|
82
|
+
find: id => tsplus_module_7.map(_ => tsplus_module_3.fromNullable(_.get(id)))(getStore),
|
|
83
|
+
filter: (filter, cursor) => tsplus_module_7.map(memFilter(filter, cursor))(all),
|
|
84
|
+
filterJoinSelect: filter => tsplus_module_7.map(c => c.flatMap((0, _utils.codeFilterJoinSelect)(filter)))(all),
|
|
85
|
+
set: e => withPermit(tsplus_module_7.tap(e => tsplus_module_7.flatMap(_ => setStore(_))(tsplus_module_7.map(_ => new Map([..._, [e.id, e]]))(getStore)))(tsplus_module_7.flatMap(current => updateETag(e, current))(s.find(e.id)))),
|
|
57
86
|
batchSet,
|
|
58
87
|
bulkSet: batchSet,
|
|
59
|
-
remove: e => withPermit(
|
|
88
|
+
remove: e => withPermit(tsplus_module_7.flatMap(_ => setStore(_))(tsplus_module_7.map(_ => new Map([..._].filter(([_]) => _ !== e.id)))(getStore)))
|
|
60
89
|
};
|
|
61
90
|
return s;
|
|
62
91
|
})
|
|
63
92
|
});
|
|
64
93
|
exports.makeMemoryStore = makeMemoryStore;
|
|
65
|
-
const MemoryStoreLive =
|
|
94
|
+
const MemoryStoreLive = tsplus_module_10.makeLayer(_service.StoreMaker, makeMemoryStore());
|
|
66
95
|
exports.MemoryStoreLive = MemoryStoreLive;
|
|
67
96
|
//# sourceMappingURL=Memory.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"Memory.cjs","mappings":"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","names":["memFilter","filter","cursor","c","skip","limit","tsplus_module_3","tsplus_module_1","r","undefined","storeId","tsplus_module_5","restoreFromRequestContext","tsplus_module_7","ctx","parent","namespace","makeMemoryStore","make","name","existing","config","$","updateETag","items","Map","makeStore","entries","map","id","e","storesSem","stores","tsplus_module_8","getStore","store","get","allowNamespace","Error","withPermits","newStore","set","setStore","m","sem","withPermit","values","s","all","batchSet","_","toReadonlyArray","mut","forEach","tsplus_module_9","i","current","find","filterJoinSelect","flatMap","bulkSet","remove","MemoryStoreLive","tsplus_module_10"],"sourceRoot":"","sources":["../../../_src/services/Store/Memory.ts"],"sourcesContent":[null]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.cjs","mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"service.cjs","mappings":";;;;;;;;;;AAyFO,MAAMA,UAAU,GAAkBC,mBAAG,EAAc;AAE1D;;;AAAA;AAGO,MAAMC,OAAO,GAAGC,qBAAY,MAAK;EACtC,MAAMC,KAAK,GAAG,IAAIC,GAAG,EAAkB;EACvC,MAAMC,OAAO,GAAIC,EAAU,IAAKH,KAAK,CAACI,GAAG,CAACD,EAAE,CAAC;EAC7C,MAAME,OAAO,GAAG,CAACF,EAAU,EAAEG,IAAwB,KAAI;IACvDA,IAAI,KAAKC,SAAS,GAAGP,KAAK,CAACQ,MAAM,CAACL,EAAE,CAAC,GAAGH,KAAK,CAACS,GAAG,CAACN,EAAE,EAAEG,IAAI,CAAC;EAC7D,CAAC;EAED,MAAMI,WAAW,GAAG,IAAIT,GAAG,EAGxB;EAEH,MAAMU,WAAW,GAAG,IAAIV,GAAG,EAGxB;EAEH,MAAMW,YAAY,GAAG,CACnBC,CAAkB,EAClBC,EAA+B,KAC7B;IACFH,WAAW,CAACF,GAAG,CAACI,CAAC,EAAEC,EAAE,CAAC;IACtB,OAAOA,EAAE;EACX,CAAC;EAED,MAAMC,SAAS,GAAc;IAC3B;IACA;IACAC,GAAG,EAAE,KAAK;IACVC,KAAK,EAAE;MACLC,cAAc,EAAEL,CAAC,IAAIF,WAAW,CAACP,GAAG,CAACS,CAAC,CAAC,IAAID,YAAY,CAACC,CAAC,EAAEM,CAAC,IAAIJ,SAAS,CAACE,KAAM,CAACG,QAAQ,CAACD,CAAC,EAAEN,CAAC,CAAC,CAAC;MAChGQ,eAAe,EAAEC,OAAO,IAAG;QACzB,OAAOC,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACG,MAAM,CAAC,CAACC,IAAI,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAI;UACrDF,IAAI,CAACC,CAAC,CAAC,GAAGZ,SAAS,CAACE,KAAM,CAACC,cAAc,CAACU,CAAC,CAAC;UAC5C,OAAOF,IAAI;QACb,CAAC,EAAE,EAAS,CAAC;MACf,CAAC;MACDN,QAAQ,EAAE,CAACD,CAAC,EAAEU,KAAK,KAAS;QAC1B,MAAMC,CAAC,GAAGpB,WAAW,CAACN,GAAG,CAACyB,KAAK,CAAC;QAChC,IAAIC,CAAC,EAAE;UACL,MAAMC,CAAC,GAAGD,CAAC,CAAC1B,GAAG,CAACe,CAAC,CAAC;UAClB,IAAIY,CAAC,EAAE;YACL;YACA,OAAOA,CAAC;WACT,MAAM;YACL,MAAMC,EAAE,GAAGH,KAAK,CAACV,CAAC,EAAEJ,SAAS,CAAC;YAC9Be,CAAC,CAACrB,GAAG,CAACU,CAAC,EAAEa,EAAE,CAAC;YACZ,OAAOA,EAAE;;SAEZ,MAAM;UACL,MAAMA,EAAE,GAAGH,KAAK,CAACV,CAAC,EAAEJ,SAAS,CAAC;UAC9BL,WAAW,CAACD,GAAG,CAACoB,KAAK,EAAE,IAAI5B,GAAG,CAAC,CAAC,CAACkB,CAAC,EAAEa,EAAE,CAAC,CAAC,CAAC,CAAC;UAC1C,OAAOA,EAAE;;MAEb;;GAEH;EAED,OAAO;IACL5B,GAAG,EAAEF,OAAO;IACZO,GAAG,EAAEJ,OAAO;IACZU;GACD;AACH,CAAC,CAAC;AAAA;AAMK,MAAMkB,UAAU,GAAkBpC,mBAAG,EAAc;AAAA","names":["StoreMaker","tsplus_module_1","makeMap","tsplus_module_2","etags","Map","getEtag","id","get","setEtag","eTag","undefined","delete","set","parsedCache","parserCache","setAndReturn","p","np","parserEnv","lax","cache","getOrSetParser","i","getOrSet","getOrSetParsers","parsers","Object","entries","reduce","prev","k","v","parse","c","f","nf","ContextMap"],"sourceRoot":"","sources":["../../../_src/services/Store/service.ts"],"sourcesContent":[null]}
|
package/_src/RequestContext.ts
CHANGED
|
@@ -11,7 +11,8 @@ export class RequestContextParent extends MNModel<
|
|
|
11
11
|
id: prop(RequestId),
|
|
12
12
|
name: prop(ReasonableString),
|
|
13
13
|
locale: prop(literal("en", "de")),
|
|
14
|
-
createdAt: defaultProp(date)
|
|
14
|
+
createdAt: defaultProp(date),
|
|
15
|
+
namespace: optProp(ReasonableString)
|
|
15
16
|
}) {}
|
|
16
17
|
/** @ignore @internal @deprecated */
|
|
17
18
|
export type RequestContextParentConstructor = typeof RequestContextParent
|
|
@@ -72,6 +73,7 @@ export interface RequestContextParent {
|
|
|
72
73
|
readonly id: RequestId
|
|
73
74
|
readonly locale: "de" | "en"
|
|
74
75
|
readonly name: ReasonableString
|
|
76
|
+
readonly namespace?: ReasonableString | undefined
|
|
75
77
|
}
|
|
76
78
|
export namespace RequestContextParent {
|
|
77
79
|
/**
|
|
@@ -82,6 +84,7 @@ export namespace RequestContextParent {
|
|
|
82
84
|
readonly id: string
|
|
83
85
|
readonly locale: "de" | "en"
|
|
84
86
|
readonly name: string
|
|
87
|
+
readonly namespace?: string | undefined
|
|
85
88
|
}
|
|
86
89
|
export const Encoded: EncodedOps = { $: {} }
|
|
87
90
|
/**
|
|
@@ -103,6 +106,7 @@ export interface RequestContext {
|
|
|
103
106
|
readonly name: ReasonableString
|
|
104
107
|
readonly parent?: RequestContextParent | undefined
|
|
105
108
|
readonly rootId: RequestId
|
|
109
|
+
readonly namespace?: ReasonableString | undefined
|
|
106
110
|
}
|
|
107
111
|
export namespace RequestContext {
|
|
108
112
|
/**
|
|
@@ -115,6 +119,7 @@ export namespace RequestContext {
|
|
|
115
119
|
readonly name: string
|
|
116
120
|
readonly parent?: RequestContextParent.Encoded | undefined
|
|
117
121
|
readonly rootId: string
|
|
122
|
+
readonly namespace?: string | undefined
|
|
118
123
|
}
|
|
119
124
|
export const Encoded: EncodedOps = { $: {} }
|
|
120
125
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue"
|
|
2
2
|
import { RequestContext } from "@effect-app/infra/RequestContext"
|
|
3
3
|
import type { CustomSchemaException } from "@effect-app/prelude/schema"
|
|
4
|
+
import { restoreFromRequestContext } from "../Store/Memory.js"
|
|
4
5
|
import { reportFailure, reportQueueError } from "./errors.js"
|
|
5
6
|
import type { QueueBase } from "./service.js"
|
|
6
7
|
|
|
@@ -55,6 +56,7 @@ export function makeMemQueue<DrainR, Evt, DrainEvt extends { id: StringId; _tag:
|
|
|
55
56
|
Effect
|
|
56
57
|
.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
57
58
|
.apply(Effect.logAnnotates({ body: body.$$.pretty, meta: meta.$$.pretty }))
|
|
59
|
+
.tap(() => restoreFromRequestContext)
|
|
58
60
|
.zipRight(silence(handleEvent(body)))
|
|
59
61
|
.apply(
|
|
60
62
|
provideContext(
|
|
@@ -68,7 +70,7 @@ export function makeMemQueue<DrainR, Evt, DrainEvt extends { id: StringId; _tag:
|
|
|
68
70
|
)
|
|
69
71
|
return yield* $(
|
|
70
72
|
qReply.take()
|
|
71
|
-
.flatMap(x => processMessage(x).uninterruptible)
|
|
73
|
+
.flatMap(x => processMessage(x).uninterruptible.fork.flatMap(_ => _.join))
|
|
72
74
|
.forever
|
|
73
75
|
.apply(reportFailure("drain"))
|
|
74
76
|
.setupRequestFromWith("Queue.ReceiveMessage")
|
|
@@ -10,6 +10,7 @@ import type {} from "@azure/service-bus"
|
|
|
10
10
|
import { captureException } from "@effect-app/infra/errorReporter"
|
|
11
11
|
import { RequestContext } from "@effect-app/infra/RequestContext"
|
|
12
12
|
import type { CustomSchemaException } from "@effect-app/prelude/schema"
|
|
13
|
+
import { restoreFromRequestContext } from "../Store/Memory.js"
|
|
13
14
|
import { reportQueueError } from "./errors.js"
|
|
14
15
|
import type { QueueBase } from "./service.js"
|
|
15
16
|
|
|
@@ -54,6 +55,7 @@ export function makeServiceBusQueue<
|
|
|
54
55
|
Effect
|
|
55
56
|
.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
56
57
|
.apply(Effect.logAnnotates({ body: body.$$.pretty, meta: meta.$$.pretty }))
|
|
58
|
+
.tap(() => restoreFromRequestContext)
|
|
57
59
|
.zipRight(handleEvent(body))
|
|
58
60
|
.tapErrorCause(report)
|
|
59
61
|
.apply(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
|
|
3
|
+
import { RequestContext } from "../../RequestContext.js"
|
|
3
4
|
import type { Filter, FilterJoinSelect, PersistenceModelType, Store, StoreConfig } from "./service.js"
|
|
4
5
|
import { StoreMaker } from "./service.js"
|
|
5
6
|
import { codeFilter, codeFilterJoinSelect, makeETag, makeUpdateETag } from "./utils.js"
|
|
@@ -22,41 +23,61 @@ export function memFilter<T extends { id: string }>(filter: Filter<T>, cursor?:
|
|
|
22
23
|
})
|
|
23
24
|
}
|
|
24
25
|
|
|
26
|
+
export const storeId = FiberRef.unsafeMake("primary")
|
|
27
|
+
export const restoreFromRequestContext = RequestContext.Tag.accessWithEffect(ctx =>
|
|
28
|
+
storeId.set(ctx.parent?.namespace ?? ctx.namespace ?? "primary")
|
|
29
|
+
)
|
|
30
|
+
|
|
25
31
|
export const makeMemoryStore = () => ({
|
|
26
32
|
make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(
|
|
27
33
|
name: string,
|
|
28
34
|
existing?: Effect<never, never, ReadonlyMap<Id2, PM>>,
|
|
29
|
-
|
|
35
|
+
config?: StoreConfig<PM>
|
|
30
36
|
) =>
|
|
31
37
|
Effect.gen(function*($) {
|
|
32
38
|
const updateETag = makeUpdateETag(name)
|
|
33
|
-
const items = yield* $(existing ?? Effect(new Map()))
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
const items: ReadonlyMap<Id, PM> = yield* $(existing ?? Effect(new Map<Id, PM>()))
|
|
40
|
+
const makeStore = (): ReadonlyMap<Id, PM> => new Map([...items.entries()].map(([id, e]) => [id, makeETag(e)]))
|
|
41
|
+
const storesSem = Semaphore.unsafeMake(1)
|
|
42
|
+
const stores = new Map([["primary", Ref.unsafeMake(makeStore())]])
|
|
43
|
+
const getStore = storeId.get.flatMap(namespace => {
|
|
44
|
+
const store = stores.get(namespace)
|
|
45
|
+
if (!store) {
|
|
46
|
+
if (!config?.allowNamespace || !config.allowNamespace(namespace)) {
|
|
47
|
+
throw new Error(`Namespace ${namespace} not allowed!`)
|
|
48
|
+
}
|
|
49
|
+
return storesSem.withPermits(1)(Effect.suspendSucceed(() => {
|
|
50
|
+
const store = stores.get(namespace)
|
|
51
|
+
if (store) return store.get
|
|
52
|
+
const newStore = Ref.unsafeMake(makeStore())
|
|
53
|
+
stores.set(namespace, newStore)
|
|
54
|
+
return newStore.get
|
|
55
|
+
}))
|
|
56
|
+
}
|
|
57
|
+
return store.get
|
|
58
|
+
})
|
|
59
|
+
const setStore = (m: any) => storeId.get.flatMap(namespace => stores.get(namespace)!.set(m))
|
|
39
60
|
const sem = Semaphore.unsafeMake(1)
|
|
40
61
|
const withPermit = sem.withPermits(1)
|
|
41
|
-
const values =
|
|
62
|
+
const values = getStore.map(s => s.values())
|
|
42
63
|
const all = values.map(Chunk.fromIterable)
|
|
43
64
|
const batchSet = (items: NonEmptyReadonlyArray<PM>) =>
|
|
44
65
|
items
|
|
45
66
|
.forEachEffect(i => s.find(i.id).flatMap(current => updateETag(i, current)))
|
|
46
67
|
.tap(items =>
|
|
47
|
-
|
|
68
|
+
getStore
|
|
48
69
|
.map(m => {
|
|
49
70
|
const mut = m as Map<Id, PM>
|
|
50
71
|
items.forEach(e => mut.set(e.id, e))
|
|
51
72
|
return mut
|
|
52
73
|
})
|
|
53
|
-
.flatMap(_ =>
|
|
74
|
+
.flatMap(_ => setStore(_))
|
|
54
75
|
)
|
|
55
76
|
.map(_ => _.toReadonlyArray() as NonEmptyReadonlyArray<PM>)
|
|
56
77
|
.apply(withPermit)
|
|
57
78
|
const s: Store<PM, Id> = {
|
|
58
79
|
all,
|
|
59
|
-
find: id =>
|
|
80
|
+
find: id => getStore.map(_ => Option.fromNullable(_.get(id))),
|
|
60
81
|
filter: (filter: Filter<PM>, cursor?: { skip?: number; limit?: number }) => all.map(memFilter(filter, cursor)),
|
|
61
82
|
filterJoinSelect: <T extends object>(filter: FilterJoinSelect) =>
|
|
62
83
|
all.map(c => c.flatMap(codeFilterJoinSelect<PM, T>(filter))),
|
|
@@ -64,13 +85,13 @@ export const makeMemoryStore = () => ({
|
|
|
64
85
|
s
|
|
65
86
|
.find(e.id)
|
|
66
87
|
.flatMap(current => updateETag(e, current))
|
|
67
|
-
.tap(e =>
|
|
88
|
+
.tap(e => getStore.map(_ => new Map([..._, [e.id, e]])).flatMap(_ => setStore(_)))
|
|
68
89
|
.apply(withPermit),
|
|
69
90
|
batchSet,
|
|
70
91
|
bulkSet: batchSet,
|
|
71
92
|
remove: (e: PM) =>
|
|
72
|
-
|
|
73
|
-
.flatMap(_ =>
|
|
93
|
+
getStore.map(_ => new Map([..._].filter(([_]) => _ !== e.id)))
|
|
94
|
+
.flatMap(_ => setStore(_)).apply(withPermit)
|
|
74
95
|
}
|
|
75
96
|
return s
|
|
76
97
|
})
|
package/dist/RequestContext.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ declare const RequestContextParent_base: import("@effect-app/schema").MNModel<im
|
|
|
11
11
|
name: import("@effect-app/schema").Property<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>> & import("@effect-app/schema").Utils<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>>>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
12
12
|
locale: import("@effect-app/schema").Property<import("@effect-app/schema").DefaultSchema<unknown, "en" | "de", "en" | "de", "en" | "de", import("@effect-app/schema").LiteralApi<["en", "de"]>>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
13
13
|
createdAt: import("@effect-app/schema").FromProperty<import("@effect-app/schema").SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").Some<["constructor", () => Date]>>;
|
|
14
|
+
namespace: import("@effect-app/schema").Property<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>> & import("@effect-app/schema").Utils<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>>>, "optional", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
14
15
|
}>, RequestContextParent, RequestContextParent.ConstructorInput, RequestContextParent.Encoded, RequestContextParent.Props> & import("@effect-app/schema").PropsExtensions<RequestContextParent.Props>;
|
|
15
16
|
export declare class RequestContextParent extends RequestContextParent_base {
|
|
16
17
|
}
|
|
@@ -27,6 +28,7 @@ declare const RequestContext_base: import("@effect-app/schema").MNModel<import("
|
|
|
27
28
|
name: import("@effect-app/schema").Property<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>> & import("@effect-app/schema").Utils<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>>>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
28
29
|
locale: import("@effect-app/schema").Property<import("@effect-app/schema").DefaultSchema<unknown, "en" | "de", "en" | "de", "en" | "de", import("@effect-app/schema").LiteralApi<["en", "de"]>>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
29
30
|
createdAt: import("@effect-app/schema").FromProperty<import("@effect-app/schema").SchemaDefaultSchema<unknown, Date, Date, string, {}>, "required", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").Some<["constructor", () => Date]>>;
|
|
31
|
+
namespace: import("@effect-app/schema").Property<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>> & import("@effect-app/schema").Utils<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>>>, "optional", import("@fp-ts/core/Option").None, import("@fp-ts/core/Option").None>;
|
|
30
32
|
}>, RequestContext, RequestContext.ConstructorInput, RequestContext.Encoded, RequestContext.Props> & import("@effect-app/schema").PropsExtensions<RequestContext.Props>;
|
|
31
33
|
/**
|
|
32
34
|
* @tsplus type RequestContext
|
|
@@ -53,6 +55,7 @@ export interface RequestContextParent {
|
|
|
53
55
|
readonly id: RequestId;
|
|
54
56
|
readonly locale: "de" | "en";
|
|
55
57
|
readonly name: ReasonableString;
|
|
58
|
+
readonly namespace?: ReasonableString | undefined;
|
|
56
59
|
}
|
|
57
60
|
export declare namespace RequestContextParent {
|
|
58
61
|
/**
|
|
@@ -63,6 +66,7 @@ export declare namespace RequestContextParent {
|
|
|
63
66
|
readonly id: string;
|
|
64
67
|
readonly locale: "de" | "en";
|
|
65
68
|
readonly name: string;
|
|
69
|
+
readonly namespace?: string | undefined;
|
|
66
70
|
}
|
|
67
71
|
const Encoded: EncodedOps;
|
|
68
72
|
/**
|
|
@@ -88,6 +92,7 @@ export interface RequestContext {
|
|
|
88
92
|
readonly name: ReasonableString;
|
|
89
93
|
readonly parent?: RequestContextParent | undefined;
|
|
90
94
|
readonly rootId: RequestId;
|
|
95
|
+
readonly namespace?: ReasonableString | undefined;
|
|
91
96
|
}
|
|
92
97
|
export declare namespace RequestContext {
|
|
93
98
|
/**
|
|
@@ -100,6 +105,7 @@ export declare namespace RequestContext {
|
|
|
100
105
|
readonly name: string;
|
|
101
106
|
readonly parent?: RequestContextParent.Encoded | undefined;
|
|
102
107
|
readonly rootId: string;
|
|
108
|
+
readonly namespace?: string | undefined;
|
|
103
109
|
}
|
|
104
110
|
const Encoded: EncodedOps;
|
|
105
111
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../_src/RequestContext.ts"],"names":[],"mappings":";AAAA,eAAO,MAAM,SAAS;;CAAW,CAAA;AACjC,MAAM,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,SAAS,CAAC,CAAA
|
|
1
|
+
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../_src/RequestContext.ts"],"names":[],"mappings":"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"}
|
package/dist/RequestContext.js
CHANGED
|
@@ -6,7 +6,8 @@ export class RequestContextParent extends tsplus_module_1.MNModel()({
|
|
|
6
6
|
id: tsplus_module_1.prop(RequestId),
|
|
7
7
|
name: tsplus_module_1.prop(tsplus_module_1.ReasonableString),
|
|
8
8
|
locale: tsplus_module_1.prop(tsplus_module_1.literal("en", "de")),
|
|
9
|
-
createdAt: tsplus_module_1.defaultProp(tsplus_module_1.date)
|
|
9
|
+
createdAt: tsplus_module_1.defaultProp(tsplus_module_1.date),
|
|
10
|
+
namespace: tsplus_module_1.optProp(tsplus_module_1.ReasonableString)
|
|
10
11
|
}) {
|
|
11
12
|
}
|
|
12
13
|
export function makeRequestId() {
|
|
@@ -49,4 +50,4 @@ export const tag = tsplus_module_2.Tag();
|
|
|
49
50
|
(function (RequestContext) {
|
|
50
51
|
RequestContext.Encoded = { $: {} };
|
|
51
52
|
})(RequestContext || (RequestContext = {}));
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL1JlcXVlc3RDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxtQkFBRyxRQUFRLENBQUE7QUFHakMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFBLE9BQU8sRUFLOUMsQ0FBQztJQUNGLElBQUksRUFBRSxnQkFBQSxJQUFJLENBQUMsZ0JBQUEsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckMsRUFBRSxFQUFFLGdCQUFBLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkIsSUFBSSxFQUFFLGdCQUFBLElBQUksaUJBQUMsZ0JBQWdCLENBQUM7SUFDNUIsTUFBTSxFQUFFLGdCQUFBLElBQUksQ0FBQyxnQkFBQSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsRUFBRSxnQkFBQSxXQUFXLGlCQUFDLElBQUksQ0FBQztJQUM1QixTQUFTLEVBQUUsZ0JBQUEsT0FBTyxpQkFBQyxnQkFBZ0IsQ0FBQztDQUNyQyxDQUFDO0NBQUc7QUFJTCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtBQUN6QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBQSxPQUFPLEVBS3hDLENBQUM7SUFDRixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEMsRUFBRSxFQUFFLGdCQUFBLFdBQVcsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxnQkFBQSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxnQkFBQSxPQUFPLENBQUMsb0JBQW9CLENBQUM7Q0FDdEMsQ0FBQztJQUNBLE1BQU0sQ0FBQyxPQUFPLENBRVosTUFBc0IsRUFDdEIsT0FBOEM7UUFFOUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsTUFBTTtTQUNQLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFhLElBQW9CO1FBQ2xELE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDYixDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQzdFLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBS0Q7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsZ0JBQUEsR0FBRyxFQUFrQixDQUFBO0FBVXhDLFdBQWlCLG9CQUFvQjtJQVd0Qiw0QkFBTyxHQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFBO0FBWTlDLENBQUMsRUF2QmdCLG9CQUFvQixLQUFwQixvQkFBb0IsUUF1QnBDO0FBVUQsV0FBaUIsY0FBYztJQWFoQixzQkFBTyxHQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFBO0FBWTlDLENBQUMsRUF6QmdCLGNBQWMsS0FBZCxjQUFjLFFBeUI5QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;;;;;
|
|
1
|
+
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;;;;;AAQvE,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAC/G,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,EACzD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EACxF,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnD,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACvC,UAAU,EAAE,CACV,CAAC,EAAE,OAAO,EACV,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,KAC/B,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;;;GA4DpF;AAID,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uEAkBpD"}
|
|
@@ -5,12 +5,14 @@ import * as tsplus_module_4 from "@effect-app/infra/services/QueueMaker/errors";
|
|
|
5
5
|
import * as tsplus_module_5 from "@effect-app/prelude/utils";
|
|
6
6
|
import * as tsplus_module_6 from "@effect-app/prelude/_ext/misc";
|
|
7
7
|
import * as tsplus_module_7 from "@effect-app/prelude/schema";
|
|
8
|
-
import * as tsplus_module_8 from "@effect
|
|
9
|
-
import * as tsplus_module_9 from "@effect/
|
|
10
|
-
import * as tsplus_module_10 from "@effect
|
|
11
|
-
import * as tsplus_module_11 from "@effect/
|
|
8
|
+
import * as tsplus_module_8 from "@effect/io/Fiber";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/infra/api/setupRequest";
|
|
10
|
+
import * as tsplus_module_10 from "@effect/io/Cause";
|
|
11
|
+
import * as tsplus_module_11 from "@effect-app/core/Effect";
|
|
12
|
+
import * as tsplus_module_12 from "@effect/io/Exit";
|
|
12
13
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
13
14
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
15
|
+
import { restoreFromRequestContext } from "../Store/Memory.js";
|
|
14
16
|
import { reportFailure, reportQueueError } from "./errors.js";
|
|
15
17
|
/**
|
|
16
18
|
* @tsplus static QueueMaker.Ops makeMem
|
|
@@ -37,8 +39,8 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
37
39
|
id: body.id,
|
|
38
40
|
locale: "en",
|
|
39
41
|
name: tsplus_module_7.ReasonableString(body._tag)
|
|
40
|
-
}))(tsplus_module_1.zipRight(silence(handleEvent(body)))(tsplus_module_6.logAnnotates({ body: tsplus_module_5.RecordPretty(tsplus_module_5.object$(body)), meta: tsplus_module_5.RecordPretty(tsplus_module_5.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)))))(tsplus_module_1.orDie(tsplus_module_1.flatMap(parseDrain)(tsplus_module_1.sync(() => JSON.parse(msg)))));
|
|
41
|
-
return yield* $(tsplus_module_1.forkScoped(
|
|
42
|
+
}))(tsplus_module_1.zipRight(silence(handleEvent(body)))(tsplus_module_1.tap(() => restoreFromRequestContext)(tsplus_module_6.logAnnotates({ body: tsplus_module_5.RecordPretty(tsplus_module_5.object$(body)), meta: tsplus_module_5.RecordPretty(tsplus_module_5.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`))))))(tsplus_module_1.orDie(tsplus_module_1.flatMap(parseDrain)(tsplus_module_1.sync(() => JSON.parse(msg)))));
|
|
43
|
+
return yield* $(tsplus_module_1.forkScoped(tsplus_module_9.setupReq3(reportFailure("drain")(tsplus_module_1.forever(tsplus_module_1.flatMap(x => tsplus_module_1.flatMap(_ => tsplus_module_8.join(_))(tsplus_module_1.fork(tsplus_module_1.uninterruptible(processMessage(x)))))(qReply.take()))), "Queue.ReceiveMessage")));
|
|
42
44
|
})
|
|
43
45
|
};
|
|
44
46
|
});
|
|
@@ -48,13 +50,13 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
48
50
|
export function silence(inp) {
|
|
49
51
|
return tsplus_module_1.flatMap(result => tsplus_module_1.gen(function* ($) {
|
|
50
52
|
const requestContext = yield* $(tsplus_module_1.service(tsplus_module_2.tag));
|
|
51
|
-
return yield* $(
|
|
52
|
-
if (
|
|
53
|
+
return yield* $(tsplus_module_12.match(cause => {
|
|
54
|
+
if (tsplus_module_10.isInterrupted(cause)) {
|
|
53
55
|
return tsplus_module_1.failCause(cause);
|
|
54
56
|
}
|
|
55
57
|
reportQueueError(cause, { requestContext });
|
|
56
|
-
return
|
|
57
|
-
}, () =>
|
|
58
|
+
return tsplus_module_11.unit;
|
|
59
|
+
}, () => tsplus_module_11.unit)(result));
|
|
58
60
|
}))(tsplus_module_1.exit(inp));
|
|
59
61
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUVqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzdEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsT0FBeUQsRUFDekQsZUFBd0YsRUFDeEYsY0FFdUMsRUFDdkMsVUFHbUY7SUFFbkYsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMseUJBQUMsUUFBUSxFQUFRLENBQUE7UUFDckMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUU3RCxPQUFPO1lBQ0wsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRSxDQUN2QixvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUNwQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLDhDQUEyQixDQUFBO2dCQUMxRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsdUNBQ2IsNEJBQUEsUUFBUSxFQUFlLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":";;;AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;;;;;
|
|
1
|
+
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":";;;AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;;;;;AAQvE,wBAAgB,mBAAmB,CACjC,MAAM,EACN,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,QAAQ,EACR,IAAI,EACJ,MAAM,EAEN,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,EACzD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EACxF,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnD,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACvC,UAAU,EAAE,CACV,CAAC,EAAE,OAAO,EACV,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,KAC/B,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;;;GAmEpF;;;;;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mJAG1F"}
|
|
@@ -10,6 +10,7 @@ import * as tsplus_module_9 from "@effect/io/Layer";
|
|
|
10
10
|
import { LiveReceiver, LiveSender, LiveServiceBusClient, Receiver, Sender, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
11
11
|
import { captureException } from "@effect-app/infra/errorReporter";
|
|
12
12
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
13
|
+
import { restoreFromRequestContext } from "../Store/Memory.js";
|
|
13
14
|
import { reportQueueError } from "./errors.js";
|
|
14
15
|
/**
|
|
15
16
|
* @tsplus static QueueMaker.Ops makeServiceBus
|
|
@@ -28,7 +29,7 @@ export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHan
|
|
|
28
29
|
id: body.id,
|
|
29
30
|
locale: "en",
|
|
30
31
|
name: tsplus_module_5.ReasonableString(body._tag)
|
|
31
|
-
}))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.zipRight(handleEvent(body))(tsplus_module_4.logAnnotates({ body: tsplus_module_3.RecordPretty(tsplus_module_3.object$(body)), meta: tsplus_module_3.RecordPretty(tsplus_module_3.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`))))))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.orDie(tsplus_module_1.flatMap(x => parseDrain(x))(tsplus_module_1.sync(() => JSON.parse(messageBody)))))), "Queue.ReceiveMessage")));
|
|
32
|
+
}))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.zipRight(handleEvent(body))(tsplus_module_1.tap(() => restoreFromRequestContext)(tsplus_module_4.logAnnotates({ body: tsplus_module_3.RecordPretty(tsplus_module_3.object$(body)), meta: tsplus_module_3.RecordPretty(tsplus_module_3.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)))))))(tsplus_module_1.tapErrorCause(report)(tsplus_module_1.orDie(tsplus_module_1.flatMap(x => parseDrain(x))(tsplus_module_1.sync(() => JSON.parse(messageBody)))))), "Queue.ReceiveMessage")));
|
|
32
33
|
}
|
|
33
34
|
return yield* $(tsplus_module_1.provideSomeLayer(receiverLayer)(subscribe({
|
|
34
35
|
processMessage: x => tsplus_module_1.uninterruptible(processMessage(x.body)),
|
|
@@ -58,4 +59,4 @@ function report(cause) {
|
|
|
58
59
|
return reportQueueError(cause, { requestContext });
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zYnF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLHVDQUF1QyxDQUFBO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUVqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHOUM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBUWpDLFVBQWtCLEVBQ2xCLGNBQXNCLEVBQ3RCLE9BQXlELEVBQ3pELGVBQXdGLEVBQ3hGLGNBRXVDLEVBQ3ZDLFVBR21GO0lBRW5GLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLHlCQUFDLE1BQU0sRUFBUSxDQUFBO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMseUJBQUMsUUFBUSxFQUFRLENBQUE7UUFDMUMsTUFBTSxhQUFhLEdBQUcsMEJBQUEsUUFBUSxFQUFXLFFBQVEsQ0FBQyxDQUFBO1FBRWxELE9BQU87WUFDTCxLQUFLLEVBQUUsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDM0IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFBO2dCQUM3Qyw4REFBOEQ7Z0JBQzlELFNBQVMsY0FBYyxDQUFDLFdBQWdCO29CQUN0QyxvREFBTyww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
|
|
@@ -182,7 +182,7 @@ export declare function queryAndSavePureEffect<Id extends string, T extends {
|
|
|
182
182
|
skip?: number;
|
|
183
183
|
}>): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>, E2, A>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | R | Exclude<R2, {
|
|
184
184
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
185
|
-
}>,
|
|
185
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E | E2, A>;
|
|
186
186
|
/**
|
|
187
187
|
* @tsplus fluent Repository queryAndSavePure
|
|
188
188
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -198,7 +198,7 @@ export declare function queryAndSavePure<Id extends string, T extends {
|
|
|
198
198
|
skip?: number;
|
|
199
199
|
}): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>, E2, A>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R2, {
|
|
200
200
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
201
|
-
}>,
|
|
201
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E2, A>;
|
|
202
202
|
/**
|
|
203
203
|
* @tsplus getter Repository saveManyWithPure
|
|
204
204
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -209,7 +209,7 @@ export declare function saveManyWithPure<Id extends string, T extends {
|
|
|
209
209
|
id: string;
|
|
210
210
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>): <R, A, E, S1 extends T, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, import("@effect/data/Chunk").Chunk<S1>, import("@effect/data/Chunk").Chunk<S2>>, E, A>) => (items: Iterable<S1>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
211
211
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S1>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
212
|
-
}>,
|
|
212
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E, A>;
|
|
213
213
|
/**
|
|
214
214
|
* @tsplus fluent Repository byIdAndSaveWithPure
|
|
215
215
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -220,7 +220,7 @@ export declare function byIdAndSaveWithPure<Id extends string, T extends {
|
|
|
220
220
|
id: string;
|
|
221
221
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>, id: Id): <R, A, E, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, T, S2>, E, A>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
222
222
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, T, S2>;
|
|
223
|
-
}>,
|
|
223
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E | NotFoundError<ItemType>, A>;
|
|
224
224
|
/**
|
|
225
225
|
* NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
|
|
226
226
|
* @tsplus getter Repository handleByIdAndSaveWithPure
|
|
@@ -234,7 +234,7 @@ export declare function handleByIdAndSaveWithPure<Id extends string, T extends {
|
|
|
234
234
|
id: Id;
|
|
235
235
|
}, Context_1, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context_1) => import("@effect/io/Effect").Effect<FixEnv<R, Evt, T, S2>, E, A>) => (req: Req, ctx: Context_1) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
236
236
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, T, S2>;
|
|
237
|
-
}>,
|
|
237
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E | NotFoundError<ItemType>, A>;
|
|
238
238
|
/**
|
|
239
239
|
* @tsplus fluent Repository saveManyWithPure_
|
|
240
240
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -245,7 +245,7 @@ export declare function saveManyWithPure_<Id extends string, R, T extends {
|
|
|
245
245
|
id: string;
|
|
246
246
|
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, Chunk<S1>, Chunk<S2>>, E, A>): import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
247
247
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S1>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
248
|
-
}>,
|
|
248
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E, A>;
|
|
249
249
|
/**
|
|
250
250
|
* @tsplus fluent Repository saveWithPure_
|
|
251
251
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -256,12 +256,12 @@ export declare function saveWithPure_<Id extends string, R, T extends {
|
|
|
256
256
|
id: string;
|
|
257
257
|
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>, item: S1, pure: Effect<FixEnv<R, Evt, S1, S2>, E, A>): import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
258
258
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1, S2>;
|
|
259
|
-
}>,
|
|
259
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E, A>;
|
|
260
260
|
export declare function saveAllWithEffectInt<Id extends string, T extends {
|
|
261
261
|
id: Id;
|
|
262
262
|
}, PM extends {
|
|
263
263
|
id: string;
|
|
264
|
-
}, P extends T, Evt, ItemType extends string, R, E, A>(self: Repository<T, PM, Evt, Id, ItemType>, gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>): import("@effect/io/Effect").Effect<RequestContext | ContextMap | R,
|
|
264
|
+
}, P extends T, Evt, ItemType extends string, R, E, A>(self: Repository<T, PM, Evt, Id, ItemType>, gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>): import("@effect/io/Effect").Effect<RequestContext | ContextMap | R, OptimisticConcurrencyException | InvalidStateError | E, A>;
|
|
265
265
|
/**
|
|
266
266
|
* @tsplus fluent Repository queryAndSavePureEffectBatched
|
|
267
267
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -277,7 +277,7 @@ export declare function queryAndSavePureEffectBatched<Id extends string, T exten
|
|
|
277
277
|
skip?: number;
|
|
278
278
|
}>, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>, E2, A>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | R | Exclude<R2, {
|
|
279
279
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
280
|
-
}>,
|
|
280
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E | E2, import("@effect/data/Chunk").Chunk<A>>;
|
|
281
281
|
/**
|
|
282
282
|
* @tsplus fluent Repository queryAndSavePureBatched
|
|
283
283
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -293,7 +293,7 @@ export declare function queryAndSavePureBatched<Id extends string, T extends {
|
|
|
293
293
|
skip?: number;
|
|
294
294
|
}, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>, E2, A>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R2, {
|
|
295
295
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
296
|
-
}>,
|
|
296
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E2, import("@effect/data/Chunk").Chunk<A>>;
|
|
297
297
|
/**
|
|
298
298
|
* @tsplus fluent Repository saveManyWithPureBatched
|
|
299
299
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -304,7 +304,7 @@ export declare function saveManyWithPureBatched<Id extends string, T extends {
|
|
|
304
304
|
id: string;
|
|
305
305
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, import("@effect/data/Chunk").Chunk<S1>, import("@effect/data/Chunk").Chunk<S2>>, E, A>) => (items: Iterable<S1>) => import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
306
306
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S1>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
307
|
-
}>,
|
|
307
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E, import("@effect/data/Chunk").Chunk<A>>;
|
|
308
308
|
/**
|
|
309
309
|
* @tsplus fluent Repository saveManyWithPureBatched_
|
|
310
310
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -315,7 +315,7 @@ export declare function saveManyWithPureBatched_<Id extends string, R, T extends
|
|
|
315
315
|
id: string;
|
|
316
316
|
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, Chunk<S1>, Chunk<S2>>, E, A>, batchSize?: number): import("@effect/io/Effect").Effect<RequestContext | ContextMap | Exclude<R, {
|
|
317
317
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, import("@effect/data/Chunk").Chunk<S1>, import("@effect/data/Chunk").Chunk<S2>>;
|
|
318
|
-
}>,
|
|
318
|
+
}>, OptimisticConcurrencyException | InvalidStateError | E, import("@effect/data/Chunk").Chunk<A>>;
|
|
319
319
|
export type AllDSL<T, Evt> = (<R, A, E, S1 extends T, S2 extends T>(pure: (dsl: PureDSL<Chunk<S1>, Chunk<S2>, Evt>) => Effect<R, E, A>) => Effect<FixEnv<R, Evt, Chunk<S1>, Chunk<S2>>, E, A>) & AllDSLExt<T, Evt>;
|
|
320
320
|
/**
|
|
321
321
|
* @tsplus type DSLExt
|
|
@@ -364,7 +364,7 @@ export declare function save<Id extends string, T extends {
|
|
|
364
364
|
id: Id;
|
|
365
365
|
}, PM extends {
|
|
366
366
|
id: string;
|
|
367
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>): (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<RequestContext | ContextMap,
|
|
367
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>): (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<RequestContext | ContextMap, OptimisticConcurrencyException | InvalidStateError, void>;
|
|
368
368
|
/**
|
|
369
369
|
* @tsplus getter Repository saveWithEvents
|
|
370
370
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -373,5 +373,5 @@ export declare function saveWithEvents<Id extends string, T extends {
|
|
|
373
373
|
id: Id;
|
|
374
374
|
}, PM extends {
|
|
375
375
|
id: string;
|
|
376
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<RequestContext | ContextMap,
|
|
376
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, Id, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<RequestContext | ContextMap, OptimisticConcurrencyException | InvalidStateError, void>;
|
|
377
377
|
//# sourceMappingURL=Repository.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Chunk } from "@effect/data/Chunk";
|
|
2
2
|
import { Effect } from "@effect/io/Effect";
|
|
3
3
|
import { NonEmptyReadonlyArray } from "@fp-ts/core/ReadonlyArray";
|
|
4
|
+
import { RequestContext } from "../../RequestContext.js";
|
|
4
5
|
import type { Filter, PersistenceModelType, Store, StoreConfig } from "./service.js";
|
|
5
6
|
import { StoreMaker } from "./service.js";
|
|
6
7
|
export declare function memFilter<T extends {
|
|
@@ -9,8 +10,10 @@ export declare function memFilter<T extends {
|
|
|
9
10
|
skip?: number;
|
|
10
11
|
limit?: number;
|
|
11
12
|
}): (c: Chunk<T>) => Chunk<T>;
|
|
13
|
+
export declare const storeId: import("@effect/io/FiberRef").FiberRef<string>;
|
|
14
|
+
export declare const restoreFromRequestContext: import("@effect/io/Effect").Effect<RequestContext, never, void>;
|
|
12
15
|
export declare const makeMemoryStore: () => {
|
|
13
|
-
make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(name: string, existing?: import("@effect/io/Effect").Effect<never, never, ReadonlyMap<Id2, PM>> | undefined,
|
|
16
|
+
make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(name: string, existing?: import("@effect/io/Effect").Effect<never, never, ReadonlyMap<Id2, PM>> | undefined, config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
|
|
14
17
|
};
|
|
15
18
|
export declare const MemoryStoreLive: import("@effect/io/Layer").Layer<never, never, StoreMaker>;
|
|
16
19
|
//# sourceMappingURL=Memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Memory.ts"],"names":[],"mappings":";;;AAEA,OAAO,KAAK,EAAE,MAAM,EAAoB,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,OACnG,MAAM,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAehC;AAED,eAAO,MAAM,eAAe;yFAElB,MAAM;
|
|
1
|
+
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Memory.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAoB,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,OACnG,MAAM,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAehC;AAED,eAAO,MAAM,OAAO,gDAAiC,CAAA;AACrD,eAAO,MAAM,yBAAyB,iEAErC,CAAA;AAED,eAAO,MAAM,eAAe;yFAElB,MAAM;CAiEd,CAAA;AAEF,eAAO,MAAM,eAAe,4DAA0C,CAAA"}
|
|
@@ -2,10 +2,14 @@ import * as tsplus_module_1 from "@effect/data/Chunk";
|
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/core/Chunk";
|
|
3
3
|
import * as tsplus_module_3 from "@fp-ts/core/Option";
|
|
4
4
|
import * as tsplus_module_4 from "@effect-app/core/Array";
|
|
5
|
-
import * as tsplus_module_5 from "@effect/io/
|
|
6
|
-
import * as tsplus_module_6 from "@effect/
|
|
7
|
-
import * as tsplus_module_7 from "@effect
|
|
8
|
-
import * as tsplus_module_8 from "@effect
|
|
5
|
+
import * as tsplus_module_5 from "@effect/io/FiberRef";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/infra/RequestContext";
|
|
7
|
+
import * as tsplus_module_7 from "@effect/io/Effect";
|
|
8
|
+
import * as tsplus_module_8 from "@effect/io/Ref";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/core/_ext/Iterable";
|
|
10
|
+
import * as tsplus_module_10 from "@effect-app/core/Tag";
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
12
|
+
import "../../RequestContext.js";
|
|
9
13
|
import { StoreMaker } from "./service.js";
|
|
10
14
|
import { codeFilter, codeFilterJoinSelect, makeETag, makeUpdateETag } from "./utils.js";
|
|
11
15
|
export function memFilter(filter, cursor) {
|
|
@@ -25,33 +29,55 @@ export function memFilter(filter, cursor) {
|
|
|
25
29
|
return tsplus_module_4.ext_itToChunk(r);
|
|
26
30
|
});
|
|
27
31
|
}
|
|
32
|
+
export const storeId = tsplus_module_5.unsafeMake("primary");
|
|
33
|
+
export const restoreFromRequestContext = tsplus_module_7.serviceWithEffect(tsplus_module_6.tag, ctx => tsplus_module_5.set(ctx.parent?.namespace ?? ctx.namespace ?? "primary")(storeId));
|
|
28
34
|
export const makeMemoryStore = () => ({
|
|
29
|
-
make: (name, existing,
|
|
35
|
+
make: (name, existing, config) => tsplus_module_7.gen(function* ($) {
|
|
30
36
|
const updateETag = makeUpdateETag(name);
|
|
31
|
-
const items = yield* $(existing ??
|
|
32
|
-
const
|
|
33
|
-
const
|
|
37
|
+
const items = yield* $(existing ?? tsplus_module_7.sync(() => new Map()));
|
|
38
|
+
const makeStore = () => new Map([...items.entries()].map(([id, e]) => [id, makeETag(e)]));
|
|
39
|
+
const storesSem = tsplus_module_7.unsafeMakeSemaphore(1);
|
|
40
|
+
const stores = new Map([["primary", tsplus_module_8.unsafeMake(makeStore())]]);
|
|
41
|
+
const getStore = tsplus_module_7.flatMap(namespace => {
|
|
42
|
+
const store = stores.get(namespace);
|
|
43
|
+
if (!store) {
|
|
44
|
+
if (!config?.allowNamespace || !config.allowNamespace(namespace)) {
|
|
45
|
+
throw new Error(`Namespace ${namespace} not allowed!`);
|
|
46
|
+
}
|
|
47
|
+
return storesSem.withPermits(1)(tsplus_module_7.suspendSucceed(() => {
|
|
48
|
+
const store = stores.get(namespace);
|
|
49
|
+
if (store)
|
|
50
|
+
return tsplus_module_8.get(store);
|
|
51
|
+
const newStore = tsplus_module_8.unsafeMake(makeStore());
|
|
52
|
+
stores.set(namespace, newStore);
|
|
53
|
+
return tsplus_module_8.get(newStore);
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
return tsplus_module_8.get(store);
|
|
57
|
+
})(tsplus_module_5.get(storeId));
|
|
58
|
+
const setStore = (m) => tsplus_module_7.flatMap(namespace => tsplus_module_8.set(m)(stores.get(namespace)))(tsplus_module_5.get(storeId));
|
|
59
|
+
const sem = tsplus_module_7.unsafeMakeSemaphore(1);
|
|
34
60
|
const withPermit = sem.withPermits(1);
|
|
35
|
-
const values =
|
|
36
|
-
const all =
|
|
37
|
-
const batchSet = (items) => withPermit(
|
|
61
|
+
const values = tsplus_module_7.map(s => s.values())(getStore);
|
|
62
|
+
const all = tsplus_module_7.map(tsplus_module_1.fromIterable)(values);
|
|
63
|
+
const batchSet = (items) => withPermit(tsplus_module_7.map(_ => _.toReadonlyArray())(tsplus_module_7.tap(items => tsplus_module_7.flatMap(_ => setStore(_))(tsplus_module_7.map(m => {
|
|
38
64
|
const mut = m;
|
|
39
65
|
items.forEach(e => mut.set(e.id, e));
|
|
40
66
|
return mut;
|
|
41
|
-
})(
|
|
67
|
+
})(getStore)))(tsplus_module_9.ext_forEach(items, i => tsplus_module_7.flatMap(current => updateETag(i, current))(s.find(i.id))))));
|
|
42
68
|
const s = {
|
|
43
69
|
all,
|
|
44
|
-
find: id =>
|
|
45
|
-
filter: (filter, cursor) =>
|
|
46
|
-
filterJoinSelect: (filter) =>
|
|
47
|
-
set: e => withPermit(
|
|
70
|
+
find: id => tsplus_module_7.map(_ => tsplus_module_3.fromNullable(_.get(id)))(getStore),
|
|
71
|
+
filter: (filter, cursor) => tsplus_module_7.map(memFilter(filter, cursor))(all),
|
|
72
|
+
filterJoinSelect: (filter) => tsplus_module_7.map(c => c.flatMap(codeFilterJoinSelect(filter)))(all),
|
|
73
|
+
set: e => withPermit(tsplus_module_7.tap(e => tsplus_module_7.flatMap(_ => setStore(_))(tsplus_module_7.map(_ => new Map([..._, [e.id, e]]))(getStore)))(tsplus_module_7.flatMap(current => updateETag(e, current))(s
|
|
48
74
|
.find(e.id)))),
|
|
49
75
|
batchSet,
|
|
50
76
|
bulkSet: batchSet,
|
|
51
|
-
remove: (e) => withPermit(
|
|
77
|
+
remove: (e) => withPermit(tsplus_module_7.flatMap(_ => setStore(_))(tsplus_module_7.map(_ => new Map([..._].filter(([_]) => _ !== e.id)))(getStore)))
|
|
52
78
|
};
|
|
53
79
|
return s;
|
|
54
80
|
})
|
|
55
81
|
});
|
|
56
|
-
export const MemoryStoreLive =
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
export const MemoryStoreLive = tsplus_module_10.makeLayer(StoreMaker, makeMemoryStore());
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9TdG9yZS9NZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUErQix5QkFBeUIsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV2RixNQUFNLFVBQVUsU0FBUyxDQUEyQixNQUFpQixFQUFFLE1BQTBDO0lBQy9HLE9BQU8sQ0FBQyxDQUFDLENBQVcsRUFBWSxFQUFFO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUE7UUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLEtBQUssQ0FBQTtRQUMzQixJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTywwQkFBNkQsR0FBRyxFQUFFLENBQUMsdUJBQWEsRUFBaEYsMENBQUEsNkJBQWUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFqQyxDQUFDLENBQWlDLENBQWdCLENBQStCLENBQUE7U0FDekY7UUFDRCxJQUFJLENBQUMsR0FBRywwQkFBWSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQTlCLENBQUMsQ0FBOEIsQ0FBQTtRQUN2QyxJQUFJLElBQUksRUFBRTtZQUNSLENBQUMsR0FBRyxxQkFBTyxJQUFJLEVBQVgsQ0FBQyxDQUFXLENBQUE7U0FDakI7UUFDRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsQ0FBQyxHQUFHLHFCQUFPLEtBQUssRUFBWixDQUFDLENBQVksQ0FBQTtTQUNsQjtRQUNELHFDQUFPLENBQUMsRUFBUTtJQUNsQixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMs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
|
|
@@ -11,6 +11,7 @@ export type StoreConfig<E> = {
|
|
|
11
11
|
uniqueKeys?: UniqueKey[];
|
|
12
12
|
maxBulkSize?: number;
|
|
13
13
|
partitionValue: (e: E) => string | undefined;
|
|
14
|
+
allowNamespace?: (namespace: string) => boolean;
|
|
14
15
|
};
|
|
15
16
|
export type SupportedValues = string | boolean | number | null;
|
|
16
17
|
export type Where = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/service.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAU,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAGzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAErE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,4 +57,4 @@ export const makeMap = tsplus_module_2.sync(() => {
|
|
|
57
57
|
};
|
|
58
58
|
});
|
|
59
59
|
export const ContextMap = tsplus_module_1.Tag();
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlGQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLGdCQUFBLEdBQUcsRUFBYyxDQUFBO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLHFCQUFZLEdBQUcsRUFBRTtJQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtJQUN2QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQVUsRUFBRSxJQUF3QixFQUFFLEVBQUU7UUFDdkQsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDN0QsQ0FBQyxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBR3hCLENBQUE7SUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFHeEIsQ0FBQTtJQUVILE1BQU0sWUFBWSxHQUFHLENBQ25CLENBQWtCLEVBQ2xCLEVBQStCLEVBQy9CLEVBQUU7UUFDRixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUN0QixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUMsQ0FBQTtJQUVELE1BQU0sU0FBUyxHQUFjO1FBQzNCLCtFQUErRTtRQUMvRSwrSEFBK0g7UUFDL0gsR0FBRyxFQUFFLEtBQUs7UUFDVixLQUFLLEVBQUU7WUFDTCxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEcsZUFBZSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3JELElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDNUMsT0FBTyxJQUFJLENBQUE7Z0JBQ2IsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFBO1lBQ2YsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQU8sRUFBRTtnQkFDMUIsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDaEMsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDbEIsSUFBSSxDQUFDLEVBQUU7d0JBQ0wsa0NBQWtDO3dCQUNsQyxPQUFPLENBQUMsQ0FBQTtxQkFDVDt5QkFBTTt3QkFDTCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO3dCQUM5QixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTt3QkFDWixPQUFPLEVBQUUsQ0FBQTtxQkFDVjtpQkFDRjtxQkFBTTtvQkFDTCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO29CQUM5QixXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUMxQyxPQUFPLEVBQUUsQ0FBQTtpQkFDVjtZQUNILENBQUM7U0FDRjtLQUNGLENBQUE7SUFFRCxPQUFPO1FBQ0wsR0FBRyxFQUFFLE9BQU87UUFDWixHQUFHLEVBQUUsT0FBTztRQUNaLFNBQVM7S0FDVixDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFNRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLGdCQUFBLEdBQUcsRUFBYyxDQUFBIn0=
|