@effect-app/infra 0.83.11 → 0.84.0-next.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/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.content +2 -36
- package/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.hash +1 -1
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.content +6 -24
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.hash +1 -1
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.content +40 -75
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.hash +1 -1
- package/.cache/effect/1bfd92946b11da4292f2ed99dc0e322462b60559148f9524abc20e26f70779e1.hash +1 -1
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.content +1 -3
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.hash +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.content +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.hash +1 -1
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.content +7 -15
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.hash +1 -1
- package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.hash +1 -1
- package/.cache/effect/8594f0f42afc0641b00e88998000cc47382a1d07da31f4a148f7976701ca22d5.hash +1 -1
- package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.hash +1 -1
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.content +1 -5
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.hash +1 -1
- package/CHANGELOG.md +23 -0
- package/_cjs/_ext/Array.cjs +3 -2
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +11 -10
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +3 -2
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +4 -3
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +24 -22
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -20
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +1 -1
- package/_cjs/api/routing.cjs +55 -53
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +3 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +5 -4
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -10
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +8 -8
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +2 -1
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +4 -4
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +5 -5
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +4 -4
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +8 -7
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +13 -11
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -4
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +31 -29
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +7 -6
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +18 -17
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +16 -15
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +17 -16
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +35 -33
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +11 -10
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +49 -46
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +19 -18
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +27 -25
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +16 -14
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +6 -5
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +13 -13
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +19 -17
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +9 -8
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +11 -9
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +20 -18
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +11 -10
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +5 -5
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +18 -17
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/authorization.jwt.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +2 -2
- package/_src/api/express/routing.ts.bak +8 -8
- package/_src/api/express/schema/requestHandler.ts +12 -12
- package/_src/api/express/schema/routing.ts +11 -11
- package/_src/api/routing.ts +14 -13
- package/_src/errorReporter.ts +1 -1
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +5 -5
- package/_src/services/QueueMaker/errors.ts +1 -1
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/QueueMaker/sbqueue.ts +1 -1
- package/_src/services/Repository.ts +9 -9
- package/_src/services/RepositoryBase.ts +8 -6
- package/_src/services/RequestContextContainer.ts +1 -1
- package/_src/services/Store/Cosmos.ts +17 -12
- package/_src/services/Store/Disk.ts +4 -4
- package/_src/services/Store/Memory.ts +4 -4
- package/_src/services/Store/Redis.ts +1 -1
- package/_src/services/Store/index.test.ts.bak +5 -5
- package/_src/services/Store/index.ts +1 -1
- package/_src/services/Store/utils.ts +16 -16
- package/_src/services/simpledb/diskdb.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/_src/services/simpledb/redisdb.ts +1 -1
- package/_src/services/simpledb/shared.ts +1 -1
- package/_src/services/simpledb/simpledb.ts +3 -3
- package/dist/RequestContext.d.ts +20 -20
- package/dist/_ext/Array.js +4 -3
- package/dist/api/defaultErrorHandler.js +12 -11
- package/dist/api/express/makeJsonSchema.js +4 -3
- package/dist/api/express/makeOpenApiSpecs.js +5 -4
- package/dist/api/express/schema/requestHandler.d.ts +1 -1
- package/dist/api/express/schema/requestHandler.js +35 -33
- package/dist/api/express/schema/routing.d.ts +1 -1
- package/dist/api/express/schema/routing.js +23 -21
- package/dist/api/reportError.d.ts +3 -3
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +1 -1
- package/dist/api/routing.d.ts +2 -2
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +59 -57
- package/dist/api/setupRequest.d.ts +1 -1
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +4 -3
- package/dist/api/writeDocs.js +6 -5
- package/dist/errorReporter.js +12 -11
- package/dist/errors.d.ts +7 -7
- package/dist/errors.js +9 -9
- package/dist/filter.d.ts.map +1 -1
- package/dist/instrument.js +3 -2
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +5 -5
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +6 -6
- package/dist/logger/shared.js +5 -5
- package/dist/rateLimit.d.ts +2 -2
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +9 -8
- package/dist/services/Emailer/Sendgrid.d.ts +1 -1
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +16 -14
- package/dist/services/Emailer/fake.d.ts +1 -1
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +6 -5
- package/dist/services/Emailer/service.d.ts +2 -2
- package/dist/services/Operations/live.d.ts +1 -1
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +39 -37
- package/dist/services/Operations/service.d.ts +7 -7
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +1 -1
- package/dist/services/QueueMaker/errors.d.ts +4 -4
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +7 -6
- package/dist/services/QueueMaker/memQueue.d.ts +1 -1
- package/dist/services/QueueMaker/memQueue.js +17 -16
- package/dist/services/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +16 -15
- package/dist/services/Repository.d.ts +8 -8
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +18 -17
- package/dist/services/RepositoryBase.d.ts +24 -75
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +37 -35
- package/dist/services/RequestContextContainer.d.ts +4 -4
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +14 -13
- package/dist/services/Store/Cosmos.d.ts +2 -2
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +54 -51
- package/dist/services/Store/Disk.d.ts +2 -2
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +20 -19
- package/dist/services/Store/Memory.d.ts +3 -3
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +28 -26
- package/dist/services/Store/Redis.d.ts +2 -2
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +17 -15
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +7 -6
- package/dist/services/Store/service.d.ts +5 -5
- package/dist/services/Store/service.js +2 -2
- package/dist/services/Store/utils.d.ts +3 -3
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +21 -21
- package/dist/services/simpledb/cosmosdb.d.ts +2 -2
- package/dist/services/simpledb/cosmosdb.d.ts.map +1 -1
- package/dist/services/simpledb/cosmosdb.js +19 -17
- package/dist/services/simpledb/diskdb.d.ts +2 -2
- package/dist/services/simpledb/diskdb.d.ts.map +1 -1
- package/dist/services/simpledb/diskdb.js +10 -9
- package/dist/services/simpledb/memdb.d.ts +3 -3
- package/dist/services/simpledb/memdb.d.ts.map +1 -1
- package/dist/services/simpledb/memdb.js +13 -11
- package/dist/services/simpledb/mongodb.d.ts +2 -2
- package/dist/services/simpledb/mongodb.d.ts.map +1 -1
- package/dist/services/simpledb/mongodb.js +16 -14
- package/dist/services/simpledb/redisdb.d.ts +8 -8
- package/dist/services/simpledb/redisdb.d.ts.map +1 -1
- package/dist/services/simpledb/redisdb.js +12 -11
- package/dist/services/simpledb/shared.d.ts +13 -13
- package/dist/services/simpledb/shared.js +6 -6
- package/dist/services/simpledb/simpledb.d.ts +4 -4
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +16 -15
- package/package.json +5 -5
|
@@ -14,7 +14,7 @@ var tsplus_module_3 = _interopRequireWildcard(require("effect/Effect"));
|
|
|
14
14
|
var MO = _interopRequireWildcard(require("@effect-app/schema"));
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
-
class CouldNotAquireDbLockException extends tsplus_module_1.TaggedError("CouldNotAquireDbLockException") {
|
|
17
|
+
class CouldNotAquireDbLockException extends tsplus_module_1.Data.TaggedError("CouldNotAquireDbLockException") {
|
|
18
18
|
constructor(type, id, error) {
|
|
19
19
|
super({
|
|
20
20
|
type,
|
|
@@ -25,7 +25,7 @@ class CouldNotAquireDbLockException extends tsplus_module_1.TaggedError("CouldNo
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.CouldNotAquireDbLockException = CouldNotAquireDbLockException;
|
|
28
|
-
class OptimisticLockException extends tsplus_module_1.TaggedError("OptimisticLockException") {
|
|
28
|
+
class OptimisticLockException extends tsplus_module_1.Data.TaggedError("OptimisticLockException") {
|
|
29
29
|
constructor(type, id) {
|
|
30
30
|
super({
|
|
31
31
|
type,
|
|
@@ -35,7 +35,7 @@ class OptimisticLockException extends tsplus_module_1.TaggedError("OptimisticLoc
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
exports.OptimisticLockException = OptimisticLockException;
|
|
38
|
-
class ConnectionException extends tsplus_module_1.TaggedError("ConnectionException") {
|
|
38
|
+
class ConnectionException extends tsplus_module_1.Data.TaggedError("ConnectionException") {
|
|
39
39
|
constructor(cause) {
|
|
40
40
|
super({
|
|
41
41
|
cause,
|
|
@@ -68,9 +68,9 @@ function getRecordName(type, id) {
|
|
|
68
68
|
function makeMap() {
|
|
69
69
|
const map = new Map();
|
|
70
70
|
return {
|
|
71
|
-
find: k => tsplus_module_3.sync(() => tsplus_module_2.fromNullable(map.get(k))),
|
|
71
|
+
find: k => tsplus_module_3.Effect.sync(() => tsplus_module_2.Option.fromNullable(map.get(k))),
|
|
72
72
|
[Symbol.iterator]: () => map[Symbol.iterator](),
|
|
73
|
-
set: (k, v) => tsplus_module_3.sync(() => {
|
|
73
|
+
set: (k, v) => tsplus_module_3.Effect.sync(() => {
|
|
74
74
|
map.set(k, v);
|
|
75
75
|
})
|
|
76
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.cjs","names":["MO","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CouldNotAquireDbLockException","tsplus_module_1","TaggedError","constructor","type","id","error","message","exports","OptimisticLockException","ConnectionException","cause","_errorTag","SerializedDBRecord","Model","version","prop","string","timestamp","date","data","makeSerialisedDBRecord","s","props","number","getIndexName","getRecordName","makeMap","map","Map","find","k","tsplus_module_3","sync","tsplus_module_2","fromNullable","Symbol","iterator","v"],"sources":["../../../_src/services/simpledb/shared.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAwC,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAGlC,MAAOY,6BACX,SAAQC,eAAA,CAAAC,
|
|
1
|
+
{"version":3,"file":"shared.cjs","names":["MO","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CouldNotAquireDbLockException","tsplus_module_1","Data","TaggedError","constructor","type","id","error","message","exports","OptimisticLockException","ConnectionException","cause","_errorTag","SerializedDBRecord","Model","version","prop","string","timestamp","date","data","makeSerialisedDBRecord","s","props","number","getIndexName","getRecordName","makeMap","map","Map","find","k","tsplus_module_3","Effect","sync","tsplus_module_2","Option","fromNullable","Symbol","iterator","v"],"sources":["../../../_src/services/simpledb/shared.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -10,10 +10,11 @@ exports.store = store;
|
|
|
10
10
|
exports.storeDirectly = storeDirectly;
|
|
11
11
|
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
12
12
|
var tsplus_module_2 = _interopRequireWildcard(require("effect/Context"));
|
|
13
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/Layer"));
|
|
14
|
-
var tsplus_module_4 = _interopRequireWildcard(require("
|
|
15
|
-
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/
|
|
13
|
+
var tsplus_module_3 = _interopRequireWildcard(require("effect/Layer.int"));
|
|
14
|
+
var tsplus_module_4 = _interopRequireWildcard(require("effect/Effect.impl"));
|
|
15
|
+
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/EffectX"));
|
|
16
16
|
var tsplus_module_6 = _interopRequireWildcard(require("effect/Option"));
|
|
17
|
+
var tsplus_module_7 = _interopRequireWildcard(require("effect/Option.impl"));
|
|
17
18
|
var _shared = require("./shared.cjs");
|
|
18
19
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
20
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -28,7 +29,7 @@ exports.InvalidStateError = InvalidStateError;
|
|
|
28
29
|
function makeLiveRecordCache() {
|
|
29
30
|
const m = new Map();
|
|
30
31
|
return {
|
|
31
|
-
get: type => tsplus_module_1.sync(() => {
|
|
32
|
+
get: type => tsplus_module_1.Effect.sync(() => {
|
|
32
33
|
const ex = m.get(type);
|
|
33
34
|
if (!ex) {
|
|
34
35
|
const nm = (0, _shared.makeMap)();
|
|
@@ -41,44 +42,44 @@ function makeLiveRecordCache() {
|
|
|
41
42
|
}
|
|
42
43
|
// module tag
|
|
43
44
|
const RecordCache = exports.RecordCache = tsplus_module_2.Tag();
|
|
44
|
-
const LiveRecordCache = exports.LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.sync(() => makeLiveRecordCache()));
|
|
45
|
-
const getM = type => eff => tsplus_module_1.gen(function* ($) {
|
|
45
|
+
const LiveRecordCache = exports.LiveRecordCache = tsplus_module_3.effect(RecordCache)(tsplus_module_1.Effect.sync(() => makeLiveRecordCache()));
|
|
46
|
+
const getM = type => eff => tsplus_module_1.Effect.gen(function* ($) {
|
|
46
47
|
const {
|
|
47
48
|
get
|
|
48
49
|
} = yield* $(RecordCache);
|
|
49
|
-
return yield* $(
|
|
50
|
+
return yield* $(tsplus_module_4.flatMap(get(type), eff));
|
|
50
51
|
});
|
|
51
52
|
function find(tryRead, decode, type) {
|
|
52
53
|
const getCache = getM(type);
|
|
53
|
-
const read = id =>
|
|
54
|
+
const read = id => tsplus_module_5.mapOption(tsplus_module_5.tapOption(tsplus_module_5.flatMapOption(tryRead(id), ({
|
|
54
55
|
data,
|
|
55
56
|
version
|
|
56
|
-
}) =>
|
|
57
|
+
}) => tsplus_module_4.mapBoth(decode(data), {
|
|
57
58
|
onFailure: err => new InvalidStateError("DB serialisation Issue", err),
|
|
58
59
|
onSuccess: data => ({
|
|
59
60
|
data,
|
|
60
61
|
version
|
|
61
62
|
})
|
|
62
63
|
})), r => getCache(c => c.set(id, r))), r => r.data);
|
|
63
|
-
return id => getCache(c =>
|
|
64
|
+
return id => getCache(c => tsplus_module_4.orElse(tsplus_module_5.mapOption(c.find(id), existing => existing.data), () => read(id)));
|
|
64
65
|
}
|
|
65
66
|
function storeDirectly(save, type) {
|
|
66
67
|
const getCache = getM(type);
|
|
67
|
-
return record => getCache(c =>
|
|
68
|
+
return record => getCache(c => tsplus_module_4.map(tsplus_module_4.tap(tsplus_module_4.flatMap(tsplus_module_5.mapOption(c.find(record.id), x => x.version), cv => save(record, cv)), r => c.set(record.id, r)), r => r.data));
|
|
68
69
|
}
|
|
69
70
|
function store(tryRead, save, lock, type) {
|
|
70
71
|
const getCache = getM(type);
|
|
71
|
-
return record => getCache(c =>
|
|
72
|
-
onNone: () => save(record,
|
|
72
|
+
return record => getCache(c => tsplus_module_4.map(tsplus_module_4.tap(tsplus_module_4.flatMap(tsplus_module_5.mapOption(c.find(record.id), x => x.version), _ => tsplus_module_7.match(_, {
|
|
73
|
+
onNone: () => save(record, tsplus_module_6.Option.none()),
|
|
73
74
|
onSome: confirmVersionAndSave(record)
|
|
74
75
|
})), r => c.set(record.id, r)), r => r.data));
|
|
75
76
|
function confirmVersionAndSave(record) {
|
|
76
|
-
return cv =>
|
|
77
|
-
onNone: () => tsplus_module_1.fail(new InvalidStateError("record is gone")),
|
|
78
|
-
onSome: tsplus_module_1.succeed
|
|
77
|
+
return cv => tsplus_module_4.scoped(tsplus_module_4.zipRight(lock(record.id), tsplus_module_4.zipRight(tsplus_module_4.tap(tsplus_module_4.flatMap(tryRead(record.id), _ => tsplus_module_7.match(_, {
|
|
78
|
+
onNone: () => tsplus_module_1.Effect.fail(new InvalidStateError("record is gone")),
|
|
79
|
+
onSome: tsplus_module_1.Effect.succeed
|
|
79
80
|
})), ({
|
|
80
81
|
version
|
|
81
|
-
}) => version !== cv ? new _shared.OptimisticLockException(type, record.id) : tsplus_module_1.unit), save(record, tsplus_module_6.some(cv)))));
|
|
82
|
+
}) => version !== cv ? new _shared.OptimisticLockException(type, record.id) : tsplus_module_1.Effect.unit), save(record, tsplus_module_6.Option.some(cv)))));
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
//# sourceMappingURL=simpledb.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","constructor","message","details","_tag","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","Tag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","flatMap","find","tryRead","decode","getCache","read","id","
|
|
1
|
+
{"version":3,"file":"simpledb.cjs","names":["_shared","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InvalidStateError","constructor","message","details","_tag","exports","makeLiveRecordCache","m","Map","type","tsplus_module_1","Effect","sync","ex","nm","makeMap","RecordCache","tsplus_module_2","Tag","LiveRecordCache","tsplus_module_3","effect","getM","eff","gen","$","tsplus_module_4","flatMap","find","tryRead","decode","getCache","read","id","tsplus_module_5","mapOption","tapOption","flatMapOption","data","version","mapBoth","onFailure","err","onSuccess","c","orElse","existing","storeDirectly","save","record","map","tap","x","cv","store","lock","_","tsplus_module_7","match","onNone","tsplus_module_6","Option","none","onSome","confirmVersionAndSave","scoped","zipRight","fail","succeed","OptimisticLockException","unit","some"],"sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export const scopes = Ex.classic(demandScopes)
|
|
|
42
42
|
)
|
|
43
43
|
return (
|
|
44
44
|
cfg.AUTH_DISABLED
|
|
45
|
-
? Effect(null)
|
|
45
|
+
? Effect.sync(() => null)
|
|
46
46
|
: // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
47
47
|
handleJwt(req, res, () => scopes(req, res, () => {}))
|
|
48
48
|
).zipRight(
|
|
@@ -7,7 +7,7 @@ export function defaultBasicErrorHandler<R>(
|
|
|
7
7
|
res: express.Response,
|
|
8
8
|
r2: Effect<R, ValidationError, void>
|
|
9
9
|
) {
|
|
10
|
-
const sendError = (code: number) => (body: unknown) => Effect(res.status(code).send(body))
|
|
10
|
+
const sendError = (code: number) => (body: unknown) => Effect.sync(() => res.status(code).send(body))
|
|
11
11
|
return r2
|
|
12
12
|
.tapErrorCause((cause) => cause.isFailure() ? logRequestError(cause) : Effect.unit)
|
|
13
13
|
.catchTag("ValidationError", (err) => sendError(400)(err.errors))
|
|
@@ -33,7 +33,7 @@ export function defaultErrorHandler<R>(
|
|
|
33
33
|
const r3 = req.method === "PATCH"
|
|
34
34
|
? r2.retry(optimisticConcurrencySchedule)
|
|
35
35
|
: r2
|
|
36
|
-
const sendError = (code: number) => (body: unknown) => Effect(res.status(code).send(body))
|
|
36
|
+
const sendError = (code: number) => (body: unknown) => Effect.sync(() => res.status(code).send(body))
|
|
37
37
|
return r3
|
|
38
38
|
.tapErrorCause((cause) => cause.isFailure() ? logRequestError(cause) : Effect.unit)
|
|
39
39
|
.catchTags({
|
|
@@ -76,7 +76,7 @@ export function match<
|
|
|
76
76
|
h
|
|
77
77
|
)
|
|
78
78
|
).zipRight(
|
|
79
|
-
Effect(makeRouteDescriptor(r.Request.path, r.Request.method, r))
|
|
79
|
+
Effect.sync(() => makeRouteDescriptor(r.Request.path, r.Request.method, r))
|
|
80
80
|
)
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -180,14 +180,14 @@ export function handleRequest<
|
|
|
180
180
|
}))
|
|
181
181
|
// final catch all; expecting never so that unhandled known errors will show up
|
|
182
182
|
.catchAll((err: never) =>
|
|
183
|
-
Effect(
|
|
183
|
+
Effect.sync(() =>
|
|
184
184
|
console.error(
|
|
185
185
|
"Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect",
|
|
186
186
|
err
|
|
187
187
|
)
|
|
188
188
|
).flatMap(Effect.die)
|
|
189
189
|
)
|
|
190
|
-
// .tapCause(() => Effect(res.status(500).send()))
|
|
190
|
+
// .tapCause(() => Effect.sync(() => res.status(500).send()))
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
// Additional convenience helpers
|
|
@@ -242,7 +242,7 @@ export function get<
|
|
|
242
242
|
r,
|
|
243
243
|
h
|
|
244
244
|
)
|
|
245
|
-
).zipRight(Effect(makeRouteDescriptor(path, "GET", r)))
|
|
245
|
+
).zipRight(Effect.sync(() => makeRouteDescriptor(path, "GET", r)))
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
export function post<
|
|
@@ -295,7 +295,7 @@ export function post<
|
|
|
295
295
|
r,
|
|
296
296
|
h
|
|
297
297
|
)
|
|
298
|
-
).zipRight(Effect(makeRouteDescriptor(path, "POST", r)))
|
|
298
|
+
).zipRight(Effect.sync(() => makeRouteDescriptor(path, "POST", r)))
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
export function put<
|
|
@@ -348,7 +348,7 @@ export function put<
|
|
|
348
348
|
r,
|
|
349
349
|
h
|
|
350
350
|
)
|
|
351
|
-
).zipRight(Effect(makeRouteDescriptor(path, "PUT", r)))
|
|
351
|
+
).zipRight(Effect.sync(() => makeRouteDescriptor(path, "PUT", r)))
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
export function patch<
|
|
@@ -401,7 +401,7 @@ export function patch<
|
|
|
401
401
|
r,
|
|
402
402
|
h
|
|
403
403
|
)
|
|
404
|
-
).zipRight(Effect(makeRouteDescriptor(path, "PATCH", r)))
|
|
404
|
+
).zipRight(Effect.sync(() => makeRouteDescriptor(path, "PATCH", r)))
|
|
405
405
|
}
|
|
406
406
|
|
|
407
407
|
function del<
|
|
@@ -454,7 +454,7 @@ function del<
|
|
|
454
454
|
r,
|
|
455
455
|
h
|
|
456
456
|
)
|
|
457
|
-
).zipRight(Effect(makeRouteDescriptor(path, "DELETE", r)))
|
|
457
|
+
).zipRight(Effect.sync(() => makeRouteDescriptor(path, "DELETE", r)))
|
|
458
458
|
}
|
|
459
459
|
|
|
460
460
|
export { del as delete }
|
|
@@ -77,7 +77,7 @@ export function parseRequestParams<PathA, CookieA, QueryA, BodyA, HeaderA>(
|
|
|
77
77
|
.flatMap((_) =>
|
|
78
78
|
_.isFailure() && !_.cause.isFailure()
|
|
79
79
|
? (Effect.failCauseSync(() => _.cause) as Effect<never, ValidationError, never>)
|
|
80
|
-
: Effect(
|
|
80
|
+
: Effect.sync(() =>
|
|
81
81
|
_.isSuccess()
|
|
82
82
|
? { _tag: "Success" as const, value: _.value }
|
|
83
83
|
: { _tag: "Failure", errors: _.cause.failures }
|
|
@@ -89,7 +89,7 @@ export function parseRequestParams<PathA, CookieA, QueryA, BodyA, HeaderA>(
|
|
|
89
89
|
.flatMap((_) =>
|
|
90
90
|
_.isFailure() && !_.cause.isFailure()
|
|
91
91
|
? (Effect.failCauseSync(() => _.cause) as Effect<never, ValidationError, never>)
|
|
92
|
-
: Effect(
|
|
92
|
+
: Effect.sync(() =>
|
|
93
93
|
_.isSuccess()
|
|
94
94
|
? { _tag: "Success" as const, value: _.value }
|
|
95
95
|
: { _tag: "Failure", errors: _.cause.failures }
|
|
@@ -101,7 +101,7 @@ export function parseRequestParams<PathA, CookieA, QueryA, BodyA, HeaderA>(
|
|
|
101
101
|
.flatMap((_) =>
|
|
102
102
|
_.isFailure() && !_.cause.isFailure()
|
|
103
103
|
? (Effect.failCauseSync(() => _.cause) as Effect<never, ValidationError, never>)
|
|
104
|
-
: Effect(
|
|
104
|
+
: Effect.sync(() =>
|
|
105
105
|
_.isSuccess()
|
|
106
106
|
? { _tag: "Success" as const, value: _.value }
|
|
107
107
|
: { _tag: "Failure", errors: _.cause.failures }
|
|
@@ -113,7 +113,7 @@ export function parseRequestParams<PathA, CookieA, QueryA, BodyA, HeaderA>(
|
|
|
113
113
|
.flatMap((_) =>
|
|
114
114
|
_.isFailure() && !_.cause.isFailure()
|
|
115
115
|
? (Effect.failCauseSync(() => _.cause) as Effect<never, ValidationError, never>)
|
|
116
|
-
: Effect(
|
|
116
|
+
: Effect.sync(() =>
|
|
117
117
|
_.isSuccess()
|
|
118
118
|
? { _tag: "Success" as const, value: _.value }
|
|
119
119
|
: { _tag: "Failure", errors: _.cause.failures }
|
|
@@ -125,7 +125,7 @@ export function parseRequestParams<PathA, CookieA, QueryA, BodyA, HeaderA>(
|
|
|
125
125
|
.flatMap((_) =>
|
|
126
126
|
_.isFailure() && !_.cause.isFailure()
|
|
127
127
|
? (Effect.failCauseSync(() => _.cause) as Effect<never, ValidationError, never>)
|
|
128
|
-
: Effect(
|
|
128
|
+
: Effect.sync(() =>
|
|
129
129
|
_.isSuccess()
|
|
130
130
|
? { _tag: "Success" as const, value: _.value }
|
|
131
131
|
: { _tag: "Failure", errors: _.cause.failures }
|
|
@@ -152,13 +152,13 @@ export function parseRequestParams<PathA, CookieA, QueryA, BodyA, HeaderA>(
|
|
|
152
152
|
if (errors.length) {
|
|
153
153
|
return new ValidationError({ errors })
|
|
154
154
|
}
|
|
155
|
-
return Effect({
|
|
155
|
+
return Effect.sync(() => ({
|
|
156
156
|
body: body.value!,
|
|
157
157
|
cookie: cookie.value!,
|
|
158
158
|
headers: headers.value!,
|
|
159
159
|
path: path.value!,
|
|
160
160
|
query: query.value!
|
|
161
|
-
})
|
|
161
|
+
}))
|
|
162
162
|
})
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -307,7 +307,7 @@ export function makeRequestParsers<
|
|
|
307
307
|
Errors
|
|
308
308
|
>["Request"]
|
|
309
309
|
): RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA> {
|
|
310
|
-
const ph = Effect(
|
|
310
|
+
const ph = Effect.sync(() =>
|
|
311
311
|
Option
|
|
312
312
|
.fromNullable(Request.Headers)
|
|
313
313
|
.map((s) => s)
|
|
@@ -316,7 +316,7 @@ export function makeRequestParsers<
|
|
|
316
316
|
)
|
|
317
317
|
const parseHeaders = (u: unknown) => ph.flatMapOpt((d) => d(u))
|
|
318
318
|
|
|
319
|
-
const pq = Effect(
|
|
319
|
+
const pq = Effect.sync(() =>
|
|
320
320
|
Option
|
|
321
321
|
.fromNullable(Request.Query)
|
|
322
322
|
.map((s) => s)
|
|
@@ -325,7 +325,7 @@ export function makeRequestParsers<
|
|
|
325
325
|
)
|
|
326
326
|
const parseQuery = (u: unknown) => pq.flatMapOpt((d) => d(u))
|
|
327
327
|
|
|
328
|
-
const pb = Effect(
|
|
328
|
+
const pb = Effect.sync(() =>
|
|
329
329
|
Option
|
|
330
330
|
.fromNullable(Request.Body)
|
|
331
331
|
.map((s) => s)
|
|
@@ -334,7 +334,7 @@ export function makeRequestParsers<
|
|
|
334
334
|
)
|
|
335
335
|
const parseBody = (u: unknown) => pb.flatMapOpt((d) => d(u))
|
|
336
336
|
|
|
337
|
-
const pp = Effect(
|
|
337
|
+
const pp = Effect.sync(() =>
|
|
338
338
|
Option
|
|
339
339
|
.fromNullable(Request.Path)
|
|
340
340
|
.map((s) => s)
|
|
@@ -343,7 +343,7 @@ export function makeRequestParsers<
|
|
|
343
343
|
)
|
|
344
344
|
const parsePath = (u: unknown) => pp.flatMapOpt((d) => d(u))
|
|
345
345
|
|
|
346
|
-
const pc = Effect(
|
|
346
|
+
const pc = Effect.sync(() =>
|
|
347
347
|
Option
|
|
348
348
|
.fromNullable(Request.Cookie)
|
|
349
349
|
.map((s) => s)
|
|
@@ -99,33 +99,33 @@ export function makeFromSchema<ResA>(
|
|
|
99
99
|
const Res = r ? MO.extractSchema(r) : MO.Void
|
|
100
100
|
// TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
|
|
101
101
|
// TODO: use the path vs body etc serialisation also in the Client.
|
|
102
|
-
const makeReqQuerySchema = Effect(Option.fromNullable(Req.Query)).flatMap((_) =>
|
|
102
|
+
const makeReqQuerySchema = Effect.sync(() => Option.fromNullable(Req.Query)).flatMap((_) =>
|
|
103
103
|
_.match({
|
|
104
|
-
onNone: () => Effect(Option.none),
|
|
104
|
+
onNone: () => Effect.sync(() => Option.none()),
|
|
105
105
|
onSome: (_) => jsonSchema(_).map(Option.some)
|
|
106
106
|
})
|
|
107
107
|
)
|
|
108
|
-
const makeReqHeadersSchema = Effect(Option.fromNullable(Req.Headers)).flatMap((_) =>
|
|
108
|
+
const makeReqHeadersSchema = Effect.sync(() => Option.fromNullable(Req.Headers)).flatMap((_) =>
|
|
109
109
|
_.match({
|
|
110
|
-
onNone: () => Effect(Option.none),
|
|
110
|
+
onNone: () => Effect.sync(() => Option.none()),
|
|
111
111
|
onSome: (_) => jsonSchema(_).map(Option.some)
|
|
112
112
|
})
|
|
113
113
|
)
|
|
114
|
-
const makeReqCookieSchema = Effect(Option.fromNullable(Req.Cookie)).flatMap((_) =>
|
|
114
|
+
const makeReqCookieSchema = Effect.sync(() => Option.fromNullable(Req.Cookie)).flatMap((_) =>
|
|
115
115
|
_.match({
|
|
116
|
-
onNone: () => Effect(Option.none),
|
|
116
|
+
onNone: () => Effect.sync(() => Option.none()),
|
|
117
117
|
onSome: (_) => jsonSchema(_).map(Option.some)
|
|
118
118
|
})
|
|
119
119
|
)
|
|
120
|
-
const makeReqPathSchema = Effect(Option.fromNullable(Req.Path)).flatMap((_) =>
|
|
120
|
+
const makeReqPathSchema = Effect.sync(() => Option.fromNullable(Req.Path)).flatMap((_) =>
|
|
121
121
|
_.match({
|
|
122
|
-
onNone: () => Effect(Option.none),
|
|
122
|
+
onNone: () => Effect.sync(() => Option.none()),
|
|
123
123
|
onSome: (_) => jsonSchema(_).map(Option.some)
|
|
124
124
|
})
|
|
125
125
|
)
|
|
126
|
-
const makeReqBodySchema = Effect(Option.fromNullable(Req.Body)).flatMap((_) =>
|
|
126
|
+
const makeReqBodySchema = Effect.sync(() => Option.fromNullable(Req.Body)).flatMap((_) =>
|
|
127
127
|
_.match({
|
|
128
|
-
onNone: () => Effect(Option.none),
|
|
128
|
+
onNone: () => Effect.sync(() => Option.none()),
|
|
129
129
|
onSome: (_) => jsonSchema(_).map(Option.some)
|
|
130
130
|
})
|
|
131
131
|
)
|
|
@@ -136,7 +136,7 @@ export function makeFromSchema<ResA>(
|
|
|
136
136
|
function makeParameters(inn: ParameterLocation) {
|
|
137
137
|
return (a: Option<JSONSchema | SubSchema>) => {
|
|
138
138
|
return a
|
|
139
|
-
.flatMap((o) => (isObjectSchema(o) ? Option(o) : Option.none))
|
|
139
|
+
.flatMap((o) => (isObjectSchema(o) ? Option.some(o) : Option.none()))
|
|
140
140
|
.map((x) => {
|
|
141
141
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
142
142
|
return Object.keys(x.properties!).map((p) => {
|
package/_src/api/routing.ts
CHANGED
|
@@ -47,7 +47,7 @@ export function makeRequestParsers<
|
|
|
47
47
|
Errors
|
|
48
48
|
>["Request"]
|
|
49
49
|
): RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA> {
|
|
50
|
-
const ph = Effect(
|
|
50
|
+
const ph = Effect.sync(() =>
|
|
51
51
|
Option
|
|
52
52
|
.fromNullable(Request.Headers)
|
|
53
53
|
.map((s) => s)
|
|
@@ -56,7 +56,7 @@ export function makeRequestParsers<
|
|
|
56
56
|
)
|
|
57
57
|
const parseHeaders = (u: unknown) => ph.flatMapOpt((d) => d(u))
|
|
58
58
|
|
|
59
|
-
const pq = Effect(
|
|
59
|
+
const pq = Effect.sync(() =>
|
|
60
60
|
Option
|
|
61
61
|
.fromNullable(Request.Query)
|
|
62
62
|
.map((s) => s)
|
|
@@ -65,7 +65,7 @@ export function makeRequestParsers<
|
|
|
65
65
|
)
|
|
66
66
|
const parseQuery = (u: unknown) => pq.flatMapOpt((d) => d(u))
|
|
67
67
|
|
|
68
|
-
const pb = Effect(
|
|
68
|
+
const pb = Effect.sync(() =>
|
|
69
69
|
Option
|
|
70
70
|
.fromNullable(Request.Body)
|
|
71
71
|
.map((s) => s)
|
|
@@ -74,7 +74,7 @@ export function makeRequestParsers<
|
|
|
74
74
|
)
|
|
75
75
|
const parseBody = (u: unknown) => pb.flatMapOpt((d) => d(u))
|
|
76
76
|
|
|
77
|
-
const pp = Effect(
|
|
77
|
+
const pp = Effect.sync(() =>
|
|
78
78
|
Option
|
|
79
79
|
.fromNullable(Request.Path)
|
|
80
80
|
.map((s) => s)
|
|
@@ -83,7 +83,7 @@ export function makeRequestParsers<
|
|
|
83
83
|
)
|
|
84
84
|
const parsePath = (u: unknown) => pp.flatMapOpt((d) => d(u))
|
|
85
85
|
|
|
86
|
-
const pc = Effect(
|
|
86
|
+
const pc = Effect.sync(() =>
|
|
87
87
|
Option
|
|
88
88
|
.fromNullable(Request.Cookie)
|
|
89
89
|
.map((s) => s)
|
|
@@ -185,7 +185,7 @@ export function match<
|
|
|
185
185
|
)
|
|
186
186
|
)
|
|
187
187
|
.zipRight(
|
|
188
|
-
Effect(
|
|
188
|
+
Effect.sync(() =>
|
|
189
189
|
makeRouteDescriptor(
|
|
190
190
|
requestHandler.Request.path,
|
|
191
191
|
requestHandler.Request.method,
|
|
@@ -199,7 +199,8 @@ export function respondSuccess<ReqA, A, E>(
|
|
|
199
199
|
encodeResponse: (req: ReqA) => Encode<A, E>
|
|
200
200
|
) {
|
|
201
201
|
return (req: ReqA, res: express.Response, a: A) =>
|
|
202
|
-
Effect
|
|
202
|
+
Effect
|
|
203
|
+
.sync(() => encodeResponse(req)(a))
|
|
203
204
|
.flatMap((r) =>
|
|
204
205
|
Effect.sync(() => {
|
|
205
206
|
r === undefined
|
|
@@ -258,13 +259,13 @@ export function makeRequestHandler<
|
|
|
258
259
|
const respond = respondSuccess(encodeResponse)
|
|
259
260
|
|
|
260
261
|
function getParams(req: express.Request) {
|
|
261
|
-
return Effect({
|
|
262
|
+
return Effect.sync(() => ({
|
|
262
263
|
path: req.params,
|
|
263
264
|
query: req.query,
|
|
264
265
|
body: req.body,
|
|
265
266
|
headers: req.headers,
|
|
266
267
|
cookies: req.cookies
|
|
267
|
-
})
|
|
268
|
+
}))
|
|
268
269
|
}
|
|
269
270
|
|
|
270
271
|
function makeContext(req: express.Request) {
|
|
@@ -380,8 +381,8 @@ export function makeRequestHandler<
|
|
|
380
381
|
Effect
|
|
381
382
|
.all(
|
|
382
383
|
[
|
|
383
|
-
Effect(res.status(500).send()),
|
|
384
|
-
Effect(
|
|
384
|
+
Effect.sync(() => res.status(500).send()),
|
|
385
|
+
Effect.sync(() =>
|
|
385
386
|
reportRequestError(cause, {
|
|
386
387
|
path: req.originalUrl,
|
|
387
388
|
method: req.method
|
|
@@ -418,7 +419,7 @@ export function makeRequestHandler<
|
|
|
418
419
|
],
|
|
419
420
|
{ concurrency: "inherit" }
|
|
420
421
|
)
|
|
421
|
-
.tapErrorCause((cause) => Effect(console.error("Error occurred while reporting error", cause)))
|
|
422
|
+
.tapErrorCause((cause) => Effect.sync(() => console.error("Error occurred while reporting error", cause)))
|
|
422
423
|
)
|
|
423
424
|
.tap(() =>
|
|
424
425
|
RequestSettings
|
|
@@ -618,7 +619,7 @@ export interface ReqHandler<
|
|
|
618
619
|
* class SayHelloResponse extends Model<SayHelloRequest>()({ message: prop(LongString) }) {}
|
|
619
620
|
*
|
|
620
621
|
* export const SayHelloControllers = matchResource({ SayHello: { SayHelloRequest, SayHelloResponse } })({
|
|
621
|
-
* SayHello: (req) => Effect({ message: `Hi ${req.name}` })
|
|
622
|
+
* SayHello: (req) => Effect.sync(() => { message: `Hi ${req.name}` })
|
|
622
623
|
* })
|
|
623
624
|
* ```
|
|
624
625
|
*/
|
package/_src/errorReporter.ts
CHANGED
|
@@ -8,7 +8,7 @@ const reportAppError = reportError((cause) => new RequestException(cause))
|
|
|
8
8
|
|
|
9
9
|
const make = Effect.sync((): Operations => {
|
|
10
10
|
const ops = new Map<OperationId, Operation>()
|
|
11
|
-
const makeOp = Effect(OperationId.make())
|
|
11
|
+
const makeOp = Effect.sync(() => OperationId.make())
|
|
12
12
|
|
|
13
13
|
const cleanup = Effect.sync(() => {
|
|
14
14
|
const before = new Date().subHours(1)
|
|
@@ -29,7 +29,7 @@ const make = Effect.sync((): Operations => {
|
|
|
29
29
|
})
|
|
30
30
|
}
|
|
31
31
|
function findOp(id: OperationId) {
|
|
32
|
-
return Effect(Option.fromNullable(ops.get(id)))
|
|
32
|
+
return Effect.sync(() => Option.fromNullable(ops.get(id)))
|
|
33
33
|
}
|
|
34
34
|
function finishOp(id: OperationId, exit: Exit<unknown, unknown>) {
|
|
35
35
|
return findOp(id).flatMap((_) =>
|
|
@@ -52,8 +52,8 @@ const make = Effect.sync((): Operations => {
|
|
|
52
52
|
.failureOption
|
|
53
53
|
.flatMap((_) =>
|
|
54
54
|
typeof _ === "object" && _ !== null && "message" in _ && LongString.Guard(_.message)
|
|
55
|
-
? Option(_.message)
|
|
56
|
-
: Option.none
|
|
55
|
+
? Option.some(_.message)
|
|
56
|
+
: Option.none()
|
|
57
57
|
)
|
|
58
58
|
.value ?? null
|
|
59
59
|
})
|
|
@@ -75,7 +75,7 @@ const make = Effect.sync((): Operations => {
|
|
|
75
75
|
cleanup,
|
|
76
76
|
register: makeOp
|
|
77
77
|
.tap((id) =>
|
|
78
|
-
|
|
78
|
+
EffectX.annotateLogscoped("operationId", id)
|
|
79
79
|
> addOp(id).acquireRelease(
|
|
80
80
|
(_, exit) => finishOp(id, exit)
|
|
81
81
|
)
|
|
@@ -42,7 +42,7 @@ export function reportNonInterruptedFailure(context?: Record<string, unknown>) {
|
|
|
42
42
|
.exit
|
|
43
43
|
.flatMap((result) =>
|
|
44
44
|
result.match(
|
|
45
|
-
{ onFailure: (cause) => report(cause).map(() => result), onSuccess: () => Effect(result) }
|
|
45
|
+
{ onFailure: (cause) => report(cause).map(() => result), onSuccess: () => Effect.sync(() => result) }
|
|
46
46
|
)
|
|
47
47
|
)
|
|
48
48
|
}
|
|
@@ -43,7 +43,7 @@ export function makeMemQueue<
|
|
|
43
43
|
messages
|
|
44
44
|
.forEachEffect((m) =>
|
|
45
45
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
46
|
-
Effect(
|
|
46
|
+
Effect.sync(() =>
|
|
47
47
|
JSON.stringify(
|
|
48
48
|
encoder({ body: m, meta: requestContext })
|
|
49
49
|
)
|
|
@@ -60,7 +60,7 @@ export function makeMemQueue<
|
|
|
60
60
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName })
|
|
61
61
|
const processMessage = (msg: string) =>
|
|
62
62
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
63
|
-
Effect(JSON.parse(msg))
|
|
63
|
+
Effect.sync(() => JSON.parse(msg))
|
|
64
64
|
.flatMap(parseDrain)
|
|
65
65
|
.orDie
|
|
66
66
|
.flatMap(({ body, meta }) =>
|
|
@@ -81,7 +81,7 @@ export function makeServiceBusQueue<
|
|
|
81
81
|
return yield* $(
|
|
82
82
|
subscribe({
|
|
83
83
|
processMessage: (x) => processMessage(x.body).uninterruptible,
|
|
84
|
-
processError: (err) => Effect(captureException(err.error))
|
|
84
|
+
processError: (err) => Effect.sync(() => captureException(err.error))
|
|
85
85
|
})
|
|
86
86
|
.provide(receiverLayer)
|
|
87
87
|
)
|