@effect-app/infra 0.198.2 → 0.199.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 +17 -0
- package/_cjs/RequestContext.cjs +14 -9
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/_ext/Array.cjs +3 -7
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +3 -6
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing/base.cjs +27 -61
- package/_cjs/api/routing/base.cjs.map +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +14 -21
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +44 -51
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/api/routing/match.cjs +6 -13
- package/_cjs/api/routing/match.cjs.map +1 -1
- package/_cjs/api/{express → routing}/schema/jwt.cjs +3 -4
- package/_cjs/api/routing/schema/jwt.cjs.map +1 -0
- package/_cjs/api/routing/schema/routing.cjs +136 -0
- package/_cjs/api/routing/schema/routing.cjs.map +1 -0
- package/_cjs/api/setupRequest.cjs +16 -22
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +16 -17
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +2 -4
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/filter/types/path/index.cjs +0 -2
- package/_cjs/filter/types/path/index.cjs.map +1 -1
- package/_cjs/filter.cjs +35 -0
- package/_cjs/filter.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +9 -15
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +7 -11
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +6 -8
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +9 -12
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +9 -16
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -8
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Emailer/service.cjs +2 -4
- package/_cjs/services/Emailer/service.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +29 -42
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +15 -15
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +8 -12
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +27 -33
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +31 -40
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/service.cjs +7 -9
- package/_cjs/services/QueueMaker/service.cjs.map +1 -1
- package/_cjs/services/Repository/dsl.cjs +11 -14
- package/_cjs/services/Repository/dsl.cjs.map +1 -1
- package/_cjs/services/Repository/ext.cjs +62 -71
- package/_cjs/services/Repository/ext.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +171 -169
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +17 -23
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/ContextMapContainer.cjs +10 -16
- package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos/query.cjs +5 -9
- package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +58 -68
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +34 -36
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +55 -65
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.cjs +2 -4
- package/_cjs/services/Store/codeFilter.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +13 -12
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/filterApi/query.cjs +2 -4
- package/_cjs/services/Store/filterApi/query.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +6 -9
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +5 -7
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +16 -20
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/query.cjs +4 -1
- package/_cjs/services/query.cjs.map +1 -1
- package/_cjs/test.arbs.cjs +3 -4
- package/_cjs/test.arbs.cjs.map +1 -1
- package/dist/RequestContext.d.ts +20 -20
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +15 -8
- package/dist/_ext/Array.d.ts +2 -3
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +5 -5
- package/dist/api/reportError.d.ts +5 -5
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +6 -6
- package/dist/api/routing/base.d.ts +11 -15
- package/dist/api/routing/base.d.ts.map +1 -1
- package/dist/api/routing/base.js +48 -67
- package/dist/api/routing/defaultErrorHandler.d.ts +4 -6
- package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/routing/defaultErrorHandler.js +26 -28
- package/dist/api/routing/makeRequestHandler.d.ts +6 -7
- package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
- package/dist/api/routing/makeRequestHandler.js +69 -59
- package/dist/api/routing/match.d.ts +7 -8
- package/dist/api/routing/match.d.ts.map +1 -1
- package/dist/api/routing/match.js +7 -11
- package/dist/api/routing/schema/jwt.d.ts +4 -0
- package/dist/api/routing/schema/jwt.d.ts.map +1 -0
- package/dist/api/routing/schema/jwt.js +11 -0
- package/dist/api/{express → routing}/schema/routing.d.ts +2 -2
- package/dist/api/routing/schema/routing.d.ts.map +1 -0
- package/dist/api/routing/schema/routing.js +123 -0
- package/dist/api/routing.js +3 -1
- package/dist/api/setupRequest.d.ts +3 -5
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +20 -24
- package/dist/errorReporter.d.ts +4 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +20 -17
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -3
- package/dist/filter/types/path/index.d.ts +2 -2
- package/dist/filter/types/path/index.d.ts.map +1 -1
- package/dist/filter/types/path/index.js +2 -3
- package/dist/filter/types.js +2 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +36 -1
- package/dist/logger/jsonLogger.d.ts +2 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +9 -13
- package/dist/logger/logFmtLogger.d.ts +2 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +9 -11
- package/dist/logger/shared.d.ts +2 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +7 -9
- package/dist/rateLimit.d.ts +7 -10
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +17 -16
- package/dist/services/Emailer/Sendgrid.d.ts +1 -2
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +16 -20
- package/dist/services/Emailer/fake.d.ts +2 -2
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +10 -8
- package/dist/services/Emailer/service.d.ts +7 -10
- package/dist/services/Emailer/service.d.ts.map +1 -1
- package/dist/services/Emailer/service.js +3 -3
- package/dist/services/Operations/live.d.ts +2 -3
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +44 -51
- package/dist/services/Operations/service.d.ts +14 -19
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +23 -28
- package/dist/services/QueueMaker/errors.d.ts +5 -7
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +11 -11
- package/dist/services/QueueMaker/memQueue.d.ts +6 -9
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +37 -39
- package/dist/services/QueueMaker/sbqueue.d.ts +6 -9
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +41 -39
- package/dist/services/QueueMaker/service.d.ts +2 -4
- package/dist/services/QueueMaker/service.d.ts.map +1 -1
- package/dist/services/QueueMaker/service.js +8 -8
- package/dist/services/Repository/dsl.d.ts +8 -10
- package/dist/services/Repository/dsl.d.ts.map +1 -1
- package/dist/services/Repository/dsl.js +12 -13
- package/dist/services/Repository/ext.d.ts +34 -62
- package/dist/services/Repository/ext.d.ts.map +1 -1
- package/dist/services/Repository/ext.js +59 -70
- package/dist/services/RepositoryBase.d.ts +41 -47
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +182 -194
- package/dist/services/RequestContextContainer.d.ts +13 -21
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +21 -25
- package/dist/services/Store/ContextMapContainer.d.ts +11 -18
- package/dist/services/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/services/Store/ContextMapContainer.js +17 -18
- package/dist/services/Store/Cosmos/query.d.ts +3 -2
- package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/services/Store/Cosmos/query.js +10 -11
- package/dist/services/Store/Cosmos.d.ts +2 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +107 -90
- package/dist/services/Store/Disk.d.ts +4 -4
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +54 -50
- package/dist/services/Store/Memory.d.ts +6 -8
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +93 -89
- package/dist/services/Store/codeFilter.d.ts.map +1 -1
- package/dist/services/Store/codeFilter.js +3 -3
- package/dist/services/Store/codeFilter.test.d.ts.map +1 -1
- package/dist/services/Store/filterApi/query.d.ts +1 -1
- package/dist/services/Store/filterApi/query.d.ts.map +1 -1
- package/dist/services/Store/filterApi/query.js +3 -3
- package/dist/services/Store/index.d.ts +1 -2
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +7 -8
- package/dist/services/Store/service.d.ts +20 -23
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +6 -6
- 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 +26 -28
- package/dist/services/query.d.ts +6 -6
- package/dist/services/query.d.ts.map +1 -1
- package/dist/services/query.js +5 -3
- package/dist/test.arbs.d.ts +0 -2
- package/dist/test.arbs.d.ts.map +1 -1
- package/dist/test.arbs.js +3 -4
- package/package.json +28 -168
- package/src/RequestContext.ts +1 -0
- package/src/_ext/Array.ts +5 -2
- package/src/api/reportError.ts +14 -10
- package/src/api/routing/base.ts +77 -110
- package/src/api/routing/defaultErrorHandler.ts +64 -54
- package/src/api/routing/makeRequestHandler.ts +165 -135
- package/src/api/routing/match.ts +14 -8
- package/src/api/{express → routing}/schema/jwt.ts +6 -5
- package/src/api/{express → routing}/schema/routing.ts +2 -1
- package/src/api/setupRequest.ts +30 -24
- package/src/errorReporter.ts +12 -11
- package/src/errors.ts +1 -0
- package/src/filter/types/path/index.ts +2 -2
- package/src/logger/jsonLogger.ts +6 -5
- package/src/logger/logFmtLogger.ts +4 -5
- package/src/logger/shared.ts +4 -3
- package/src/rateLimit.ts +37 -34
- package/src/services/Emailer/Sendgrid.ts +12 -10
- package/src/services/Emailer/fake.ts +7 -4
- package/src/services/Emailer/service.ts +4 -1
- package/src/services/Operations/live.ts +66 -59
- package/src/services/Operations/service.ts +41 -34
- package/src/services/QueueMaker/errors.ts +15 -11
- package/src/services/QueueMaker/memQueue.ts +59 -40
- package/src/services/QueueMaker/sbqueue.ts +54 -33
- package/src/services/QueueMaker/service.ts +7 -6
- package/src/services/Repository/dsl.ts +12 -8
- package/src/services/Repository/ext.ts +52 -44
- package/src/services/RepositoryBase.ts +278 -240
- package/src/services/RequestContextContainer.ts +30 -18
- package/src/services/Store/ContextMapContainer.ts +26 -13
- package/src/services/Store/Cosmos/query.ts +17 -11
- package/src/services/Store/Cosmos.ts +209 -168
- package/src/services/Store/Disk.ts +69 -53
- package/src/services/Store/Memory.ts +138 -97
- package/src/services/Store/{Redis.ts → Redis.ts.bak} +7 -5
- package/src/services/Store/codeFilter.test.ts +61 -36
- package/src/services/Store/codeFilter.ts +1 -0
- package/src/services/Store/filterApi/query.ts +1 -0
- package/src/services/Store/index.ts +7 -6
- package/src/services/Store/service.ts +4 -1
- package/src/services/Store/utils.ts +25 -23
- package/src/services/query.ts +3 -2
- package/src/services/simpledb/{cosmosdb.ts → cosmosdb.ts.bak} +1 -0
- package/src/services/simpledb/{diskdb.ts → diskdb.ts.bak} +2 -1
- package/src/services/simpledb/{memdb.ts → memdb.ts.bak} +3 -2
- package/src/services/simpledb/{mongodb.ts → mongodb.ts.bak} +1 -0
- package/src/services/simpledb/{redisdb.ts → redisdb.ts.bak} +17 -14
- package/src/services/simpledb/{shared.ts → shared.ts.bak} +2 -1
- package/src/services/simpledb/{simpledb.ts → simpledb.ts.bak} +6 -2
- package/tsconfig.json +4 -21
- package/tsconfig.json.bak +0 -4
- package/_cjs/_global.cjs +0 -6
- package/_cjs/_global.cjs.map +0 -1
- package/_cjs/_global.ext.cjs +0 -5
- package/_cjs/_global.ext.cjs.map +0 -1
- package/_cjs/_global.schema.cjs +0 -5
- package/_cjs/_global.schema.cjs.map +0 -1
- package/_cjs/api/defaultErrorHandler.cjs +0 -37
- package/_cjs/api/defaultErrorHandler.cjs.map +0 -1
- package/_cjs/api/express/schema/jwt.cjs.map +0 -1
- package/_cjs/api/express/schema/routing.cjs +0 -23
- package/_cjs/api/express/schema/routing.cjs.map +0 -1
- package/_cjs/api/http.cjs +0 -42
- package/_cjs/api/http.cjs.map +0 -1
- package/_cjs/services/Store/Redis.cjs +0 -73
- package/_cjs/services/Store/Redis.cjs.map +0 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +0 -109
- package/_cjs/services/simpledb/cosmosdb.cjs.map +0 -1
- package/_cjs/services/simpledb/diskdb.cjs +0 -125
- package/_cjs/services/simpledb/diskdb.cjs.map +0 -1
- package/_cjs/services/simpledb/index.cjs +0 -38
- package/_cjs/services/simpledb/index.cjs.map +0 -1
- package/_cjs/services/simpledb/memdb.cjs +0 -72
- package/_cjs/services/simpledb/memdb.cjs.map +0 -1
- package/_cjs/services/simpledb/mongodb.cjs +0 -99
- package/_cjs/services/simpledb/mongodb.cjs.map +0 -1
- package/_cjs/services/simpledb/redisdb.cjs +0 -135
- package/_cjs/services/simpledb/redisdb.cjs.map +0 -1
- package/_cjs/services/simpledb/shared.cjs +0 -79
- package/_cjs/services/simpledb/shared.cjs.map +0 -1
- package/_cjs/services/simpledb/simpledb.cjs +0 -85
- package/_cjs/services/simpledb/simpledb.cjs.map +0 -1
- package/dist/_global.d.ts +0 -10
- package/dist/_global.d.ts.map +0 -1
- package/dist/_global.ext.d.ts +0 -34
- package/dist/_global.ext.d.ts.map +0 -1
- package/dist/_global.ext.js +0 -6
- package/dist/_global.js +0 -12
- package/dist/_global.schema.d.ts +0 -6
- package/dist/_global.schema.d.ts.map +0 -1
- package/dist/_global.schema.js +0 -9
- package/dist/api/defaultErrorHandler.d.ts +0 -6
- package/dist/api/defaultErrorHandler.d.ts.map +0 -1
- package/dist/api/defaultErrorHandler.js +0 -34
- package/dist/api/express/schema/jwt.d.ts +0 -6
- package/dist/api/express/schema/jwt.d.ts.map +0 -1
- package/dist/api/express/schema/jwt.js +0 -11
- package/dist/api/express/schema/routing.d.ts.map +0 -1
- package/dist/api/express/schema/routing.js +0 -10
- package/dist/api/http.d.ts +0 -16
- package/dist/api/http.d.ts.map +0 -1
- package/dist/api/http.js +0 -12
- package/dist/services/Store/Redis.d.ts +0 -6
- package/dist/services/Store/Redis.d.ts.map +0 -1
- package/dist/services/Store/Redis.js +0 -76
- package/dist/services/simpledb/cosmosdb.d.ts +0 -14
- package/dist/services/simpledb/cosmosdb.d.ts.map +0 -1
- package/dist/services/simpledb/cosmosdb.js +0 -103
- package/dist/services/simpledb/diskdb.d.ts +0 -12
- package/dist/services/simpledb/diskdb.d.ts.map +0 -1
- package/dist/services/simpledb/diskdb.js +0 -109
- package/dist/services/simpledb/index.d.ts +0 -7
- package/dist/services/simpledb/index.d.ts.map +0 -1
- package/dist/services/simpledb/index.js +0 -7
- package/dist/services/simpledb/memdb.d.ts +0 -11
- package/dist/services/simpledb/memdb.d.ts.map +0 -1
- package/dist/services/simpledb/memdb.js +0 -58
- package/dist/services/simpledb/mongodb.d.ts +0 -13
- package/dist/services/simpledb/mongodb.d.ts.map +0 -1
- package/dist/services/simpledb/mongodb.js +0 -68
- package/dist/services/simpledb/redisdb.d.ts +0 -35
- package/dist/services/simpledb/redisdb.d.ts.map +0 -1
- package/dist/services/simpledb/redisdb.js +0 -126
- package/dist/services/simpledb/shared.d.ts +0 -87
- package/dist/services/simpledb/shared.d.ts.map +0 -1
- package/dist/services/simpledb/shared.js +0 -52
- package/dist/services/simpledb/simpledb.d.ts +0 -23
- package/dist/services/simpledb/simpledb.d.ts.map +0 -1
- package/dist/services/simpledb/simpledb.js +0 -69
- package/src/_global.ext.ts +0 -36
- package/src/_global.schema.ts +0 -10
- package/src/_global.ts +0 -14
- package/src/api/defaultErrorHandler.ts +0 -59
- package/src/api/express/makeJsonSchema.test.ts.bak +0 -76
- package/src/api/express/makeJsonSchema.ts.bak +0 -166
- package/src/api/express/makeOpenApiSpecs.ts.bak +0 -62
- package/src/api/http.ts +0 -26
- package/tsplus.config.json +0 -9
- /package/src/services/simpledb/{index.ts → index.ts.bak} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext.cjs","names":["
|
|
1
|
+
{"version":3,"file":"ext.cjs","names":["_Array","require","_schema","_effectApp","_Pure","_errors","_dsl","get","self","id","find","pipe","Effect","flatMap","_","mapError","NotFoundError","type","itemType","log","evt","AnyPureDSL","projectEffect","map","f","utils","filter","collect","ReadonlyArray","filterMap","project","sync","count","NonNegativeInt","length","queryEffect","all","parseMany","queryOneEffect","limit","toNonEmptyArray","query","queryOne","queryAndSaveOnePureEffect","pure","saveWithPure_","queryAndSaveOnePure","queryAndSavePureEffect","saveManyWithPure_","queryAndSavePure","saveManyWithPure","items","byIdAndSaveWithPure","item","handleByIdAndSaveWithPure","req","ctx","saveAllWithEffectInt","runTerm","events","a","gen","saveAndPublish","queryAndSavePureEffectBatched","batchSize","saveManyWithPureBatched_","queryAndSavePureBatched","saveManyWithPureBatched","forEach","chunk_","batch","save","saveWithEvents","itemUpdateWithEffect","repo","mod","andThen","itemUpdate"],"sources":["../../../src/services/Repository/ext.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AAIA,IAAAK,IAAA,GAAAL,OAAA;AAbA;AACA;AACA;;AAaA;;;AAGM,SAAUM,GAAGA,CAMjBC,IAA2C,EAC3CC,EAAW;EAEX,OAAOD,IAAI,CACRE,IAAI,CAACD,EAAE,CAAC,CACRE,IAAI,CAACC,iBAAM,CAACC,OAAO,CAAEC,CAAC,IAAKF,iBAAM,CAACG,QAAQ,CAACD,CAAC,EAAE,MAAM,IAAIE,qBAAa,CAAW;IAAEC,IAAI,EAAET,IAAI,CAACU,QAAQ;IAAET;EAAE,CAAE,CAAC,CAAC,CAAC,CAAC;AACpH;AAEA;;;AAGM,SAAUU,GAAGA,CAKjBL,CAAwC;EACxC,OAAQM,GAAQ,IAAKC,eAAU,CAACF,GAAG,CAACC,GAAG,CAAC;AAC1C;AAiDM,SAAUE,aAAaA,CAU3Bd,IAA2C,EAC3Ce,GAUC;EAED;EACA,OAAOX,iBAAM,CAACC,OAAO,CAACU,GAAG,EAAGC,CAAC,IAC3BhB,IAAI,CACDiB,KAAK,CACLC,MAAM,CAACF,CAAC,CAAC,CACTb,IAAI,CAACC,iBAAM,CAACW,GAAG,CAAET,CAAC,IAAKU,CAAC,CAACG,OAAO,GAAGC,wBAAa,CAACC,SAAS,CAACf,CAAC,EAAEU,CAAC,CAACG,OAAO,CAAC,GAAGb,CAAmB,CAAC,CAAC,CAAC;AACxG;AAoCM,SAAUgB,OAAOA,CAQrBtB,IAA2C,EAC3Ce,GAMC;EAED,OAAOD,aAAa,CAACd,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,MAAMR,GAAG,CAAC,CAAC;AACpD;AAEA;;;;AAIM,SAAUS,KAAKA,CAMnBxB,IAA2C,EAC3CkB,MAAmB;EAEnB,OAAOJ,aAAa,CAACd,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,OAAO;IAAEL;EAAM,CAAE,CAAC,CAAC,CAAC,CACxDf,IAAI,CAACC,iBAAM,CAACW,GAAG,CAAET,CAAC,IAAK,IAAAmB,sBAAc,EAACnB,CAAC,CAACoB,MAAM,CAAC,CAAC,CAAC;AACtD;AAEA;;;AAGM,SAAUC,WAAWA,CASzB3B,IAA2C;AAC3C;AACAe,GAAwG;EAExG,OAAOX,iBAAM,CAACC,OAAO,CAACU,GAAG,EAAGC,CAAC,IAC3B,CAACA,CAAC,CAACE,MAAM,GAAGlB,IAAI,CAACiB,KAAK,CAACC,MAAM,CAACF,CAAC,CAAC,GAAGhB,IAAI,CAACiB,KAAK,CAACW,GAAG,EAC9CzB,IAAI,CACHC,iBAAM,CAACC,OAAO,CAAEC,CAAC,IAAKN,IAAI,CAACiB,KAAK,CAACY,SAAS,CAACvB,CAAC,CAAC,CAAC,EAC9CF,iBAAM,CAACW,GAAG,CAAET,CAAC,IAAKU,CAAC,CAACG,OAAO,GAAGC,wBAAa,CAACC,SAAS,CAACf,CAAC,EAAEU,CAAC,CAACG,OAAO,CAAC,GAAGb,CAAqB,CAAC,CAC7F,CAAC;AACR;AA8BM,SAAUwB,cAAcA,CAS5B9B,IAA2C;AAC3C;AACAe,GAAyE;EAEzE,OAAOX,iBAAM,CAACC,OAAO,CAACU,GAAG,EAAGC,CAAC,IAC3B,CAACA,CAAC,CAACE,MAAM,GAAGlB,IAAI,CAACiB,KAAK,CAACC,MAAM,CAAC;IAAEA,MAAM,EAAEF,CAAC,CAACE,MAAM;IAAEa,KAAK,EAAE;EAAC,CAAE,CAAC,GAAG/B,IAAI,CAACiB,KAAK,CAACW,GAAG,EAC3EzB,IAAI,CACHC,iBAAM,CAACC,OAAO,CAAEC,CAAC,IAAKN,IAAI,CAACiB,KAAK,CAACY,SAAS,CAACvB,CAAC,CAAC,CAAC,EAC9CF,iBAAM,CACHC,OAAO,CAAEC,CAAC,IACT,IAAA0B,sBAAe,EACbhB,CAAC,CAACG,OAAO,GACLC,wBAAa,CAACC,SAAS,CAACf,CAAC,EAAEU,CAAC,CAACG,OAAO,CAAC,GACrCb,CAAqB,CAC1B,CACEH,IAAI,CACHC,iBAAM,CAACG,QAAQ,CAAC,MAAM,IAAIC,qBAAa,CAAW;IAAEC,IAAI,EAAET,IAAI,CAACU,QAAQ;IAAET,EAAE,EAAEe,CAAC,CAACE;EAAM,CAAE,CAAC,CAAC,EACzFd,iBAAM,CACHW,GAAG,CAAET,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACpB,CACJ,CACJ,CAAC;AACR;AAEA;;;AAGM,SAAU2B,KAAKA,CAOnBjC,IAA2C;AAC3C;AACAe,GAA0F;EAE1F,OAAOY,WAAW,CAAC3B,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,MAAMR,GAAG,CAAC,CAAC;AAClD;AAwBM,SAAUmB,QAAQA,CAOtBlC,IAA2C,EAC3Ce,GAA2D;EAE3D,OAAOe,cAAc,CAAC9B,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,MAAMR,GAAG,CAAC,CAAC;AACrD;AA8CM,SAAUoB,yBAAyBA,CACvCnC,IAAS,EACTe,GAAQ;EAER,OAAQqB,IAAS,IACfN,cAAc,CAAC9B,IAAI,EAAEe,GAAG,CAAC,CACtBZ,IAAI,CAACC,iBAAM,CAACC,OAAO,CAAEC,CAAC,IAAK+B,aAAa,CAACrC,IAAI,EAAEM,CAAC,EAAE8B,IAAI,CAAC,CAAC,CAAC;AAChE;AAoCM,SAAUE,mBAAmBA,CACjCtC,IAAS,EACTe,GAA2C;EAE3C,OAAOoB,yBAAyB,CAACnC,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,MAAMR,GAAG,CAAC,CAAC;AAChE;AAEA;;;AAGM,SAAUwB,sBAAsBA,CASpCvC,IAA2C,EAC3Ce,GAAuG;EAEvG,OAAiCqB,IAA+C,IAC9ET,WAAW,CAAC3B,IAAI,EAAEe,GAAG,CAAC,CACnBZ,IAAI,CAACC,iBAAM,CAACC,OAAO,CAAEC,CAAC,IAAKkC,iBAAiB,CAACxC,IAAI,EAAEM,CAAC,EAAE8B,IAAI,CAAC,CAAC,CAAC;AACpE;AAEA;;;AAGM,SAAUK,gBAAgBA,CAO9BzC,IAA2C,EAC3Ce,GAAyF;EAEzF,OAAOwB,sBAAsB,CAACvC,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,MAAMR,GAAG,CAAC,CAAC;AAC7D;AAEA;;;AAGM,SAAU2B,gBAAgBA,CAK9B1C,IAA2C;EAC3C,OAA6CoC,IAA8C,IAC1FO,KAAmB,IAAKH,iBAAiB,CAACxC,IAAI,EAAE2C,KAAK,EAAEP,IAAI,CAAC;AAC/D;AAEA;;;AAGM,SAAUQ,mBAAmBA,CAKjC5C,IAA2C,EAAEC,EAAW;EACxD,OAA+BmC,IAAyC,IACtErC,GAAG,CAACC,IAAI,EAAEC,EAAE,CAAC,CAACE,IAAI,CAACC,iBAAM,CAACC,OAAO,CAAEwC,IAAI,IAAKR,aAAa,CAACrC,IAAI,EAAE6C,IAAI,EAAET,IAAI,CAAC,CAAC,CAAC;AACjF;AAEA;;;;AAIM,SAAUU,yBAAyBA,CAKvC9C,IAA2C;EAC3C,OACEoC,IAAqE,IAEvE,CAACW,GAAQ,EAAEC,GAAY,KAAKJ,mBAAmB,CAAC5C,IAAI,EAAE+C,GAAG,CAAC9C,EAAE,CAAC,CAACmC,IAAI,CAACW,GAAG,EAAEC,GAAG,CAAC,CAAC;AAC/E;AAEA;;;AAGM,SAAUR,iBAAiBA,CAW/BxC,IAA2C,EAC3C2C,KAAmB,EACnBP,IAA8C;EAE9C,OAAOa,oBAAoB,CACzBjD,IAAI,EACJ,IAAAkD,aAAO,EAACd,IAAI,EAAE,CAAC,GAAGO,KAAK,CAAC,CAAC,CAC1B;AACH;AAEA;;;AAGM,SAAUN,aAAaA,CAW3BrC,IAA2C,EAC3C6C,IAAQ,EACRT,IAA0C;EAE1C,OAAOa,oBAAoB,CACzBjD,IAAI,EACJ,IAAAkD,aAAO,EAACd,IAAI,EAAES,IAAI,CAAC,CAChB1C,IAAI,CAACC,iBAAM,CACTW,GAAG,CAAC,CAAC,CAAC8B,IAAI,EAAEM,MAAM,EAAEC,CAAC,CAAC,KAAK,CAAC,CAACP,IAAI,CAAC,EAAEM,MAAM,EAAEC,CAAC,CAAC,CAAC,CAAC,CACtD;AACH;AAEM,SAAUH,oBAAoBA,CAUlCjD,IAA2C,EAC3CqD,GAA2D;EAE3D,OAAOjD,iBAAM,CAACC,OAAO,CAACgD,GAAG,EAAE,CAAC,CAACV,KAAK,EAAEQ,MAAM,EAAEC,CAAC,CAAC,KAAKpD,IAAI,CAACsD,cAAc,CAACX,KAAK,EAAEQ,MAAM,CAAC,CAAChD,IAAI,CAACC,iBAAM,CAACW,GAAG,CAAC,MAAMqC,CAAC,CAAC,CAAC,CAAC;AAClH;AAEA;;;AAGM,SAAUG,6BAA6BA,CAS3CvD,IAA2C;AAC3C;AACAe,GAAuG,EACvGyC,SAAS,GAAG,GAAG;EAEf,OAAiCpB,IAA+C,IAC9ET,WAAW,CAAC3B,IAAI,EAAEe,GAAG,CAAC,CACnBZ,IAAI,CAACC,iBAAM,CAACC,OAAO,CAAEC,CAAC,IAAKmD,wBAAwB,CAACzD,IAAI,EAAEM,CAAC,EAAE8B,IAAI,EAAEoB,SAAS,CAAC,CAAC,CAAC;AACtF;AAEA;;;AAGM,SAAUE,uBAAuBA,CAOrC1D,IAA2C;AAC3C;AACAe,GAAyF,EACzFyC,SAAS,GAAG,GAAG;EAEf,OAAOD,6BAA6B,CAACvD,IAAI,EAAEI,iBAAM,CAACmB,IAAI,CAAC,MAAMR,GAAG,CAAC,EAAEyC,SAAS,CAAC;AAC/E;AAEA;;;AAGM,SAAUG,uBAAuBA,CAKrC3D,IAA2C,EAAEwD,SAAS,GAAG,GAAG;EAC5D,OAA6CpB,IAA8C,IAC1FO,KAAmB,IAAKc,wBAAwB,CAACzD,IAAI,EAAE2C,KAAK,EAAEP,IAAI,EAAEoB,SAAS,CAAC;AACjF;AAEA;;;AAGM,SAAUC,wBAAwBA,CAWtCzD,IAA2C,EAC3C2C,KAAmB,EACnBP,IAA8C,EAC9CoB,SAAS,GAAG,GAAG;EAEf,OAAOpD,iBAAM,CAACwD,OAAO,CACnBxC,wBAAa,CAACyC,MAAM,CAAClB,KAAK,EAAEa,SAAS,CAAC,EACrCM,KAAK,IACJb,oBAAoB,CAClBjD,IAAI,EACJ,IAAAkD,aAAO,EAACd,IAAI,EAAE0B,KAAK,CAAC,CACrB,CACJ;AACH;AAEA;;;AAGM,SAAUC,IAAIA,CAMlB/D,IAA2C;EAE3C,OAAO,CAAC,GAAG2C,KAAuB,KAAK3C,IAAI,CAACsD,cAAc,CAACX,KAAK,CAAC;AACnE;AAEA;;;AAGM,SAAUqB,cAAcA,CAM5BhE,IAA2C;EAE3C,OAAQmD,MAAqB,IAAK,CAAC,GAAGR,KAAuB,KAAK3C,IAAI,CAACsD,cAAc,CAACX,KAAK,EAAEQ,MAAM,CAAC;AACtG;AAEA;;;AAGM,SAAUc,oBAAoBA,CAQlCC,IAA2C,EAC3CjE,EAAW,EACXkE,GAAiC;EAEjC,OAAOpE,GAAG,CAACmE,IAAI,EAAEjE,EAAE,CAAC,CAACE,IAAI,CAACC,iBAAM,CAACgE,OAAO,CAACD,GAAG,CAAC,EAAE/D,iBAAM,CAACgE,OAAO,CAACL,IAAI,CAACG,IAAI,CAAC,CAAC,CAAC;AAC5E;AAEA;;;AAGM,SAAUG,UAAUA,CAMxBH,IAA2C,EAC3CjE,EAAW,EACXkE,GAAmB;EAEnB,OAAOF,oBAAoB,CACzBC,IAAI,EACJjE,EAAE,EACD4C,IAAI,IAAKzC,iBAAM,CAACmB,IAAI,CAAC,MAAM4C,GAAG,CAACtB,IAAI,CAAC,CAAC,CACvC;AACH"}
|
|
@@ -8,24 +8,15 @@ exports.makeRepo = makeRepo;
|
|
|
8
8
|
exports.makeStore = makeStore;
|
|
9
9
|
exports.makeWhere = makeWhere;
|
|
10
10
|
exports.removeById = removeById;
|
|
11
|
-
var tsplus_module_1 = _interopRequireWildcard(require("effect-app/_ext/misc"));
|
|
12
|
-
var tsplus_module_2 = _interopRequireWildcard(require("effect-app/schema"));
|
|
13
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
14
|
-
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/_ext/Iterable"));
|
|
15
|
-
var tsplus_module_5 = _interopRequireWildcard(require("@effect/schema/Schema"));
|
|
16
|
-
var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/core/Chunk"));
|
|
17
|
-
var _Effect = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
18
|
-
var tsplus_module_7 = _Effect;
|
|
19
|
-
var tsplus_module_8 = _interopRequireWildcard(require("effect/Effect"));
|
|
20
|
-
var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
21
|
-
var tsplus_module_10 = _interopRequireWildcard(require("effect/PubSub"));
|
|
22
|
-
var tsplus_module_11 = _interopRequireWildcard(require("@effect-app/infra/services/Repository/ext"));
|
|
23
|
-
var tsplus_module_12 = _interopRequireWildcard(require("effect-app/service"));
|
|
24
11
|
var _Repository = require("./Repository.cjs");
|
|
25
12
|
var _Store = require("./Store.cjs");
|
|
13
|
+
var _Array = require("@effect-app/core/Array");
|
|
14
|
+
var _Effect = require("@effect-app/core/Effect");
|
|
26
15
|
var _filter = require("@effect-app/infra/filter");
|
|
16
|
+
var _schema = require("@effect-app/schema");
|
|
27
17
|
var _effectApp = require("effect-app");
|
|
28
18
|
var _Pure = require("effect-app/Pure");
|
|
19
|
+
var _service = require("effect-app/service");
|
|
29
20
|
var _errors = require("../errors.cjs");
|
|
30
21
|
var _query = require("./query.cjs");
|
|
31
22
|
var _ContextMapContainer = require("./Store/ContextMapContainer.cjs");
|
|
@@ -77,42 +68,42 @@ exports.RepositoryBaseC2 = RepositoryBaseC2;
|
|
|
77
68
|
const anyQb = Q.QueryBuilder.make();
|
|
78
69
|
class RepositoryBaseC3 extends RepositoryBaseC2 {
|
|
79
70
|
get(id) {
|
|
80
|
-
return this.find(id)
|
|
71
|
+
return _effectApp.Effect.andThen(this.find(id), _ => _effectApp.Effect.mapError(_, () => new _errors.NotFoundError({
|
|
81
72
|
type: this.itemType,
|
|
82
73
|
id
|
|
83
74
|
})));
|
|
84
75
|
}
|
|
85
76
|
log = evt => _Repository.AnyPureDSL.log(evt);
|
|
86
77
|
removeById(id) {
|
|
87
|
-
return this.get(id)
|
|
78
|
+
return _effectApp.Effect.andThen(this.get(id), _ => this.removeAndPublish([_]));
|
|
88
79
|
}
|
|
89
80
|
projectEffect(map) {
|
|
90
81
|
// TODO: a projection that gets sent to the db instead.
|
|
91
|
-
return
|
|
82
|
+
return _effectApp.Effect.flatMap(map, f => _effectApp.Effect.map(this.utils.filter(f), _ => f.collect ? _effectApp.ReadonlyArray.filterMap(_, f.collect) : _));
|
|
92
83
|
}
|
|
93
84
|
project(map) {
|
|
94
85
|
return this.projectEffect(_effectApp.Effect.sync(() => map));
|
|
95
86
|
}
|
|
96
87
|
count(filter) {
|
|
97
|
-
return this.projectEffect(_effectApp.Effect.sync(() => ({
|
|
88
|
+
return _effectApp.Effect.map(this.projectEffect(_effectApp.Effect.sync(() => ({
|
|
98
89
|
filter
|
|
99
|
-
})))
|
|
90
|
+
}))), _ => (0, _schema.NonNegativeInt)(_.length));
|
|
100
91
|
}
|
|
101
92
|
queryEffect(
|
|
102
93
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
103
94
|
map) {
|
|
104
|
-
return
|
|
95
|
+
return _effectApp.Effect.flatMap(map, f => (f.filter ? this.utils.filter(f) : this.utils.all).pipe(_effectApp.Effect.flatMap(_ => this.utils.parseMany(_)), _effectApp.Effect.map(_ => f.collect ? _effectApp.ReadonlyArray.filterMap(_, f.collect) : _)));
|
|
105
96
|
}
|
|
106
97
|
queryOneEffect(
|
|
107
98
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
108
99
|
map) {
|
|
109
|
-
return
|
|
100
|
+
return _effectApp.Effect.flatMap(map, f => (f.filter ? this.utils.filter({
|
|
110
101
|
filter: f.filter,
|
|
111
102
|
limit: 1
|
|
112
|
-
}) : this.utils.all).flatMap(_ => this.utils.parseMany(_)).flatMap(_ =>
|
|
103
|
+
}) : this.utils.all).pipe(_effectApp.Effect.flatMap(_ => this.utils.parseMany(_)), _effectApp.Effect.flatMap(_ => (0, _Array.toNonEmptyArray)(f.collect ? _effectApp.ReadonlyArray.filterMap(_, f.collect) : _).pipe(_effectApp.Effect.mapError(() => new _errors.NotFoundError({
|
|
113
104
|
type: this.itemType,
|
|
114
105
|
id: f.filter
|
|
115
|
-
})).map(_ => _[0])));
|
|
106
|
+
})), _effectApp.Effect.map(_ => _[0])))));
|
|
116
107
|
}
|
|
117
108
|
queryLegacy(
|
|
118
109
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
@@ -128,13 +119,13 @@ class RepositoryBaseC3 extends RepositoryBaseC2 {
|
|
|
128
119
|
return this.queryOneEffect(_effectApp.Effect.sync(() => map));
|
|
129
120
|
}
|
|
130
121
|
queryAndSaveOnePureEffect(map) {
|
|
131
|
-
return pure => (0, _Repository.queryOneEffect)(this, map)
|
|
122
|
+
return pure => _effectApp.Effect.flatMap((0, _Repository.queryOneEffect)(this, map), _ => (0, _Repository.saveWithPure_)(this, _, pure));
|
|
132
123
|
}
|
|
133
124
|
queryAndSaveOnePure(map) {
|
|
134
125
|
return this.queryAndSaveOnePureEffect(_effectApp.Effect.sync(() => map));
|
|
135
126
|
}
|
|
136
127
|
queryAndSavePureEffect(map) {
|
|
137
|
-
return pure => (0, _Repository.queryEffect)(this, map)
|
|
128
|
+
return pure => _effectApp.Effect.flatMap((0, _Repository.queryEffect)(this, map), _ => this.saveManyWithPure_(_, pure));
|
|
138
129
|
}
|
|
139
130
|
queryAndSavePure(map) {
|
|
140
131
|
return this.queryAndSavePureEffect(_effectApp.Effect.sync(() => map));
|
|
@@ -143,8 +134,8 @@ class RepositoryBaseC3 extends RepositoryBaseC2 {
|
|
|
143
134
|
return pure => items => (0, _Repository.saveManyWithPure_)(this, items, pure);
|
|
144
135
|
}
|
|
145
136
|
byIdAndSaveWithPure(id, pure) {
|
|
146
|
-
if (pure) return (0, _Repository.get)(this, id).flatMap(item => (0, _Repository.saveWithPure_)(this, item, pure));
|
|
147
|
-
return pure => (0, _Repository.get)(this, id).flatMap(item => (0, _Repository.saveWithPure_)(this, item, pure));
|
|
137
|
+
if (pure) return (0, _Repository.get)(this, id).pipe(_effectApp.Effect.flatMap(item => (0, _Repository.saveWithPure_)(this, item, pure)));
|
|
138
|
+
return pure => (0, _Repository.get)(this, id).pipe(_effectApp.Effect.flatMap(item => (0, _Repository.saveWithPure_)(this, item, pure)));
|
|
148
139
|
}
|
|
149
140
|
/**
|
|
150
141
|
* NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
|
|
@@ -156,15 +147,15 @@ class RepositoryBaseC3 extends RepositoryBaseC2 {
|
|
|
156
147
|
return (0, _Repository.saveAllWithEffectInt)(this, (0, _Pure.runTerm)(pure, [...items]));
|
|
157
148
|
}
|
|
158
149
|
saveWithPure_(item, pure) {
|
|
159
|
-
return (0, _Repository.saveAllWithEffectInt)(this, (0, _Pure.runTerm)(pure, item).map(([item, events, a]) => [[item], events, a]));
|
|
150
|
+
return (0, _Repository.saveAllWithEffectInt)(this, (0, _Pure.runTerm)(pure, item).pipe(_effectApp.Effect.map(([item, events, a]) => [[item], events, a])));
|
|
160
151
|
}
|
|
161
152
|
saveAllWithEffectInt(gen) {
|
|
162
|
-
return
|
|
153
|
+
return _effectApp.Effect.flatMap(gen, ([items, events, a]) => _effectApp.Effect.map(this.saveAndPublish(items, events), () => a));
|
|
163
154
|
}
|
|
164
155
|
queryAndSavePureEffectBatched(
|
|
165
156
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
166
157
|
map, batchSize = 100) {
|
|
167
|
-
return pure => (0, _Repository.queryEffect)(this, map)
|
|
158
|
+
return pure => _effectApp.Effect.flatMap((0, _Repository.queryEffect)(this, map), _ => this.saveManyWithPureBatched_(_, pure, batchSize));
|
|
168
159
|
}
|
|
169
160
|
queryAndSavePureBatched(
|
|
170
161
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
@@ -175,7 +166,7 @@ class RepositoryBaseC3 extends RepositoryBaseC2 {
|
|
|
175
166
|
return pure => items => (0, _Repository.saveManyWithPureBatched_)(this, items, pure, batchSize);
|
|
176
167
|
}
|
|
177
168
|
saveManyWithPureBatched_(items, pure, batchSize = 100) {
|
|
178
|
-
return
|
|
169
|
+
return _effectApp.Effect.forEach(_effectApp.ReadonlyArray.chunk_(items, batchSize), batch => (0, _Repository.saveAllWithEffectInt)(this, (0, _Pure.runTerm)(pure, batch)));
|
|
179
170
|
}
|
|
180
171
|
save = (...items) => this.saveAndPublish(items);
|
|
181
172
|
saveWithEvents = events => (...items) => this.saveAndPublish(items, events);
|
|
@@ -199,132 +190,139 @@ function makeRepo() {
|
|
|
199
190
|
}
|
|
200
191
|
const mkStore = makeStore()(name, schema, mapTo);
|
|
201
192
|
function make(args) {
|
|
202
|
-
return
|
|
203
|
-
const
|
|
204
|
-
const
|
|
205
|
-
|
|
193
|
+
return _effectApp.Effect.gen(function* ($) {
|
|
194
|
+
const rctx = yield* $(_effectApp.Effect.context());
|
|
195
|
+
const encode = (0, _effectApp.flow)(_effectApp.S.encode(schema), _effectApp.Effect.provide(rctx));
|
|
196
|
+
const decode = (0, _effectApp.flow)(_effectApp.S.decode(schema), _effectApp.Effect.provide(rctx));
|
|
197
|
+
const store = yield* $(mkStore(args.makeInitial, args.config));
|
|
198
|
+
const {
|
|
206
199
|
get
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
200
|
+
} = yield* $(_ContextMapContainer.ContextMapContainer);
|
|
201
|
+
const cms = _effectApp.Effect.andThen(get, _ => ({
|
|
202
|
+
get: id => _.get(`${name}.${id}`),
|
|
203
|
+
set: (id, etag) => _.set(`${name}.${id}`, etag)
|
|
204
|
+
}));
|
|
205
|
+
const pubCfg = yield* $(_effectApp.Effect.context());
|
|
206
|
+
const pub = "publishEvents" in args ? (0, _effectApp.flow)(args.publishEvents, _effectApp.Effect.provide(pubCfg)) : () => _effectApp.Effect.unit;
|
|
207
|
+
const changeFeed = yield* $(_effectApp.PubSub.unbounded());
|
|
208
|
+
const allE = store.all.pipe(_effectApp.Effect.flatMap(items => _effectApp.Effect.gen(function* ($) {
|
|
209
|
+
const {
|
|
210
|
+
set
|
|
211
|
+
} = yield* $(cms);
|
|
212
|
+
return items.map(_ => mapReverse(_, set));
|
|
213
|
+
})));
|
|
214
|
+
const all = _effectApp.Effect.flatMap(allE, _ => _effectApp.Effect.forEach(_, _ => decode(_), {
|
|
215
|
+
concurrency: "inherit",
|
|
216
|
+
batching: true
|
|
217
|
+
}).pipe(_effectApp.Effect.orDie));
|
|
218
|
+
const structSchema = schema;
|
|
219
|
+
const i = ("struct" in structSchema ? structSchema["struct"] : schema).pipe(_ => _.ast._tag === "Union"
|
|
220
|
+
// we need to get the TypeLiteral, incase of class it's behind a transform...
|
|
221
|
+
? _effectApp.S.union(..._.ast.types.map(_ => _effectApp.S.make(_._tag === "Transform" ? _.from : _).pipe(_effectApp.S.pick("id")))) : _.ast._tag === "Transform" ? _effectApp.S.make(_.ast.from).pipe(_effectApp.S.pick("id")) : _.pipe(_effectApp.S.pick("id")));
|
|
222
|
+
const encodeId = (0, _effectApp.flow)(_effectApp.S.encode(i), _effectApp.Effect.provide(rctx));
|
|
223
|
+
function findEId(id) {
|
|
224
|
+
return _effectApp.Effect.flatMap(store.find(id), item => _effectApp.Effect.gen(function* ($) {
|
|
225
|
+
const {
|
|
226
|
+
set
|
|
227
|
+
} = yield* $(cms);
|
|
228
|
+
return item.pipe(_effectApp.Option.map(_ => mapReverse(_, set)));
|
|
211
229
|
}));
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return _effectApp.Effect.gen(function* ($) {
|
|
261
|
-
const {
|
|
262
|
-
get,
|
|
263
|
-
set
|
|
264
|
-
} = yield* $(cms);
|
|
265
|
-
const it = tsplus_module_6.fromIterable(a);
|
|
266
|
-
const items = yield* $(tsplus_module_4.ext_forEach(it, _ => encode(_), {
|
|
267
|
-
concurrency: "inherit",
|
|
268
|
-
batching: true
|
|
269
|
-
}).orDie);
|
|
270
|
-
// TODO: we should have a batchRemove on store so the adapter can actually batch...
|
|
271
|
-
for (const e of items) {
|
|
272
|
-
yield* $(store.remove(mapToPersistenceModel(e, get)));
|
|
273
|
-
set(e.id, undefined);
|
|
274
|
-
}
|
|
275
|
-
yield* $(tsplus_module_7.flatMapOption(_effectApp.Effect.sync(() => tsplus_module_4.CollectionToNonEmptyReadonlyArray(events))
|
|
276
|
-
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
277
|
-
, pub));
|
|
278
|
-
yield* $(changeFeed.publish([tsplus_module_6.toArray(it), "remove"]));
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
const r = {
|
|
282
|
-
/**
|
|
283
|
-
* @internal
|
|
284
|
-
*/
|
|
285
|
-
utils: {
|
|
286
|
-
parseMany: items => cms.flatMap(cm => items.forEachEffect(_ => decode(mapReverse(_, cm.set)), {
|
|
287
|
-
concurrency: "inherit",
|
|
288
|
-
batching: true
|
|
289
|
-
}).orDie),
|
|
290
|
-
parseMany2: (items, schema) => cms.flatMap(cm => items.forEachEffect(_ => tsplus_module_5.decode(schema)(mapReverse(_, cm.set)), {
|
|
291
|
-
concurrency: "inherit",
|
|
292
|
-
batching: true
|
|
293
|
-
}).orDie),
|
|
294
|
-
filter: args => store.filter(args).tap(items => args.select ? _effectApp.Effect.unit : cms.map(({
|
|
295
|
-
set
|
|
296
|
-
}) => items.forEach(_ => set(_.id, _._etag)))),
|
|
297
|
-
all: store.all.tap(items => cms.map(({
|
|
298
|
-
set
|
|
299
|
-
}) => items.forEach(_ => set(_.id, _._etag))))
|
|
300
|
-
},
|
|
301
|
-
mapped: schema => {
|
|
302
|
-
// const enc = S.encode(schema)
|
|
303
|
-
const dec = _effectApp.S.decode(schema);
|
|
304
|
-
const encMany = _effectApp.S.encode(_effectApp.S.array(schema));
|
|
305
|
-
const decMany = _effectApp.S.decode(_effectApp.S.array(schema));
|
|
306
|
-
return {
|
|
307
|
-
all: cms.flatMap(cm => r.utils.all.map(_ => _.map(_ => mapReverse(_, cm.set)))).flatMap(decMany).map(_ => _),
|
|
308
|
-
find: id => (0, _Effect.flatMapOption)(findE(id), dec),
|
|
309
|
-
query: b => r.utils.filter({
|
|
310
|
-
filter: b
|
|
311
|
-
}).flatMap(decMany).map(_ => _),
|
|
312
|
-
save: (...xes) => encMany(xes).flatMap(_ => saveAllE(_))
|
|
313
|
-
};
|
|
314
|
-
},
|
|
315
|
-
changeFeed,
|
|
316
|
-
itemType: name,
|
|
317
|
-
find,
|
|
318
|
-
all,
|
|
319
|
-
saveAndPublish,
|
|
320
|
-
removeAndPublish,
|
|
321
|
-
q2: q => (0, _query.query)(r, typeof q === "function" ? q((0, _query.make)()) : q)
|
|
322
|
-
};
|
|
323
|
-
return r;
|
|
324
|
-
});
|
|
230
|
+
}
|
|
231
|
+
function findE(id) {
|
|
232
|
+
return (0, _effectApp.pipe)(encodeId({
|
|
233
|
+
id
|
|
234
|
+
}), _effectApp.Effect.orDie, _effectApp.Effect.map(_ => _.id), _effectApp.Effect.flatMap(findEId));
|
|
235
|
+
}
|
|
236
|
+
function find(id) {
|
|
237
|
+
return _effectApp.Effect.flatMapOption(findE(id), _ => _effectApp.Effect.orDie(decode(_)));
|
|
238
|
+
}
|
|
239
|
+
const saveAllE = a => _effectApp.Effect.flatMapOption(_effectApp.Effect.sync(() => (0, _Array.toNonEmptyArray)([...a])), a => _effectApp.Effect.gen(function* ($) {
|
|
240
|
+
const {
|
|
241
|
+
get,
|
|
242
|
+
set
|
|
243
|
+
} = yield* $(cms);
|
|
244
|
+
const items = a.map(_ => mapToPersistenceModel(_, get));
|
|
245
|
+
const ret = yield* $(store.batchSet(items));
|
|
246
|
+
ret.forEach(_ => set(_.id, _._etag));
|
|
247
|
+
})).pipe(_effectApp.Effect.asUnit);
|
|
248
|
+
const saveAll = a => _effectApp.Effect.forEach(Array.from(a), _ => encode(_), {
|
|
249
|
+
concurrency: "inherit",
|
|
250
|
+
batching: true
|
|
251
|
+
}).pipe(_effectApp.Effect.orDie, _effectApp.Effect.andThen(saveAllE));
|
|
252
|
+
const saveAndPublish = (items, events = []) => {
|
|
253
|
+
const it = _effectApp.Chunk.fromIterable(items);
|
|
254
|
+
return saveAll(it).pipe(_effectApp.Effect.andThen(_effectApp.Effect.sync(() => (0, _Array.toNonEmptyArray)([...events]))),
|
|
255
|
+
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
256
|
+
_ => _effectApp.Effect.flatMapOption(_, pub), _effectApp.Effect.andThen(changeFeed.publish([_effectApp.Chunk.toArray(it), "save"])), _effectApp.Effect.asUnit);
|
|
257
|
+
};
|
|
258
|
+
function removeAndPublish(a, events = []) {
|
|
259
|
+
return _effectApp.Effect.gen(function* ($) {
|
|
260
|
+
const {
|
|
261
|
+
get,
|
|
262
|
+
set
|
|
263
|
+
} = yield* $(cms);
|
|
264
|
+
const it = [...a];
|
|
265
|
+
const items = yield* $(_effectApp.Effect.forEach(it, _ => encode(_), {
|
|
266
|
+
concurrency: "inherit",
|
|
267
|
+
batching: true
|
|
268
|
+
}).pipe(_effectApp.Effect.orDie));
|
|
269
|
+
// TODO: we should have a batchRemove on store so the adapter can actually batch...
|
|
270
|
+
for (const e of items) {
|
|
271
|
+
yield* $(store.remove(mapToPersistenceModel(e, get)));
|
|
272
|
+
set(e.id, undefined);
|
|
273
|
+
}
|
|
274
|
+
yield* $(_effectApp.Effect.sync(() => (0, _Array.toNonEmptyArray)([...events]))
|
|
275
|
+
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
276
|
+
.pipe(_ => _effectApp.Effect.flatMapOption(_, pub)));
|
|
277
|
+
yield* $(changeFeed.publish([it, "remove"]));
|
|
325
278
|
});
|
|
326
|
-
}
|
|
327
|
-
|
|
279
|
+
}
|
|
280
|
+
const r = {
|
|
281
|
+
/**
|
|
282
|
+
* @internal
|
|
283
|
+
*/
|
|
284
|
+
utils: {
|
|
285
|
+
parseMany: items => _effectApp.Effect.flatMap(cms, cm => _effectApp.Effect.forEach(items, _ => decode(mapReverse(_, cm.set)), {
|
|
286
|
+
concurrency: "inherit",
|
|
287
|
+
batching: true
|
|
288
|
+
}).pipe(_effectApp.Effect.orDie)),
|
|
289
|
+
parseMany2: (items, schema) => _effectApp.Effect.flatMap(cms, cm => _effectApp.Effect.forEach(items, _ => _effectApp.S.decode(schema)(mapReverse(_, cm.set)), {
|
|
290
|
+
concurrency: "inherit",
|
|
291
|
+
batching: true
|
|
292
|
+
}).pipe(_effectApp.Effect.orDie)),
|
|
293
|
+
filter: args => store.filter(args).pipe(_effectApp.Effect.tap(items => args.select ? _effectApp.Effect.unit : _effectApp.Effect.map(cms, ({
|
|
294
|
+
set
|
|
295
|
+
}) => items.forEach(_ => set(_.id, _._etag))))),
|
|
296
|
+
all: _effectApp.Effect.tap(store.all, items => _effectApp.Effect.map(cms, ({
|
|
297
|
+
set
|
|
298
|
+
}) => items.forEach(_ => set(_.id, _._etag))))
|
|
299
|
+
},
|
|
300
|
+
mapped: schema => {
|
|
301
|
+
// const enc = S.encode(schema)
|
|
302
|
+
const dec = _effectApp.S.decode(schema);
|
|
303
|
+
const encMany = _effectApp.S.encode(_effectApp.S.array(schema));
|
|
304
|
+
const decMany = _effectApp.S.decode(_effectApp.S.array(schema));
|
|
305
|
+
return {
|
|
306
|
+
all: cms.pipe(_effectApp.Effect.flatMap(cm => _effectApp.Effect.map(r.utils.all, _ => _.map(_ => mapReverse(_, cm.set)))), _effectApp.Effect.flatMap(decMany), _effectApp.Effect.map(_ => _)),
|
|
307
|
+
find: id => (0, _Effect.flatMapOption)(findE(id), dec),
|
|
308
|
+
query: b => r.utils.filter({
|
|
309
|
+
filter: b
|
|
310
|
+
}).pipe(_effectApp.Effect.flatMap(decMany), _effectApp.Effect.map(_ => _)),
|
|
311
|
+
save: (...xes) => _effectApp.Effect.flatMap(encMany(xes), _ => saveAllE(_))
|
|
312
|
+
};
|
|
313
|
+
},
|
|
314
|
+
changeFeed,
|
|
315
|
+
itemType: name,
|
|
316
|
+
find,
|
|
317
|
+
all,
|
|
318
|
+
saveAndPublish,
|
|
319
|
+
removeAndPublish,
|
|
320
|
+
q2: q => (0, _query.query)(r, typeof q === "function" ? q((0, _query.make)()) : q)
|
|
321
|
+
};
|
|
322
|
+
return r;
|
|
323
|
+
}).pipe(_effectApp.Effect
|
|
324
|
+
// .withSpan("Repository.make [effect-app/infra]", { attributes: { "repository.model_name": name } })
|
|
325
|
+
.withLogSpan("Repository.make: " + name));
|
|
328
326
|
}
|
|
329
327
|
return {
|
|
330
328
|
make,
|
|
@@ -338,7 +336,7 @@ function makeRepo() {
|
|
|
338
336
|
* @tsplus fluent Repository removeById
|
|
339
337
|
*/
|
|
340
338
|
function removeById(self, id) {
|
|
341
|
-
return
|
|
339
|
+
return (0, _Repository.get)(self, id).pipe(_effectApp.Effect.flatMap(_ => self.removeAndPublish([_])));
|
|
342
340
|
}
|
|
343
341
|
function makeWhere() {
|
|
344
342
|
const f_ = (0, _filter.makeFilters)();
|
|
@@ -361,22 +359,26 @@ function makeStore() {
|
|
|
361
359
|
return (name, schema, mapTo) => {
|
|
362
360
|
function encodeToPM() {
|
|
363
361
|
const getEtag = () => undefined;
|
|
364
|
-
return t =>
|
|
362
|
+
return t => _effectApp.S.encode(schema)(t).pipe(_effectApp.Effect.orDie, _effectApp.Effect.map(_ => mapToPersistenceModel(_, getEtag)));
|
|
365
363
|
}
|
|
366
364
|
function mapToPersistenceModel(e, getEtag) {
|
|
367
365
|
return mapTo(e, getEtag(e.id));
|
|
368
366
|
}
|
|
369
367
|
function makeStore(makeInitial, config) {
|
|
370
|
-
return
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
368
|
+
return _effectApp.Effect.gen(function* ($) {
|
|
369
|
+
const {
|
|
370
|
+
make
|
|
371
|
+
} = yield* $(_Store.StoreMaker);
|
|
372
|
+
const store = yield* $(make(pluralize(name), makeInitial ? makeInitial.pipe(_effectApp.Effect.flatMap(_effectApp.Effect.forEach(encodeToPM())), _effectApp.Effect.withSpan("Repository.makeInitial [effect-app/infra]", {
|
|
373
|
+
attributes: {
|
|
374
|
+
"repository.model_name": name
|
|
375
|
+
}
|
|
376
|
+
})) : undefined, {
|
|
377
|
+
...config,
|
|
378
|
+
partitionValue: config?.partitionValue ?? (_ => "primary") /*(isIntegrationEvent(r) ? r.companyId : r.id*/
|
|
379
|
+
}));
|
|
380
|
+
return store;
|
|
381
|
+
});
|
|
380
382
|
}
|
|
381
383
|
return makeStore;
|
|
382
384
|
};
|
|
@@ -422,12 +424,12 @@ const RepositoryBaseImpl = () => {
|
|
|
422
424
|
super(itemType);
|
|
423
425
|
}
|
|
424
426
|
static make = mkRepo.make;
|
|
425
|
-
static makeWith = (a, b) => mkRepo.make(a)
|
|
427
|
+
static makeWith = (a, b) => _effectApp.Effect.map(mkRepo.make(a), b);
|
|
426
428
|
static Where = makeWhere();
|
|
427
429
|
static Query = Q.QueryBuilder.make();
|
|
428
430
|
static type = undefined;
|
|
429
431
|
}
|
|
430
|
-
return
|
|
432
|
+
return (0, _service.assignTag)()(Object.assign(Cls, makeRepoFunctions(Cls)));
|
|
431
433
|
};
|
|
432
434
|
};
|
|
433
435
|
exports.RepositoryBaseImpl = RepositoryBaseImpl;
|
|
@@ -442,12 +444,12 @@ const RepositoryDefaultImpl = () => {
|
|
|
442
444
|
super(itemType, impl);
|
|
443
445
|
}
|
|
444
446
|
static make = mkRepo.make;
|
|
445
|
-
static makeWith = (a, b) => mkRepo.make(a)
|
|
447
|
+
static makeWith = (a, b) => _effectApp.Effect.map(mkRepo.make(a), b);
|
|
446
448
|
static Where = makeWhere();
|
|
447
449
|
static Query = Q.QueryBuilder.make();
|
|
448
450
|
static type = undefined;
|
|
449
451
|
}
|
|
450
|
-
return
|
|
452
|
+
return (0, _service.assignTag)()(Object.assign(Cls, makeRepoFunctions(Cls))); // impl is missing, but its marked protected
|
|
451
453
|
};
|
|
452
454
|
};
|
|
453
455
|
exports.RepositoryDefaultImpl = RepositoryDefaultImpl;
|