@effect-app/infra 4.0.0-beta.132 → 4.0.0-beta.134
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 +18 -0
- package/dist/CUPS.d.ts +4 -4
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +1 -1
- package/dist/Emailer/Sendgrid.d.ts +13 -13
- package/dist/Emailer/fake.d.ts +1 -1
- package/dist/Emailer/service.d.ts +1 -1
- package/dist/Emailer.d.ts +1 -1
- package/dist/MainFiberSet.d.ts +3 -3
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +1 -1
- package/dist/Model/Repository/Registry.d.ts +1 -1
- package/dist/Model/Repository/ext.d.ts +12 -12
- package/dist/Model/Repository/ext.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.d.ts +3 -3
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +3 -2
- package/dist/Model/Repository/legacy.d.ts +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +1 -1
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +2 -1
- package/dist/Model/Repository/service.d.ts +1 -1
- package/dist/Model/Repository/validation.d.ts +13 -13
- package/dist/Model/Repository.d.ts +1 -1
- package/dist/Model/dsl.d.ts +4 -4
- package/dist/Model/dsl.d.ts.map +1 -1
- package/dist/Model/filter/filterApi.d.ts +5 -5
- package/dist/Model/filter/filterApi.d.ts.map +1 -1
- package/dist/Model/filter/types/errors.d.ts +1 -1
- package/dist/Model/filter/types/fields.d.ts +1 -1
- package/dist/Model/filter/types/path/common.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
- package/dist/Model/filter/types/path/index.d.ts +1 -1
- package/dist/Model/filter/types/utils.d.ts +1 -1
- package/dist/Model/filter/types/validator.d.ts +1 -1
- package/dist/Model/filter/types.d.ts +1 -1
- package/dist/Model/query/dsl.d.ts +1 -1
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/new-kid-interpreter.d.ts +6 -6
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
- package/dist/Model/query.d.ts +1 -1
- package/dist/Model.d.ts +1 -1
- package/dist/Operations.d.ts +2 -2
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Operations.js +1 -1
- package/dist/OperationsRepo.d.ts +16 -16
- package/dist/QueueMaker/SQLQueue.d.ts +3 -2
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/errors.d.ts +1 -1
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.d.ts +1 -1
- package/dist/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/QueueMaker/service.d.ts +1 -1
- package/dist/RequestContext.d.ts +17 -17
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestFiberSet.d.ts +5 -5
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +1 -1
- package/dist/Store/ContextMapContainer.d.ts +1 -1
- package/dist/Store/ContextMapContainer.js +1 -1
- package/dist/Store/Cosmos/query.d.ts +1 -1
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +8 -10
- package/dist/Store/Cosmos.d.ts +1 -1
- package/dist/Store/Cosmos.js +1 -1
- package/dist/Store/Disk.d.ts +1 -1
- package/dist/Store/Memory.d.ts +1 -1
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/SQL/Pg.d.ts +1 -1
- package/dist/Store/SQL/query.d.ts +1 -1
- package/dist/Store/SQL/query.js +1 -1
- package/dist/Store/SQL.d.ts +1 -1
- package/dist/Store/SQL.d.ts.map +1 -1
- package/dist/Store/codeFilter.d.ts +1 -1
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +2 -1
- package/dist/Store/index.d.ts +2 -2
- package/dist/Store/service.d.ts +1 -1
- package/dist/Store/service.d.ts.map +1 -1
- package/dist/Store/utils.d.ts +1 -1
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store.d.ts +1 -1
- package/dist/adapters/SQL/Model.d.ts +28 -42
- package/dist/adapters/SQL/Model.d.ts.map +1 -1
- package/dist/adapters/SQL/Model.js +2 -2
- package/dist/adapters/SQL.d.ts +1 -1
- package/dist/adapters/ServiceBus.d.ts +3 -3
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +1 -1
- package/dist/adapters/cosmos-client.d.ts +1 -1
- package/dist/adapters/cosmos-client.d.ts.map +1 -1
- package/dist/adapters/index.d.ts +8 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +8 -2
- package/dist/adapters/logger.d.ts +1 -1
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/adapters/memQueue.d.ts +1 -1
- package/dist/adapters/memQueue.js +1 -1
- package/dist/adapters/mongo-client.d.ts +1 -1
- package/dist/adapters/mongo-client.d.ts.map +1 -1
- package/dist/adapters/redis-client.d.ts +1 -1
- package/dist/adapters/redis-client.d.ts.map +1 -1
- package/dist/api/ContextProvider.d.ts +1 -1
- package/dist/api/ContextProvider.d.ts.map +1 -1
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/RequestContextMiddleware.js +1 -1
- package/dist/api/internal/auth.d.ts +2 -2
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/events.d.ts +2 -2
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/health.d.ts +1 -1
- package/dist/api/layerUtils.d.ts +1 -1
- package/dist/api/layerUtils.d.ts.map +1 -1
- package/dist/api/middlewares.d.ts +1 -1
- package/dist/api/reportError.d.ts +1 -1
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +2 -2
- package/dist/api/routing/middleware.d.ts +1 -2
- package/dist/api/routing/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware.js +1 -2
- package/dist/api/routing/schema/jwt.d.ts +1 -1
- package/dist/api/routing/schema/jwt.d.ts.map +1 -1
- package/dist/api/routing/tsort.d.ts +1 -1
- package/dist/api/routing/tsort.d.ts.map +1 -1
- package/dist/api/routing/utils.d.ts +3 -3
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing.d.ts +8 -8
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +5 -1
- package/dist/api/setupRequest.d.ts +2 -2
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/util.d.ts +1 -1
- package/dist/arbs.d.ts +1 -1
- package/dist/errorReporter.d.ts +1 -1
- package/dist/errorReporter.js +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/fileUtil.d.ts +1 -1
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/rateLimit.d.ts +1 -1
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/test.d.ts +1 -1
- package/dist/test.d.ts.map +1 -1
- package/dist/vitest.d.ts +1 -1
- package/eslint.config.mjs +1 -1
- package/package.json +11 -11
- package/src/MainFiberSet.ts +1 -1
- package/src/Model/Repository/internal/internal.ts +2 -3
- package/src/Model/Repository/makeRepo.ts +1 -2
- package/src/Model/dsl.ts +3 -3
- package/src/Store/Cosmos/query.ts +9 -11
- package/src/Store/codeFilter.ts +1 -0
- package/src/adapters/SQL/Model.ts +10 -4
- package/src/adapters/index.ts +7 -0
- package/src/api/routing/middleware.ts +0 -2
- package/src/api/routing.ts +4 -0
- package/test/controller.test.ts +1 -2
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/fixtures.d.ts +4 -4
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +3 -3
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/router-generator.test.d.ts.map +1 -0
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/fixtures.ts +2 -2
- package/test/requires.test.ts +1 -2
- package/test/router-generator.test.ts +180 -0
- package/test/rpc-multi-middleware.test.ts +7 -7
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;CAAuC,CAAA"}
|
package/dist/rateLimit.d.ts
CHANGED
|
@@ -16,4 +16,4 @@ export declare const batch: {
|
|
|
16
16
|
<T, A, E, R, A2, E2, R2>(items: Iterable<T>, n: number, forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect.Effect<A, E, R>, forEachBatch: (a: NonEmptyArray<A>, i: number) => Effect.Effect<A2, E2, R2>, options?: BatchOptions): Effect.Effect<Array<A2>, E | E2, R | R2>;
|
|
17
17
|
};
|
|
18
18
|
export declare function naiveRateLimit(n: number, d: Duration.Duration): <T>(items: Iterable<T>) => <R, E, A, R2, E2, A2>(forEachItem: (i: T) => Effect.Effect<A, E, R>, forEachBatch: (a: A[]) => Effect.Effect<A2, E2, R2>) => Effect.Effect<A2[], E | E2, R | R2>;
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZUxpbWl0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmF0ZUxpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCQSxPQUFPLEVBQVMsS0FBSyxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUvQzs7Ozs7R0FLRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxVQUNwRSxTQUFTLEtBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FhOUY7QUFFRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsV0FBVyxHQUFHLFNBQVMsQ0FBQTtDQUMvQztBQUVELGVBQU8sTUFBTSxLQUFLLEVBQUU7SUFDbEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ3JCLENBQUMsRUFBRSxNQUFNLEVBQ1QsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RixZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzRSxPQUFPLENBQUMsRUFBRSxZQUFZLEdBQ3JCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUNuRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDckIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDbEIsQ0FBQyxFQUFFLE1BQU0sRUFDVCxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RGLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzNFLE9BQU8sQ0FBQyxFQUFFLFlBQVksR0FDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7Q0FrQjVDLENBQUE7QUFrQkQsd0JBQWdCLGNBQWMsQ0FDNUIsQ0FBQyxFQUFFLE1BQU0sRUFDVCxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsSUFFWixDQUFDLFNBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUN4QyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFDL0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyx5Q0FjdEQifQ==
|
package/dist/rateLimit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../src/rateLimit.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../src/rateLimit.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,UACpE,SAAS,KAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAa9F;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/C;AAED,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACrB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACtF,YAAY,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3E,OAAO,CAAC,EAAE,YAAY,GACrB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IACnE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACrB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACtF,YAAY,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC3E,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;CAkB5C,CAAA;AAkBD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,QAAQ,CAAC,QAAQ,IAEZ,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,MAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,eACxC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,yCActD"}
|
package/dist/test.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export declare const createRandomInstanceI: <A extends object, I>(s: S.Codec<A,
|
|
|
12
12
|
fields: S.Struct.Fields;
|
|
13
13
|
}) => (overrides?: Partial<I>) => A;
|
|
14
14
|
export * from "./arbs.js";
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUk5Qjs7R0FFRztBQUNILGVBQU8sTUFBTSxvQkFBb0IsR0FBSSxDQUFDLFNBQVMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHO0lBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFBO0NBQUUsa0JBRXhGLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFJL0IsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsZUFBTyxNQUFNLHFCQUFxQixHQUFJLENBQUMsU0FBUyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRztJQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQTtDQUFFLGtCQUkxRixPQUFPLENBQUMsQ0FBQyxDQUFDLE1BSy9CLENBQUE7QUFFRCxjQUFjLFdBQVcsQ0FBQSJ9
|
package/dist/test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAI9B;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAI9B;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;CAAE,kBAExF,OAAO,CAAC,CAAC,CAAC,MAI/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;CAAE,kBAI1F,OAAO,CAAC,CAAC,CAAC,MAK/B,CAAA;AAED,cAAc,WAAW,CAAA"}
|
package/dist/vitest.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from "@effect/vitest";
|
|
2
2
|
export * from "./test.js";
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxXQUFXLENBQUEifQ==
|
package/eslint.config.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.134",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"proper-lockfile": "^4.1.2",
|
|
14
14
|
"pure-rand": "7.0.1",
|
|
15
15
|
"query-string": "^9.3.1",
|
|
16
|
-
"effect-app": "4.0.0-beta.
|
|
16
|
+
"effect-app": "4.0.0-beta.134"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@azure/cosmos": "^4.9.3",
|
|
@@ -31,19 +31,19 @@
|
|
|
31
31
|
"redis": "^3.1.2",
|
|
32
32
|
"redlock": "^4.2.0",
|
|
33
33
|
"strip-ansi": "^7.2.0",
|
|
34
|
-
"typescript": "
|
|
34
|
+
"typescript": "npm:@typescript/native-preview@beta",
|
|
35
35
|
"vitest": "^4.1.5",
|
|
36
|
-
"@effect-app/eslint-shared-config": "0.6.0-beta.
|
|
36
|
+
"@effect-app/eslint-shared-config": "0.6.0-beta.11"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@azure/cosmos": "^4.9.3",
|
|
40
40
|
"@azure/service-bus": "^7.9.5",
|
|
41
|
-
"@effect/vitest": "^4.0.0-beta.
|
|
41
|
+
"@effect/vitest": "^4.0.0-beta.56",
|
|
42
42
|
"@sendgrid/helpers": "^8.0.0",
|
|
43
43
|
"@sendgrid/mail": "^8.1.6",
|
|
44
44
|
"@sentry/node": "10.49.0",
|
|
45
45
|
"@sentry/opentelemetry": "10.49.0",
|
|
46
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"effect": "^4.0.0-beta.56",
|
|
47
47
|
"jwt-decode": "^4.0.0",
|
|
48
48
|
"redis": "^3.1.2",
|
|
49
49
|
"redlock": "^4.2.0"
|
|
@@ -398,18 +398,18 @@
|
|
|
398
398
|
"scripts": {
|
|
399
399
|
"watch": "pnpm build:tsc -w",
|
|
400
400
|
"build:tsc": "pnpm clean-dist && effect-app-cli packagejson pnpm check",
|
|
401
|
-
"check": "
|
|
401
|
+
"check": "tsgo --build",
|
|
402
402
|
"build": "pnpm build:tsc",
|
|
403
|
-
"watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144
|
|
403
|
+
"watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144 tsgo -w",
|
|
404
404
|
"clean": "rm -rf dist",
|
|
405
405
|
"clean-dist": "sh ../../scripts/clean-dist.sh",
|
|
406
406
|
"circular": "pnpm circular:src && pnpm circular:dist",
|
|
407
407
|
"circular:src": "madge --circular --ts-config ./tsconfig.json --extensions ts ./src",
|
|
408
408
|
"circular:dist": "madge --circular --extensions js ./dist",
|
|
409
|
-
"compile": "NODE_OPTIONS=--max-old-space-size=6144
|
|
410
|
-
"lint": "NODE_OPTIONS=--max-old-space-size=6144 ESLINT_TS=1 eslint ./src",
|
|
409
|
+
"compile": "NODE_OPTIONS=--max-old-space-size=6144 tsgo --noEmit",
|
|
410
|
+
"lint": "oxlint ./src && NODE_OPTIONS=--max-old-space-size=6144 ESLINT_TS=1 eslint ./src",
|
|
411
411
|
"lint:watch": "ESLINT_TS=1 esw -w --changed --clear --ext ts,tsx .",
|
|
412
|
-
"lint-fix": "
|
|
412
|
+
"lint-fix": "oxlint --fix ./src && NODE_OPTIONS=--max-old-space-size=6144 ESLINT_TS=1 eslint --fix ./src",
|
|
413
413
|
"test": "vitest",
|
|
414
414
|
"test:run": "pnpm run test run --passWithNoTests",
|
|
415
415
|
"testsuite": "pnpm lint && pnpm circular && pnpm run test:run",
|
package/src/MainFiberSet.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context, Effect, Fiber, FiberSet, Layer } from "effect-app"
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import { InfraLogger } from "./logger.js"
|
|
4
4
|
import { reportNonInterruptedFailureCause } from "./QueueMaker/errors.js"
|
|
5
5
|
import { setRootParentSpan } from "./RequestFiberSet.js"
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
3
|
-
import type {} from "effect/Hash"
|
|
2
|
+
|
|
4
3
|
import { Array, Chunk, Context, Effect, Equivalence, flow, type NonEmptyReadonlyArray, Option, pipe, Pipeable, PubSub, Result, S, SchemaAST, Unify } from "effect-app"
|
|
5
4
|
import { toNonEmptyArray } from "effect-app/Array"
|
|
6
5
|
import { NotFoundError } from "effect-app/client/errors"
|
|
@@ -195,7 +194,7 @@ export function makeRepoInternal<
|
|
|
195
194
|
function*(items: Iterable<T>, events: Iterable<Evt> = []) {
|
|
196
195
|
const it = Chunk.fromIterable(items)
|
|
197
196
|
const evts = [...events]
|
|
198
|
-
yield* Effect.annotateCurrentSpan({ itemIds:
|
|
197
|
+
yield* Effect.annotateCurrentSpan({ itemIds: Chunk.map(it, (_) => _[idKey]), events: evts.length })
|
|
199
198
|
return yield* saveAll(it)
|
|
200
199
|
.pipe(
|
|
201
200
|
Effect.andThen(Effect.sync(() => toNonEmptyArray(evts))),
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
6
|
|
|
7
7
|
// import type { ParserEnv } from "effect-app/Schema/custom/Parser"
|
|
8
|
-
|
|
9
|
-
import type {} from "effect/Hash"
|
|
8
|
+
|
|
10
9
|
import { type Context, Effect, type NonEmptyReadonlyArray, type S } from "effect-app"
|
|
11
10
|
import type { StoreConfig, StoreMaker } from "../../Store.js"
|
|
12
11
|
import type { FieldValues } from "../filter/types.js"
|
package/src/Model/dsl.ts
CHANGED
|
@@ -42,16 +42,16 @@ export function makeAllDSL<T, Evt>() {
|
|
|
42
42
|
|
|
43
43
|
export type OneDSL<T, Evt> =
|
|
44
44
|
& (<R, A, E, S1 extends T, S2 extends T>(
|
|
45
|
-
pure: (dsl: PureDSL<S1, S2, Evt>) => Effect.Effect<A, E,
|
|
45
|
+
pure: (dsl: PureDSL<S1, S2, Evt>) => Effect.Effect<A, E, R>
|
|
46
46
|
) => Effect.Effect<A, E, FixEnv<R, Evt, S1, S2>>)
|
|
47
47
|
& OneDSLExt<T, Evt>
|
|
48
48
|
|
|
49
49
|
export interface OneDSLExt<T, Evt> {
|
|
50
50
|
modify: <R, E, A, S1 extends T, S2 extends T>(
|
|
51
|
-
pure: (items: S1, dsl: PureDSL<S1, S2, Evt>) => Effect.Effect<A, E,
|
|
51
|
+
pure: (items: S1, dsl: PureDSL<S1, S2, Evt>) => Effect.Effect<A, E, R>
|
|
52
52
|
) => Effect.Effect<A, E, FixEnv<R, Evt, S1, S2> | PureEnvEnv<Evt, S1, S1>>
|
|
53
53
|
update: <R, E, S1 extends T, S2 extends T>(
|
|
54
|
-
pure: (items: S1, log: (...evt: Evt[]) => PureLogT<Evt>) => Effect.Effect<S2, E,
|
|
54
|
+
pure: (items: S1, log: (...evt: Evt[]) => PureLogT<Evt>) => Effect.Effect<S2, E, R>
|
|
55
55
|
) => Effect.Effect<S2, E, FixEnv<R, Evt, S1, S2>>
|
|
56
56
|
updateWith: <S1 extends T, S2 extends T>(
|
|
57
57
|
upd: (item: S1) => S2
|
|
@@ -296,16 +296,14 @@ export function buildWhereCosmosQuery3(
|
|
|
296
296
|
${filter.length ? `WHERE (${print(filter, values.map((_) => _.value), null, false)})` : ""}
|
|
297
297
|
${order ? `ORDER BY ${order.map((_) => `${dottedToAccess(`f.${_.key}`)} ${_.direction}`).join(", ")}` : ""}
|
|
298
298
|
${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
|
|
299
|
-
parameters:
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
)
|
|
309
|
-
]
|
|
299
|
+
parameters: values
|
|
300
|
+
.flatMap((x, i) =>
|
|
301
|
+
[{
|
|
302
|
+
name: `@v${i}`,
|
|
303
|
+
value: x.value as any
|
|
304
|
+
}]
|
|
305
|
+
// TODO: only for arrays that are used with _ANY or _ALL
|
|
306
|
+
.concat(Array.isArray(x.value) ? x.value.map((_, i2) => ({ name: `@v${i}__${i2}`, value: _ as any })) : [])
|
|
307
|
+
)
|
|
310
308
|
}
|
|
311
309
|
}
|
package/src/Store/codeFilter.ts
CHANGED
|
@@ -186,6 +186,7 @@ export const codeFilter3_ = <E>(state: readonly FilterResult[], sut: E): boolean
|
|
|
186
186
|
const statements: any[] = [] // must be defined here to be used by eval.
|
|
187
187
|
// always put everything inside a root scope.
|
|
188
188
|
const s = codeFilter3__([{ t: "where-scope", result: state, relation: "some" }], sut, statements, null, false)
|
|
189
|
+
// oxlint-disable-next-line no-eval
|
|
189
190
|
return eval(s)
|
|
190
191
|
}
|
|
191
192
|
|
|
@@ -545,9 +545,15 @@ export const DateTimeUpdateFromNumber: DateTimeUpdateFromNumber = Field({
|
|
|
545
545
|
*/
|
|
546
546
|
export interface JsonFromString<S extends Schema.Top> extends
|
|
547
547
|
VariantSchema.Field<{
|
|
548
|
-
readonly select: Schema.fromJsonString<
|
|
549
|
-
|
|
550
|
-
|
|
548
|
+
readonly select: Schema.fromJsonString<
|
|
549
|
+
Schema.Codec<S["Type"], Schema.Json, S["DecodingServices"], S["EncodingServices"]>
|
|
550
|
+
>
|
|
551
|
+
readonly insert: Schema.fromJsonString<
|
|
552
|
+
Schema.Codec<S["Type"], Schema.Json, S["DecodingServices"], S["EncodingServices"]>
|
|
553
|
+
>
|
|
554
|
+
readonly update: Schema.fromJsonString<
|
|
555
|
+
Schema.Codec<S["Type"], Schema.Json, S["DecodingServices"], S["EncodingServices"]>
|
|
556
|
+
>
|
|
551
557
|
readonly json: S
|
|
552
558
|
readonly jsonCreate: S
|
|
553
559
|
readonly jsonUpdate: S
|
|
@@ -565,7 +571,7 @@ export interface JsonFromString<S extends Schema.Top> extends
|
|
|
565
571
|
export const JsonFromString = <S extends Schema.Top>(
|
|
566
572
|
schema: S
|
|
567
573
|
): JsonFromString<S> => {
|
|
568
|
-
const parsed = Schema.fromJsonString(schema)
|
|
574
|
+
const parsed = Schema.fromJsonString(Schema.toCodecJson(schema))
|
|
569
575
|
return Field({
|
|
570
576
|
select: parsed,
|
|
571
577
|
insert: parsed,
|
package/src/adapters/index.ts
CHANGED
package/src/api/routing.ts
CHANGED
|
@@ -267,12 +267,14 @@ export const makeRouter = <
|
|
|
267
267
|
if (handlerImpl[Symbol.toStringTag] === "GeneratorFunction") handlerImpl = Effect.fnUntraced(handlerImpl)
|
|
268
268
|
const stack = new Error().stack?.split("\n").slice(2).join("\n")
|
|
269
269
|
return Effect.isEffect(handlerImpl)
|
|
270
|
+
// oxlint-disable-next-line typescript/no-extraneous-class
|
|
270
271
|
? class {
|
|
271
272
|
static request = rsc[cur]
|
|
272
273
|
static stack = stack
|
|
273
274
|
static _tag = RequestTypes.DECODED
|
|
274
275
|
static handler = () => handlerImpl
|
|
275
276
|
}
|
|
277
|
+
// oxlint-disable-next-line typescript/no-extraneous-class
|
|
276
278
|
: class {
|
|
277
279
|
static request = rsc[cur]
|
|
278
280
|
static stack = stack
|
|
@@ -290,12 +292,14 @@ export const makeRouter = <
|
|
|
290
292
|
if (handlerImpl[Symbol.toStringTag] === "GeneratorFunction") handlerImpl = Effect.fnUntraced(handlerImpl)
|
|
291
293
|
const stack = new Error().stack?.split("\n").slice(2).join("\n")
|
|
292
294
|
return Effect.isEffect(handlerImpl)
|
|
295
|
+
// oxlint-disable-next-line typescript/no-extraneous-class
|
|
293
296
|
? class {
|
|
294
297
|
static request = rsc[cur]
|
|
295
298
|
static stack = stack
|
|
296
299
|
static _tag = RequestTypes.RAW
|
|
297
300
|
static handler = () => handlerImpl
|
|
298
301
|
}
|
|
302
|
+
// oxlint-disable-next-line typescript/no-extraneous-class
|
|
299
303
|
: class {
|
|
300
304
|
static request = rsc[cur]
|
|
301
305
|
static stack = stack
|
package/test/controller.test.ts
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
3
|
import { type MakeContext, type MakeErrors, makeRouter } from "@effect-app/infra/api/routing"
|
|
4
4
|
import { expect, expectTypeOf, it } from "@effect/vitest"
|
|
5
|
-
import { Context, Effect, Layer, S, Scope } from "effect-app"
|
|
5
|
+
import { Context, Effect, Layer, RpcX, S, Scope } from "effect-app"
|
|
6
6
|
import { InvalidStateError, makeRpcClient, UnauthorizedError } from "effect-app/client"
|
|
7
7
|
import { DefaultGenericMiddlewares } from "effect-app/middleware"
|
|
8
|
-
import * as RpcX from "effect-app/rpc"
|
|
9
8
|
import { MiddlewareMaker } from "effect-app/rpc"
|
|
10
9
|
import { TypeTestId } from "effect-app/TypeTest"
|
|
11
10
|
import { type RpcSerialization } from "effect/unstable/rpc"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAoC,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG3D,OAAO,EAAE,cAAc,EAAsB,YAAY,EAAqB,YAAY,EAAoB,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,eAAe,CAAA;;cAuE/G,QAAQ;;AADzE,cAAM,kBACJ,SAAQ,uBAA0F;IAElG,MAAM,CAAC,OAAO,uDAUZ;CACH;;AAID,cAAM,GAAI,SAAQ,QAAoC;CAAG;;;;;AAEzD,qBAAa,eAAgB,SAAQ,oBAA4D;IAC/F,MAAM,CAAC,OAAO,2CAUZ;CACH;AAkFD,eAAO,MAAM,WAAW;;;;;;;;;;YAKM,CAAA;AAE9B,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAqC,CAAA;;;;;;;;;;;;;;;;;;;;AAKpE,qBAAa,GAAI,SAAQ,QAA8C;CAAG;;;;;;;;;;;;;;;;AAC1E,qBAAa,GAAI,SAAQ,QAAyB;CAAG;;;;;;;;;;;;;;;;;;;;;;AAIrD,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;;;;;;;;;;;;;AAgB1B,qBAAa,YAAa,SAAQ,iBAET;CAAG;;;;;;;;;;;;;;;;;;;;;;AAE5B,qBAAa,aAAc,SAAQ,kBAEA;CAAG;;;;;;;;AAOtC,qBAAa,gBAAiB,SAAQ,qBASrC;IACC,MAAM,CAAC,OAAO,8CAAgC;CAC/C;;;;;;;;AASD,qBAAa,aAAc,SAAQ,kBASlC;IACC,MAAM,CAAC,OAAO,2CAA8E;CAC7F;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAOtC;IACC,MAAM,CAAC,OAAO,+CAAgC;CAC/C;AAED,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;0FAE9B,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEd,CAAA"}
|
package/test/dist/fixtures.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Context, Effect, Layer, S } from "effect-app";
|
|
1
|
+
import { Context, Effect, Layer, RpcX, S } from "effect-app";
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
|
|
3
|
-
import { RpcContextMap
|
|
3
|
+
import { RpcContextMap } from "effect-app/rpc";
|
|
4
4
|
declare const UserProfile_base: S.EnhancedClass<UserProfile, import("effect/Schema").Struct<{
|
|
5
5
|
id: S.String;
|
|
6
6
|
roles: S.$Array<S.String> & {
|
|
@@ -67,7 +67,7 @@ declare const RequestContextMap_base: (new () => {
|
|
|
67
67
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
68
68
|
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
69
69
|
}>;
|
|
70
|
-
get: <Key extends "allowAnonymous" | "requireRoles" | "test">(key: Key) => RpcX.RpcMiddleware.RpcDynamic<Key, {
|
|
70
|
+
get: <Key extends ("allowAnonymous" | "requireRoles" | "test") & string>(key: Key) => RpcX.RpcMiddleware.RpcDynamic<Key, {
|
|
71
71
|
readonly allowAnonymous: RpcContextMap.RpcContextMap.Inverted<UserProfile, typeof NotLoggedInError>;
|
|
72
72
|
readonly requireRoles: RpcContextMap.RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>;
|
|
73
73
|
readonly test: RpcContextMap.RpcContextMap<never, S.Never>;
|
|
@@ -118,4 +118,4 @@ declare const CustomError2_base: import("effect/Schema").Class<CustomError2, imp
|
|
|
118
118
|
export declare class CustomError2 extends CustomError2_base {
|
|
119
119
|
}
|
|
120
120
|
export {};
|
|
121
|
-
//# sourceMappingURL=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7Ozs7Ozs7QUFHOUMscUJBQWEsV0FBWSxTQUFRLGdCQUtoQztDQUNBOzs7Ozs7OztBQUVELHFCQUFhLElBQUssU0FBUSxTQUFrRTtDQUFHOzs7Ozs7OztBQUMvRixxQkFBYSxRQUFTLFNBQVEsYUFBMEU7Q0FBRzs7Ozs7Ozs7QUFFM0cscUJBQWEsV0FBWSxTQUFRLGdCQUF1RTtJQUN0RyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8seUNBQTBCO0NBQ2xEOztjQUdzRixJQUFJOztBQUEzRixxQkFBYSxjQUFlLFNBQVEsbUJBQThFO0NBQ2pIO0FBRUQsZUFBTyxNQUFNLGtCQUFrQiwyQ0FNOUIsQ0FBQTs7Y0FHZ0UsUUFBUTs7QUFEekUscUJBQWEsa0JBQ1gsU0FBUSx1QkFBMEY7Q0FDbEc7QUFFRixlQUFPLE1BQU0sc0JBQXNCLCtDQVVsQyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFRCxxQkFBYSxpQkFBa0IsU0FBUSxzQkFJckM7Q0FBRzs7OztjQUVrRixRQUFROztBQUEvRixxQkFBYSxjQUFlLFNBQVEsbUJBRWxDO0NBQUc7QUFFTCxlQUFPLE1BQU0sa0JBQWtCLDJDQXlCOUIsQ0FBQTs7Ozs7Ozs7QUFFRCxxQkFBYSxZQUFhLFNBQVEsaUJBS2hDO0NBQUc7QUFFTCxlQUFPLE1BQU0sZ0JBQWdCLCtDQXVCNUIsQ0FBQTs7Ozs7OztBQUVELHFCQUFhLElBQUssU0FBUSxTQUV4QjtDQUFHO0FBRUwsZUFBTyxNQUFNLFFBQVEsaUNBT3BCLENBQUE7Ozs7Ozs7O0FBRUQscUJBQWEsT0FBUSxTQUFRLFlBQXdFO0NBQUc7O0FBRXhHLHFCQUFhLFlBQWEsU0FBUSxpQkFBb0Q7Q0FBRzs7QUFDekYscUJBQWEsWUFBYSxTQUFRLGlCQUFvRDtDQUFHIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAS,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAS,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;;;;;;;;AAG9C,qBAAa,WAAY,SAAQ,gBAKhC;CACA;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAAkE;CAAG;;;;;;;;AAC/F,qBAAa,QAAS,SAAQ,aAA0E;CAAG;;;;;;;;AAE3G,qBAAa,WAAY,SAAQ,gBAAuE;IACtG,MAAM,CAAC,QAAQ,CAAC,OAAO,yCAA0B;CAClD;;cAGsF,IAAI;;AAA3F,qBAAa,cAAe,SAAQ,mBAA8E;CACjH;AAED,eAAO,MAAM,kBAAkB,2CAM9B,CAAA;;cAGgE,QAAQ;;AADzE,qBAAa,kBACX,SAAQ,uBAA0F;CAClG;AAEF,eAAO,MAAM,sBAAsB,+CAUlC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;cAEkF,QAAQ;;AAA/F,qBAAa,cAAe,SAAQ,mBAElC;CAAG;AAEL,eAAO,MAAM,kBAAkB,2CAyB9B,CAAA;;;;;;;;AAED,qBAAa,YAAa,SAAQ,iBAKhC;CAAG;AAEL,eAAO,MAAM,gBAAgB,+CAuB5B,CAAA;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAExB;CAAG;AAEL,eAAO,MAAM,QAAQ,iCAOpB,CAAA;;;;;;;;AAED,qBAAa,OAAQ,SAAQ,YAAwE;CAAG;;AAExG,qBAAa,YAAa,SAAQ,iBAAoD;CAAG;;AACzF,qBAAa,YAAa,SAAQ,iBAAoD;CAAG"}
|
package/test/dist/fixtures.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Context, Effect, Layer, S, Scope } from "effect-app";
|
|
1
|
+
import { Context, Effect, Layer, RpcX, S, Scope } from "effect-app";
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
|
|
3
|
-
import { RpcContextMap
|
|
3
|
+
import { RpcContextMap } from "effect-app/rpc";
|
|
4
4
|
import { TaggedErrorClass } from "effect-app/Schema";
|
|
5
5
|
export class UserProfile extends Context.assignTag("UserProfile")(S.Class("UserProfile")({
|
|
6
6
|
id: S.String,
|
|
@@ -96,4 +96,4 @@ export class CustomError1 extends TaggedErrorClass()("CustomError1", {}) {
|
|
|
96
96
|
}
|
|
97
97
|
export class CustomError2 extends TaggedErrorClass()("CustomError2", {}) {
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXBELE1BQU0sT0FBTyxXQUFZLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBMkIsYUFBYSxDQUFDLENBQ3pGLENBQUMsQ0FBQyxLQUFLLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDbEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDLENBQ0g7Q0FDQTtBQUVELE1BQU0sT0FBTyxJQUFLLFNBQVEsT0FBTyxDQUFDLE1BQU0sRUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUFHO0FBQy9GLE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTyxDQUFDLE1BQU0sRUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUFHO0FBQzNHLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8C,CAAC,EAAU,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBlF,qBAAa,SAAU,SAAQ,cAM7B;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8C,CAAC,EAAU,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBlF,qBAAa,SAAU,SAAQ,cAM7B;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,CAAC;IAElC,UAAiB,OAAQ,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC;KAAG;CACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,EAAU,CAAC,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,EAAU,IAAI,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,EAAE,cAAc,EAAyC,YAAY,EAAoB,IAAI,EAAE,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,MAAM,eAAe,CAAA;;cAGnK,IAAI;;AADzE,qBAAa,sBACX,SAAQ,2BAA8F;IAEtG,MAAM,CAAC,OAAO,oDASZ;CACH;AAqBD,eAAO,MAAM,eAAe;;;;;;;;;;SAMK,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-generator.test.d.ts","sourceRoot":"","sources":["../router-generator.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,EAAe,MAAM,QAAQ,CAAA;AAC5D,OAAO,EAAW,CAAC,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,EAAe,MAAM,QAAQ,CAAA;AAC5D,OAAO,EAAW,IAAI,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIpD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAkD,MAAM,qBAAqB,CAAA;AAGpG,OAAO,EAAE,cAAc,EAAyC,YAAY,EAA0B,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,WAAW,EAAE,MAAM,eAAe,CAAA;AAErP,QAAA,MAAM,UAAU;;;;;;;;;;oCAImB,CAAA;AAGnC,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;;;;;;;;;;;;AAEvD,cAAM,UAAW,SAAQ,eAMkB;CACzC;AAsCF,eAAO,MAAM,OAAO,iEAMhB,CAAA;AAgBJ,eAAO,MAAM,YAAY,2HAItB,CAAA;AAEH,eAAO,MAAM,YAAY,yIAgB2B,CAAA"}
|
package/test/fixtures.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Context, Effect, Layer, S, Scope } from "effect-app"
|
|
1
|
+
import { Context, Effect, Layer, RpcX, S, Scope } from "effect-app"
|
|
2
2
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client"
|
|
3
|
-
import { RpcContextMap
|
|
3
|
+
import { RpcContextMap } from "effect-app/rpc"
|
|
4
4
|
import { TaggedErrorClass } from "effect-app/Schema"
|
|
5
5
|
|
|
6
6
|
export class UserProfile extends Context.assignTag<UserProfile, UserProfile>("UserProfile")(
|
package/test/requires.test.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { describe, expect, expectTypeOf, it } from "@effect/vitest"
|
|
2
|
-
import { Context, Effect, Layer, Result, S } from "effect-app"
|
|
2
|
+
import { Context, Effect, Layer, Result, RpcX, S } from "effect-app"
|
|
3
3
|
import { NotLoggedInError, UnauthorizedError } from "effect-app/client"
|
|
4
4
|
import { HttpHeaders } from "effect-app/http"
|
|
5
|
-
import * as RpcX from "effect-app/rpc"
|
|
6
5
|
import { MiddlewareMaker } from "effect-app/rpc"
|
|
7
6
|
import type { unhandled } from "effect-app/Types"
|
|
8
7
|
import { Rpc } from "effect/unstable/rpc"
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { type MakeContext, type MakeErrors, makeRouter } from "@effect-app/infra/api/routing"
|
|
2
|
+
import { makeAllDSL, makeOneDSL } from "@effect-app/infra/Model"
|
|
3
|
+
import { expectTypeOf, it } from "@effect/vitest"
|
|
4
|
+
import { Context, Effect, Layer, RpcX, S } from "effect-app"
|
|
5
|
+
import { InvalidStateError, makeRpcClient, UnauthorizedError } from "effect-app/client"
|
|
6
|
+
import { DefaultGenericMiddlewares } from "effect-app/middleware"
|
|
7
|
+
import { type FixEnv } from "effect-app/Pure"
|
|
8
|
+
import { MiddlewareMaker } from "effect-app/rpc"
|
|
9
|
+
import { type TypeTestId } from "effect-app/TypeTest"
|
|
10
|
+
import { type ConfigError } from "effect/Config"
|
|
11
|
+
import { type RpcSerialization } from "effect/unstable/rpc/RpcSerialization"
|
|
12
|
+
import { DefaultGenericMiddlewaresLive, DevModeMiddlewareLive } from "../src/api/routing/middleware.js"
|
|
13
|
+
import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElse, SomeService, Test, TestLive } from "./fixtures.js"
|
|
14
|
+
|
|
15
|
+
// Inline minimal context provider (provides `Some`)
|
|
16
|
+
class CtxProvider extends RpcX.RpcMiddleware.Tag<CtxProvider, { provides: Some }>()("CtxProvider") {
|
|
17
|
+
static Default = Layer.make(this, {
|
|
18
|
+
*make() {
|
|
19
|
+
return Effect.fnUntraced(function*(effect) {
|
|
20
|
+
return yield* Effect.provideService(effect, Some, Some.of({ a: 1 }))
|
|
21
|
+
})
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Provides `SomeElse` so AllowAnonymous's requirement is met.
|
|
27
|
+
class SomeElseProvider extends RpcX.RpcMiddleware.Tag<SomeElseProvider, { provides: SomeElse }>()("SomeElseProvider") {
|
|
28
|
+
static Default = Layer.make(this, {
|
|
29
|
+
*make() {
|
|
30
|
+
return Effect.fnUntraced(function*(effect) {
|
|
31
|
+
return yield* Effect.provideService(effect, SomeElse, SomeElse.of({ b: 2 }))
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
class mw extends MiddlewareMaker
|
|
38
|
+
.Tag<mw>()("mw", RequestContextMap)
|
|
39
|
+
.middleware(RequireRoles, Test)
|
|
40
|
+
.middleware(AllowAnonymous)
|
|
41
|
+
.middleware(CtxProvider)
|
|
42
|
+
.middleware(...DefaultGenericMiddlewares, SomeElseProvider)
|
|
43
|
+
{
|
|
44
|
+
static Default = this.layer.pipe(
|
|
45
|
+
Layer.provide([
|
|
46
|
+
RequireRolesLive,
|
|
47
|
+
TestLive,
|
|
48
|
+
AllowAnonymousLive,
|
|
49
|
+
CtxProvider.Default,
|
|
50
|
+
SomeElseProvider.Default,
|
|
51
|
+
DefaultGenericMiddlewaresLive,
|
|
52
|
+
DevModeMiddlewareLive,
|
|
53
|
+
SomeService.Default
|
|
54
|
+
])
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const { TaggedRequestFor } = makeRpcClient(RequestContextMap)
|
|
59
|
+
const Req = TaggedRequestFor("GenRouter")
|
|
60
|
+
|
|
61
|
+
class GetThing extends Req.Query<GetThing>()("GetThing", { id: S.String }, { success: S.String }) {}
|
|
62
|
+
class DoThing extends Req.Command<DoThing>()("DoThing", { id: S.String }, { success: S.Void }) {}
|
|
63
|
+
|
|
64
|
+
const Resource = { GetThing, DoThing }
|
|
65
|
+
|
|
66
|
+
const { Router, matchAll } = makeRouter(mw)
|
|
67
|
+
|
|
68
|
+
class ThingRepo extends Context.Service<ThingRepo>()("ThingRepo", {
|
|
69
|
+
make: Effect.succeed({ get: (id: string) => Effect.succeed(id + "!") })
|
|
70
|
+
}) {
|
|
71
|
+
static Default = Layer.effect(this, this.make)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Case under test:
|
|
75
|
+
// `match({})` is given handlers as **shorthand generator methods** (`*GetThing(req) { ... }`).
|
|
76
|
+
// tsgo (>= 7 dev) infers `TNext = unknown` for these shorthand generators while TS6 infers `never`.
|
|
77
|
+
// `HandlerWithInputGen` in routing.ts must accept both — see the structural fix.
|
|
78
|
+
const router = Router(Resource)({
|
|
79
|
+
dependencies: [ThingRepo.Default],
|
|
80
|
+
*effect(match) {
|
|
81
|
+
const repo = yield* ThingRepo
|
|
82
|
+
|
|
83
|
+
if (Math.random() > 0.5) return yield* new InvalidStateError("nope")
|
|
84
|
+
|
|
85
|
+
return match({
|
|
86
|
+
*GetThing(req) {
|
|
87
|
+
const some = yield* Some
|
|
88
|
+
if (req.id === "boom") {
|
|
89
|
+
return yield* Effect.fail(new UnauthorizedError())
|
|
90
|
+
}
|
|
91
|
+
return yield* repo.get(req.id + String(some.a))
|
|
92
|
+
},
|
|
93
|
+
*DoThing(_req) {
|
|
94
|
+
yield* Effect.succeed(1)
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
// Same scenario but using the `raw:` variant — exercises the `raw` path of `HandlerWithInputGen`.
|
|
101
|
+
const routerRaw = Router({ GetThing })({
|
|
102
|
+
*effect(match) {
|
|
103
|
+
return match({
|
|
104
|
+
GetThing: {
|
|
105
|
+
*raw(req) {
|
|
106
|
+
const some = yield* Some
|
|
107
|
+
return yield* Effect.succeed(req.id + String(some.a))
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
it("router with generator-method handlers compiles", () => {
|
|
115
|
+
expectTypeOf(router).toMatchTypeOf<
|
|
116
|
+
Layer.Layer<never, ConfigError | InvalidStateError, SomeService | RpcSerialization>
|
|
117
|
+
>()
|
|
118
|
+
expectTypeOf(routerRaw).toMatchTypeOf<Layer.Layer<never, ConfigError, SomeService | RpcSerialization>>()
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
// Type-level assertions: verify generator yields propagate to MakeErrors / MakeContext
|
|
122
|
+
type Errors = MakeErrors<typeof router[TypeTestId]>
|
|
123
|
+
type Ctx = MakeContext<typeof router[TypeTestId]>
|
|
124
|
+
expectTypeOf<Errors>().toEqualTypeOf<InvalidStateError>()
|
|
125
|
+
expectTypeOf<Ctx>().toEqualTypeOf<ThingRepo>()
|
|
126
|
+
|
|
127
|
+
const matched = matchAll({ router })
|
|
128
|
+
expectTypeOf(matched).toMatchTypeOf<
|
|
129
|
+
Layer.Layer<never, ConfigError | InvalidStateError, SomeService | RpcSerialization>
|
|
130
|
+
>()
|
|
131
|
+
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// DSL R-inference regression
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// `OneDSL`/`OneDSLExt.update`/`.modify` previously annotated the callback's
|
|
136
|
+
// effect R as `FixEnv<R, Evt, S1, S2>`. That deadlocked inference of `R`
|
|
137
|
+
// (TS6 → `never`, tsgo → `unknown`), causing yielded effects to leak
|
|
138
|
+
// `unknown` in the R slot when consumed by generator handlers.
|
|
139
|
+
// The fix uses bare `R` in the callback and `FixEnv<R, …>` only on the return.
|
|
140
|
+
class Item extends S.Class<Item>("Item")({ id: S.String, label: S.String }) {}
|
|
141
|
+
class Dep extends Context.Service<Dep>()("Dep", { make: Effect.succeed({ tag: "dep" as const }) }) {}
|
|
142
|
+
|
|
143
|
+
type Evt = { _tag: "Updated"; id: string }
|
|
144
|
+
|
|
145
|
+
const Items$ = makeAllDSL<Item, Evt>()
|
|
146
|
+
const Item$ = makeOneDSL<Item, Evt>()
|
|
147
|
+
|
|
148
|
+
// Callback body uses generator syntax (TNext = unknown under tsgo) and yields
|
|
149
|
+
// a service-dependent effect — R must be inferred as `Dep` (plus the
|
|
150
|
+
// canonical PureEnvEnv contributed by FixEnv on the return).
|
|
151
|
+
const oneUpdate = Item$.update((item) =>
|
|
152
|
+
Effect.gen(function*() {
|
|
153
|
+
const dep = yield* Dep
|
|
154
|
+
return new Item({ id: item.id, label: item.label + dep.tag })
|
|
155
|
+
})
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
const allUpdate = Items$.update((items) =>
|
|
159
|
+
Effect.gen(function*() {
|
|
160
|
+
const dep = yield* Dep
|
|
161
|
+
return items.map((_) => new Item({ id: _.id, label: _.label + dep.tag }))
|
|
162
|
+
})
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
const oneModify = Item$.modify((item, _dsl) =>
|
|
166
|
+
Effect.gen(function*() {
|
|
167
|
+
const dep = yield* Dep
|
|
168
|
+
return { ...item, tag: dep.tag }
|
|
169
|
+
})
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
// `R` should be `FixEnv<Dep, Evt, …>` — never collapsed to `unknown`/`never`.
|
|
173
|
+
// The regression manifested as `unknown` here, breaking `Dep` assignability.
|
|
174
|
+
expectTypeOf(oneUpdate).toMatchTypeOf<Effect.Effect<Item, never, FixEnv<Dep, Evt, Item, Item>>>()
|
|
175
|
+
expectTypeOf(allUpdate).toMatchTypeOf<
|
|
176
|
+
Effect.Effect<readonly Item[], never, FixEnv<Dep, Evt, readonly Item[], readonly Item[]>>
|
|
177
|
+
>()
|
|
178
|
+
expectTypeOf(oneModify).toMatchTypeOf<
|
|
179
|
+
Effect.Effect<{ tag: "dep"; id: string; label: string }, never, FixEnv<Dep, Evt, Item, Item>>
|
|
180
|
+
>()
|